Domanda

Ho un grande repository di origine suddiviso tra più progetti.Vorrei produrre un rapporto sulla salute del codice sorgente, per identificare aree problematiche che devono essere affrontate.

In particolare, vorrei richiamare la routine con una elevata complessità ciclomatica, identificare la ripetizione, e correre, forse alcuni di lanuggine come analisi statica al posto di sospetto (e quindi probabilmente errata) costruisce.

Come potrei andare sulla costruzione di un rapporto di questo tipo?

È stato utile?

Soluzione

Per la misurazione della complessità ciclomatica, c'è un bel strumento disponibile traceback.org.La pagina fornisce una buona panoramica di come interpretare i risultati.

+1 per pylint.È grande la verifica dell'aderenza agli standard di codifica (che può essere PEP8 o della propria organizzazione variante), che può alla fine contribuire a ridurre la complessità ciclomatica.

Altri suggerimenti

Per la complessità ciclomatica è possibile utilizzare radon: https://github.com/rubik/radon

(Utilizzare pip per installarlo: pip install radon)

Inoltre, ha queste caratteristiche:

  • valori assoluti (questi includono SLOC, righe di commento, le righe vuote, &c.)
  • Halstead metriche (tutti)
  • Manutenibilità Indice, utilizzato in Visual Studio)

Per l'analisi statica non c'è pylint e pychecker.Personalmente io uso pylint, come sembra essere, più completa di pychecker.

Per la complessità ciclomatica si può provare questo programma perl, o questo articolo che introduce un programma in python per fare lo stesso

Pycana funziona come un fascino quando è necessario capire un nuovo progetto!!!

PyCAna (Codice Python Analyzer) è un nome di fantasia per un semplice codice analizzatore per python che crea un diagramma di classe dopo l'esecuzione di codice.

Vedere come funziona:http://pycana.sourceforge.net/

output:

il testo alt http://pycana.sourceforge.net/relations.png

Grazie a Pydev, è possibile integrare pylint nel Eclipse IDE davvero semplice e ottenere un codice di report ogni volta che si salva un file modificato.

Utilizzare flake8, che fornisce pep8, pyflakes e complessità ciclomatica di analisi in un unico strumento

C'è uno strumento chiamato CloneDigger che ti aiuta a trovare simili frammenti di codice.

Per il controllo della complessità ciclomatica, c'è, naturalmente, il mccabe pacchetto.

Installazione:

$ pip install --upgrade mccabe

Utilizzo:

$ python -m mccabe --min=6 path/to/myfile.py

Nota la soglia di 6 di cui sopra.Per questa risposta, spartiti >5 probabilmente dovrebbe essere semplificata.

Esempio di output con --min=3:

68:1: 'Fetcher.fetch' 3
48:1: 'Fetcher._read_dom_tag' 3
103:1: 'main' 3

Opzionalmente può essere utilizzato anche via pylint-mccabe o pytest-mccabe, etc.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top