[python] 문제 영역을 식별하기 위해 Python 코드를 분석하려면 어떻게해야합니까?
여러 프로젝트에 분할 된 대규모 소스 저장소가 있습니다. 해결해야 할 문제 영역을 식별하여 소스 코드의 상태에 대한 보고서를 작성하고 싶습니다.
특히 순환 복잡도가 높은 루틴을 호출하고, 반복을 식별하고, 아마도 보풀과 같은 정적 분석을 실행하여 의심스러운 (따라서 오류 가능성이있는) 구성을 찾아보고 싶습니다.
그러한 보고서를 작성하려면 어떻게해야합니까?
답변
순환 복잡도를 측정하기 위해 traceback.org 에서 사용할 수있는 멋진 도구가 있습니다 . 이 페이지는 또한 결과를 해석하는 방법에 대한 좋은 개요를 제공합니다.
필 린트의 경우 +1 . 이는 코딩 표준 ( PEP8 또는 조직의 변형) 준수 여부를 확인하는 데 탁월 하며 결국 순환 복잡성을 줄이는 데 도움이 될 수 있습니다.
답변
순환 복잡도의 경우 https://github.com/rubik/radon을 사용할 수 있습니다 radon
.
(사용 pip
을 설치하려면 다음을 수행하십시오 pip install radon
)
또한 다음과 같은 기능도 있습니다.
- 원시 메트릭 (SLOC, 주석 줄, 빈 줄, & c 포함)
- Halstead 메트릭 (모두)
- 유지 관리 성 인덱스 (Visual Studio에서 사용되는 인덱스)
답변
정적 분석에는 pylint 및 pychecker가 있습니다. 개인적으로 나는 pychecker보다 더 포괄적 인 것처럼 보이는 pylint를 사용합니다.
순환적인 복잡성을 위해이 perl 프로그램을 시도해 보거나 python 프로그램을 소개하는 이 기사 를 사용해 볼 수 있습니다.
답변
Pycana는 새로운 프로젝트를 이해해야 할 때 매력적으로 작동합니다!
PyCAna (Python Code Analyzer)는 코드 실행 후 클래스 다이어그램을 생성하는 Python 용 간단한 코드 분석기의 멋진 이름입니다.
작동 방식보기 :
http://pycana.sourceforge.net/
산출: