Es gibt viele Situationen bei meiner Arbeit, in denen ich Codemetriken verwende:
Beim Schreiben von Code
Die größte und vielleicht wichtigste Verwendung in meiner täglichen Arbeit ist Checkstyle , ein Tool für Java-Entwickler, das die Metriken (unter anderem) meines Codes kontinuierlich anhand eines von uns definierten Regelwerks überprüft und Stellen markiert, an denen mein Code nicht funktioniert diese Regeln einhalten. Während ich Code entwickle, erfahre ich in Echtzeit, ob meine Methoden zu lang, zu komplex oder zu gekoppelt sind, sodass ich einen Schritt zurücktreten und darüber nachdenken kann, sie zu etwas Besserem umzugestalten.
Es steht Entwicklern völlig frei, alle Regeln zu brechen, da sie niemals für alle Situationen gelten. Die "Regeln" regen zum Nachdenken an und sagen: "Hey, ist das der beste Weg, dies zu tun?"
Während der QA / Code-Überprüfungen
Wenn ich eine Codeüberprüfung durchführe, überprüfe ich in der Regel zuerst die Codeabdeckung des Codes, den ich überprüfe, in Verbindung mit einem Tool zur Codeabdeckung, mit dem hervorgehoben wird, welche Codezeilen abgedeckt wurden. Dies gibt mir eine allgemeine Vorstellung davon, wie gründlich der Testcode ist. Es ist mir eigentlich egal, ob die Abdeckung 20% oder 100% beträgt, solange der wichtige Code gut getestet ist. So ist der Prozentsatz, der abgedeckt wird, etwas bedeutungslos, aber 0% heben sich wie ein schmerzender Daumen als etwas hervor, das ich sorgfältig betrachten möchte.
Ich überprüfe auch, ob die vom Team vereinbarten Messwerte "gebrochen" wurden, um festzustellen, ob ich mit dem Entwickler einverstanden bin, dass dies in Ordnung ist, oder ob ich Verbesserungsvorschläge machen kann. Die Vereinbarung dieser Entwicklungsmetriken in unserem Team zum Schreiben von neuem Code hat die Verbesserung unseres Codes erheblich beschleunigt. Wir schreiben viel weniger monolithische Methoden und beherrschen das Prinzip der Einzelverantwortung jetzt viel besser .
Trending Verbesserungen an Legacy-Code
Wir haben eine Menge Legacy-Code, den wir verbessern möchten . Die Metriken zu jedem Zeitpunkt sind ziemlich nutzlos, aber was uns wichtig ist, ist, dass die Codeabdeckung mit der Zeit steigt und Dinge wie Komplexität und Kopplung sinken. Aus diesem Grund sind unsere Metriken in unseren Continuous Integration-Server integriert, sodass wir im Laufe der Zeit nachsehen können, ob wir auf dem richtigen Weg sind.
Neue Codebasis in den Griff bekommen
Das einzige Mal, dass ich Quellcodemetrikzeilen verwende, ist die Betrachtung einer Codebasis, mit der ich nicht vertraut bin. Dadurch kann ich die ungefähre Größe des Projekts im Vergleich zu anderen Projekten, mit denen ich gearbeitet habe, schnell abschätzen. Mit anderen Metriken kann ich mir auch einen groben Überblick über die Qualität des Projekts verschaffen.
Die wichtigsten Dinge sind, Metriken als Ausgangspunkte für Trends, Diskussionen oder Wege in die Zukunft zu verwenden und sie nicht religiös zu verwalten, um genaue Zahlen zu erhalten. Aber ich bin der festen Überzeugung, dass sie Ihnen helfen können, den Code zu verbessern, den Sie richtig verwenden.