Mam duże repozytorium źródłowe podzielone na wiele projektów. Chciałbym sporządzić raport na temat stanu kodu źródłowego, identyfikując obszary problemowe, którymi należy się zająć.
W szczególności chciałbym przywołać procedury o dużej cyklicznej złożoności, zidentyfikować powtórzenia i być może przeprowadzić statyczną analizę podobną do kłaczków, aby wykryć podejrzane (a zatem prawdopodobnie błędne) konstrukcje.
Jak mogę zabrać się do tworzenia takiego raportu?
https://flakehell.readthedocs.io/config.html
te dni, ponieważ jego model wykonania jest znacznie bardziej niezawodny i konfigurowalny.Dla złożoności cyklomatycznej możesz użyć
radon
: https://github.com/rubik/radon(Użyj
pip
go zainstalować:pip install radon
)Dodatkowo ma również następujące funkcje:
źródło
Do analizy statycznej służy pylint i pychecker . Osobiście używam pylint, ponieważ wydaje się być bardziej wszechstronny niż pychecker.
W przypadku złożoności cyklicznej możesz wypróbować ten program w Perlu lub ten artykuł, który wprowadza program w Pythonie, który robi to samo
źródło
Pycana działa jak urok, gdy musisz zrozumieć nowy projekt!
Zobacz, jak to działa: http://pycana.sourceforge.net/
wynik:
źródło
Dzięki Pydev możesz bardzo łatwo zintegrować pylint z Eclipse IDE i otrzymać raport o kodzie za każdym razem, gdy zapisujesz zmodyfikowany plik.
źródło
Użyj flake8 , który zapewnia pep8, pyflakes i analizę złożoności cyklomatycznej w jednym narzędziu
źródło
Istnieje narzędzie o nazwie CloneDigger, które pomaga znaleźć podobne fragmenty kodu.
źródło
Do sprawdzenia cykliczności złożoności jest oczywiście
mccabe
pakiet.Instalacja:
Stosowanie:
Zwróć uwagę na próg 6 powyżej. Zgodnie z tą odpowiedzią wyniki> 5 prawdopodobnie powinny zostać uproszczone.
Przykładowe dane wyjściowe z
--min=3
:Opcjonalnie może być również używany przez pylint-mccabe lub pytest-mccabe itp.
źródło