문제 영역을 식별하기 위해 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 프로그램을 시도해 보거나 같은 작업을 수행하는 파이썬 프로그램을 소개하는 이 기사 를 사용할 수 있습니다.
Pycana는 새로운 프로젝트를 이해해야 할 때 매력적으로 작동합니다!
PyCAna (Python Code Analyzer)는 코드 실행 후 클래스 다이어그램을 생성하는 Python 용 간단한 코드 분석기의 멋진 이름입니다.
작동 방식보기 : http://pycana.sourceforge.net/
산출:
덕분에 PyDev의은 , 당신은 할 수 pylint 통합 에 이클립스 IDE 정말 쉽고 코드 보고서 당신이 수정 된 파일을 저장할 때마다 얻을.
사용 flake8 하나의 도구에 pep8, pyflakes 및 복잡성을 분석을 제공,
유사한 코드 조각을 찾는 데 도움이되는 CloneDigger 라는 도구가 있습니다 .
순환 적 복잡성을 확인하기위한 mccabe
패키지 는 물론 있습니다.
설치:
$ pip install --upgrade mccabe
용법:
$ python -m mccabe --min=6 path/to/myfile.py
위의 임계 값 6에 유의하십시오. 당 이 답변 점수> 5 아마 단순화해야한다.
다음을 사용한 샘플 출력 --min=3
:
68:1: 'Fetcher.fetch' 3
48:1: 'Fetcher._read_dom_tag' 3
103:1: 'main' 3
선택적으로 pylint-mccabe 또는 pytest-mccabe 등을 통해 사용할 수도 있습니다 .
'developer tip' 카테고리의 다른 글
LogManager.GetLogger에 대한 log4net 인수 (0) | 2020.08.22 |
---|---|
여러 git 저장소를 어떻게 구성하여 모두 함께 백업합니까? (0) | 2020.08.22 |
Java에서 직렬화의 목적은 무엇입니까? (0) | 2020.08.21 |
텍스트를 클립 보드에 복사하는 Python 스크립트 (0) | 2020.08.21 |
루프를위한 JavaScript ES6 약속 (0) | 2020.08.21 |