11 Stimmen

Code-Metriken und Warnungen für C++

Ich habe eine ziemlich neue Codebasis in C++ geschrieben. Ich sehe bereits, dass sich einige schlechte Praktiken in das Projekt einschleichen (Klassendatei mit mehr als 1000 Zeilen Code, Funktionen mit vielen Parametern, ...).

Ich möchte diese sofort mit einigen automatisierten Werkzeugen stoppen, die sich in den Build einklinken und auf schlechte Kodierungspraktiken prüfen können. Welche Vorschläge haben Sie für solche Tools? Ich bin an Metriken interessiert, aber eigentlich mehr an einer Art stilistischem Lint, der Funktionen mit 37 Parametern hervorhebt.

6voto

torial Punkte 13003

Es tut mir leid, dass ich Ihnen in Bezug auf den Stil nicht helfen kann, aber ein großartiges Metrik-Tool, das C++ unterstützt und frei: SourceMonitor .

Insbesondere erhalten Sie gute Informationen wie die zyklomatische Komplexität (die meiner Meinung nach für schlechte Programmierpraktiken wertvoller ist als die Anzahl der Parameter) sowie die Anzahl der Codezeilen, den Prozentsatz der Kommentare, die längste Funktion, usw.

Probieren Sie es aus - und es geht auch sehr schnell.

3voto

nathan Punkte 5203

Wie bei den anderen bin ich mir nicht sicher, ob es ein Werkzeug gibt, das den Stil beurteilen kann. Aber CCCC werden zahlreiche Metriken erstellt, die Ihnen helfen können, die Problemstellen zu finden. Metriken wie die zyklomatische Komplexität geben Ihnen quantitative Hinweise darauf, wo die Problemstellen liegen. Der Nachteil ist, dass Sie diese Metriken in einen Styleguide einbauen müssen, den Sie übernehmen oder selbst erstellen.

1voto

Andrew Punkte 1752

Metrix++ entspricht diesem Anwendungsfall und verfügt über mehrere Metriken, an denen Sie wahrscheinlich interessiert sind. Prüfen Sie es hier: http://metrixplusplus.sourceforge.net/

-1voto

ddcruver Punkte 911

Stellen Sie sicher, dass Sie immer mit der Compiler-Option -Wall kompilieren und machen Sie es sich zur Gewohnheit, dass kein Code eingecheckt werden soll, wenn Warnungen bestehen.

Finden Sie einen Standardstil, dem Sie folgen können, wie diese .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X