Frage

Ich habe eine große Quellrepository Split über mehrere Projekte hinweg. Ich möchte einen Bericht über die Gesundheit des Quellcodes erzeugen, Problembereiche zu identifizieren, die angegangen werden müssen.

Insbesondere würde Ich mag Routinen rufen mit einer hohen zyklomatische Komplexität, identifizieren Wiederholung, und vielleicht einige Flusen artige statische Analyse laufen zu erkennen verdächtige (und damit wahrscheinlich fehlerhaft) konstruiert.

Wie kann ich mich über einen solchen Bericht konstruieren?

War es hilfreich?

Lösung

Für zyklomatische Komplexität zu messen, gibt es ein nettes Tool verfügbar unter traceback.org . Die Seite gibt auch einen guten Überblick darüber, wie die Ergebnisse zu interpretieren.

1 für Pylint . Es ist großartig, zu verifizieren Einhaltung Standards Codierung (sei es PEP8 oder eigene Organisation Variante), die am Ende Hilfe zyklomatische Komplexität zu reduzieren.

Andere Tipps

Für zyklomatische Komplexität können Sie radon verwenden: https://github.com/rubik/radon

(Benutzen Sie pip installieren: pip install radon)

Darüber hinaus hat es auch die folgenden Funktionen:

  • Roh-Metriken (dazu gehören SLOC, Kommentarzeilen, Leerzeilen, usw.)
  • Halstead-Metriken (alle)
  • Wartbarkeit Index (die in Visual Studio verwendet wird)

Für die statische Analyse gibt es Pylint und pychecker . Ich persönlich verwende Pylint wie es als pychecker umfassender zu sein scheint.

Für zyklomatische Komplexität können Sie dieses Perl-Programm versuchen, oder das Artikel die führt ein python-Programm, das gleiche zu tun

Pycana funktioniert wie Charme, wenn Sie ein neues Projekt verstehen müssen!

  

PyCAna (Python Code Analyzer) ist   ein ausgefallener Name für einen einfachen Code   Analysator für Python, die eine schafft   Klassendiagramm nach der Ausführung Ihres   Code.

Sehen Sie, wie es funktioniert: http://pycana.sourceforge.net/

Ausgabe:

alt text http://pycana.sourceforge.net/relations.png

Dank Pydev , können Sie Pylint im Eclipse-IDE wirklich leicht integrieren und eine bekommen Code Bericht jedes Mal, wenn Sie eine geänderte Datei speichern.

Verwenden Sie flake8 , die PEP8 bietet, Pyflakes und zyklomatische Komplexität Analyse in einem Werkzeug

Es gibt ein Tool namens CloneDigger , das hilft Ihnen, einen ähnlichen Code-Schnipsel.

finden

Für zyklomatische Komplexität Überprüfung, gibt es natürlich auch die mccabe Paket.

Installation:

$ pip install --upgrade mccabe

Verbrauch:

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

Beachten Sie die Schwelle von 6 oben. Per href="https://stackoverflow.com/a/1365185/832230">, Partituren> 5 wahrscheinlich vereinfacht werden soll.

Eine Beispielausgabe mit --min=3:

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

Es kann auch über Pylint-mccabe oder pytest-mccabe , etc.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top