2008-09-30 10 views
9

Ich habe kürzlich das Eclipse Metrics Plugin installiert und die Daten für eines unserer Projekte exportiert.Code-Metriken verstehen

Es ist alles sehr gut, diese schönen Grafiken zu haben, aber ich würde wirklich gerne tiefer verstehen, was sie alle bedeuten. Die Definitionen der Metriken gehen nur so weit, Ihnen zu sagen, was es wirklich bedeutet.

Kennt jemand gute Ressourcen, Bücher, Websites usw., die mir helfen können, besser zu verstehen, was alle Daten bedeuten, und zu verstehen, wie der Code wo nötig verbessert werden kann?

Ich interessiere mich für Dinge wie Efferent Coupling und Cyclomatic Complexity, etc, anstatt Linien von Code oder Linien pro Methode.

Antwort

4

Ich glaube nicht, dass Code-Metriken (manchmal als software metrics bezeichnet) wertvolle Daten in Bezug auf, wo Sie verbessern können.

Mit Code-Metriken ist es schön, zu sehen, wie viel Code man in einer Stunde usw. schreibt, aber darüber hinaus erzählen sie dir von der Qualität des geschriebenen Codes, seiner Dokumentation und Codeabdeckung. Sie sind so ziemlich eine Woche Versuch zu messen, wo Sie nicht wirklich messen können.

Code-Metriken diskriminieren auch die Programmierer, die die schwierigeren Probleme lösen, weil sie offensichtlich verwaltet, um weniger zu programmieren. Doch sie lösten die harten Probleme und ein Junior-Programmierer, der viele Mist-Code auspeitscht, sieht gut aus. Ein anderes Beispiel für die Verwendung von Metriken ist die sehr populäre Ohloh. Sie verwenden Metriken, um ein Opensource-Projekt mit einem Preisschild zu versehen (mit der Anzahl der Zeilen usw.), was an sich schon ein Versuch ist, der als Hölle - wie Sie sich vorstellen können.

Nach allem, was der Wikipedia-Eintrag bietet einen allgemeinen Einblick in das Thema, Entschuldigung, Ihre Frage nicht auf eine unterstützende Weise mit einer wirklich tollen Website oder Buch zu beantworten, aber ich wette, Sie haben die Drift, dass ich nicht bin großer Fan. :)

Etwas zu beschäftigen, um Ihnen zu helfen, wäre kontinuierliche Integration und die Einhaltung einer Art von Standard, wenn es um Code, Dokumentation und so weiter geht. So kannst du dich verbessern. Metriken sind Augenschmaus für Meetings - "Schau, wir haben schon so viel codiert".

aktualisieren

Ok, gut mein Punkt ableitenden Kopplung oder sogar zyklomatische Komplexität sein kann etwas falsch angeben - es aber muss nicht falsch sein. Es kann ein Hinweis sein, eine Klasse umzuformen, aber es gibt keine Faustregel, die Ihnen sagt wann.

IMHO eine Regel wie 500 Zeilen Code, Refactor oder die DRY principal sind in den meisten Fällen mehr anwendbar. Manchmal ist es so einfach.

Ich gebe Ihnen so viel, dass, da zyklomatische Komplexität in einem Flussdiagramm grafisch dargestellt wird, es ein Augenöffner sein kann. Aber wieder vorsichtig.

+0

hilft ich einen falschen Begriff von „Metriken“ verwendet haben. Es geht mir nicht um Codezeilen oder Code nach Methodentypen, sondern um einige der komplexeren Messungen, die es gibt. Zyklomatische Komplexität, efferente Kopplung usw. Ihr Punkt wird jedoch gebührend beachtet. – Feet

+0

Ich erweiterte meine Antwort und reagierte auf Ihre Punkte. :) Hoffnungsvoll! – Till

1

Meiner Meinung nach sind Metriken eine hervorragende Möglichkeit, Schwachstellen in Ihrer Codebasis zu finden. Sie sind auch sehr nützlich, um Ihrem Manager zu zeigen, warum Sie Zeit damit verbringen sollten, ihn zu verbessern.

Dies ist ein Beitrag habe ich darüber geschrieben: http://blog.jorgef.net/2011/12/metrics-in-brownfield-applications.html

Ich hoffe, es