2008-09-25 11 views
14

Nach dem Lesen der Antworten auf die Frage "Calculate Code Metrics" Ich habe das Tool SourceMonitor installiert und einige Metriken berechnet.Wie interpretieren Code-Metriken (berechnet von SourceMonitor)

Aber ich habe keine Ahnung, wie man sie interpretiert.

Was ist ein "guter" Wert für die Metrik

  • "Prozent Niederlassung Statements"
  • "Methoden pro Klasse"
  • "Average Statements pro Method"
  • „Maximum Methode oder Funktion Komplexität "

Ich habe keine Hinweise in der Dokumentation gefunden, kann mir jemand helfen?

Antwort

15

SourceMonitor ist ein tolles Werkzeug.

"Methoden pro Klasse" ist nützlich für diejenigen, die sicherstellen möchten, dass ihre Klassen guten OO-Prinzipien folgen (zu viele Methoden zeigen an, dass eine Klasse mehr übernehmen könnte, als sie sollte).

"Durchschnittliche Anweisungen pro Methode" ist nützlich für ein allgemeines Gefühl, wie groß jede Methode ist. Nützlicher für mich ist die Info zu den Methoden mit zu vielen Anweisungen (Doppelklick auf das Modul für feinere Korndetails).

Funktion Komplexität ist nützlich, um festzustellen, wie bösartig der Code ist. Wahrlich, ich nutze diese Informationen mehr als alles andere. Dies ist eine Information darüber, wie kompliziert die gemeinste Funktion in einem Modul ist (zumindest gemäß der zyklomatischen Komplexität). Wenn Sie auf das Modul/die Datei doppelklicken, können Sie herausfinden, welche Methode so schlecht ist.

7

Als allgemeine Faustregel gilt, dass eine zyklomatische Komplexität von 10 oder weniger der Punkt ist, an dem Sie sein möchten. Ein CC von 11 bis 20 ist ungefähr so ​​hoch, wie Sie in den meisten Fällen erreichen möchten: Sobald Sie über 20 kommen, werden Sie eher Probleme haben, Fehler zu finden und zu beheben, und sobald Sie über 50 sind, suchen Sie normalerweise bei einer Methode, die jetzt refaktoriert werden muss.

Beachten Sie, dass dies Richtlinien sind. Es ist möglich, eine Methode mit einem CC von 25 zu verwenden, die so einfach wie möglich ist; Sie müssen nur vorsichtiger mit diesen Methoden sein, wenn Sie sie aktualisieren müssen.