Frage

  • Sie Quellcode-Analysatoren verwenden Sie? Wenn ja, welche und für die Sprachentwicklung?
  • Sie finden Sie sie hilfreich bei der potentiellen Fehler in Ihrem Code zu lösen? Oder sind die meisten ihrer Warnungen trivial?
  • Nach längerem Gebrauch sehen Sie Ihre Code-Qualität finden, höher zu sein als vorher?
War es hilfreich?

Lösung

Ich benutze ein paar statischen Analysetools in Java. FindBugs ist die erste Linie der Verteidigung, eine Menge gemeinsamen Fehlers und gibt ziemlich nützliches Feedback zu kontrollieren. Es Flecke oft die dummen Fehler müdeer Programmierer und keine hohe Belastung für den Benutzer setzen.

PMD für viele andere mehr niggly Bugs gut, erfordert aber viel mehr Konfiguration. Sie werden feststellen, dass PMD Ausfälle oft über die Spitze sind. Es gibt zu viele Regeln, die wahrscheinlich von Vorteil auf einem kleinen Maßstab sind aber letztlich nicht helfen, andere Programmierer den Code zu halten. Einige der PMD Regeln oft Klaps der vorzeitigen Optimierung.

Wahrscheinlich nützlicher ist die CPD Unterstützung in PMD. Es wird versucht, Code zu finden, die an anderer Stelle kopiert wurden, um Refactoring viel einfacher zu machen. ein gesamtes Projekt überfahren, das hilft wirklich zu bestimmen, wo die größten Prioritäten sind für die Code-Reinigung und alle DRY Verletzungen zu stoppen.

Check ist auch praktisch, sicher, dass Ihre Programmierer bis zu einem gewissen Codierstil Standard entsprechen. es hat ein wenig Überschneidungen mit PMD aber ist in der Regel viel mehr verwendbar.

Schließlich Cobertura ist eine große Testabdeckung Suite. Sehr praktisch, um herauszufinden, wo die Unit-Tests fehlen, und wo sollten Sie die Erstellung neuer Tests werden priorisieren.

Oh, und ich habe auch Jester getestet werden. Es scheint für die Suche nach Löchern in Tests ziemlich gut zu sein, auch wenn der Code eine Abdeckung hat. Noch nicht zu empfehlen, einfach weil ich es nicht genug benutzt habe, aber man zu testen.

Ich betreiben diese Tools sowohl aus Eclipse und als Teil einer automatisierten Build-Suite.

Andere Tipps

Für C, verwende ich memwatch . Es ist wirklich einfach zu bedienen und kostenlos.

Ich habe es viele Speicher Fehler in der Vergangenheit zu finden.

Ich habe ReSharper und MS TS (im Grunde FXCop) und beide recht nützlich vor allem in den folgenden Bereichen:

  • Identifizierung von totem Code
  • Breite Anwendungsbereich
  • Performance-Verbesserungen (bezogen mit der Globalisierung usw.)

Empfehlungen sind nicht immer groß, aber im Allgemeinen der Qualität des Codes verbessert.

Ich bin ein langfristigen Nutzer von PC-Lint für C und C ++ und finde es sehr hilfreich . Diese Werkzeuge sind sehr nützlich, wenn über einen Code-Basis nehmen Sie sind unfamilier mit. Im Laufe der Zeit treffen Sie ein Gesetz des abnehmenden Ertrags, wo die Zahl der neuen Bugs Sie neigt dazu finden ab nachlaufen.

ich immer noch zu einem vollständigen Projekt Fusseln auf einem großen Release.

Edit: Es gibt eine schöne Liste von relevanten Tool auf Wikipedia hier

Ich bin ziemlich glücklich mit ReSharper . Nicht nur, dass es sinnvoll Bits an Informationen geben, während Codierung (z unnötige Würfe, gelten nur lesbar und so weiter), aber seine Refactoring-Funktionen eignen sich hervorragend für den Code sehr schnell neu anordnen.

Es ist nicht alles abdecken, so FxCop (oder ähnliches) ein anständiger neben der Toolbox ist. Doch wie ReSharper unmittelbares Feedback gibt, ist die Durchlaufzeit wirklich gut. (Ich bin mir bewusst, dass FxCop aus VS ausgeführt werden, aber es ist einfach nicht das gleiche imo).

Ich finde Analysatoren etwas nützlich, ich benutze die buildin auf Visual Studio (ex / Analyse für C / C ++ und die benutzerdefinierten Regeln für .net.), Gelegentlich benutze ich StyleCop und codeitright c # meist für Richtlinien, wie die Dinge sein sollten.

Ich glaube nicht, dass es ein perfektes Werkzeug für alles ist, die jeden Fehler findet, aber ich denke, die Werkzeuge helfen, einige Fehler zu finden, nicht unauffindbar, aber ich glaube, Sie würden eine Menge Zeit damit verbringen, sie zu finden.

Ja, um Ihre Code-Qualität ist etwas besser als zuvor, aber ich glaube auch manuelle Fehlersuche immer noch eine Menge benötigt wird. Source-Analysatoren sind nicht die ultimative Heilung sie zwar eine gute Medizin ist. Wenn es ein Werkzeug war, dass man es einfach auszuführen und jede Art von Fehler finden und fixiert es für Sie Millionen kosten würde.

Einige Programmierer, die ich kenne schwören, dass IBM Rational PurifyPlus ist hervorragend, aber das ist ihre Meinung hatte ich nur 2-3 Sitzungen mit dem Werkzeug.

Aber immer eines der Grundprinzipien der Programmierung erinnern logische Fehler, die am schwersten finden sind und beheben, so lange das Debuggen Stunden unvermeidlich sind. Ein guter Code Analyzer mit Unit-Tests in Kombination kann Wunder Gedanken arbeiten.

PS. i neigen weit weniger Fehler in C # als in C ++ zu produzieren, kann jemand sagen, dass ich falsch bin, aber obwohl ich c ++ verwenden mehr Jahre als c # Ich finde den „Code es, und ich werde darum kümmern“ gc Ansatz von C # viel einfacher als c ++ insbesondere für Projekte, die Sie, was Eile bei der Frist / Frist zu beenden, die jedes Projekt wie diesem Tag ist ...

Ich benutze StyleCop für C #. Es ist ein großartiges Werkzeug, konsistenten Code-Stil zu halten, die zu einem besseren Qualität des Codes führt. Auch ReSharper hat einige Code-Analyse, aber es ist ziemlich einfach.

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