2015-12-06 4 views
8

Kürzlich bin ich auf der Suche nach dem besten Tool-Set, Code-Inspektion zu tun. Meine IDE ist Intellij 15.0 und ich weiß, dass es dort gute Inspektionsfähigkeiten gibt, aber wenn ich über das Internet schaue, habe ich keinen guten Vergleich zwischen Intellij Buildin Inspektionscode und diesen drei gefunden. Kann jemand, der sie alle ausprobiert hat, einige Best Practice geben, was zu verwenden? deckt Intellij alle ab?Intellij IDEA build-in Prüfcode vs checkstyle, PMD & findbugs

Ich weiß, Findbugs laufen in Binär-Ebene, aber lassen Sie es immer noch im Vergleich bleiben.

Antwort

10

In Checkstyle Projekt selbst nutzen wir alle diese Werkzeuge: Checkstyle, PMD, FindBugs und IntelliJ IDEA inspections.

Hier sind meine Beobachtungen:

  • Es gibt keinen Ersatz für Check ist, wenn es um die Formatierung kommt, Whitespaces, Klammern Platzierung, Javadoc und allgemeinen Code-Stil. Es gibt Überschneidungen mit IntelliJ bei der Benennung und einige schlechte Praktiken, aber das ist es.
  • PMD Regeln sind denen der IntelliJ sehr ähnlich. Beide Tools zielen hauptsächlich darauf ab, typische Fehler oder schlechte Praktiken zu erkennen. Sie werden nach wie vor, obwohl einige einzigartige nützliche PMD-Regeln, nur einige zufällige Beispiele finden: BigIntegerInstantiation, CommentDefaultAccessModifier, SingletonClassReturningNewInstance.
  • Ich würde niemals von FindBugs zugunsten eines anderen Tools zurücktreten. FindBugs konzentriert sich nur auf die Suche nach echten Fehlern im Code mit einer niedrigen Rate von falsch-positiven Ergebnissen. Normalerweise benötigt es keine Konfiguration - aktivieren Sie einfach alle Regeln und schlafen Sie sicher. Natürlich gibt es Überschneidungen mit IntelliJ, aber je mehr Fehler entdeckt wurden, desto besser.

IntelliJ IDEA Inspektionen sind ein großes Werkzeug, da sie viele einzigartige und verlässliche Regeln enthalten. Und es ist nicht nur Java - Sie können sofort Probleme in XML, Eigenschaften, SQL, Spring, HTML, CSS usw. erkennen. Sie erfordern jedoch viel Konfiguration und die Auswahl eines richtigen Regelsatzes. Wenn Sie alle Regeln aktivieren, werden bei jedem größeren Projekt Hunderttausende von Verstößen gemeldet. Und es ist schwierig, diese Inspektionen in Maven oder Gradle Build einzubetten, so dass sich das Projekt selbst validiert.

Meine Empfehlung ist es, alle dieser Tools zu verwenden, da jeder von ihnen mindestens ein Dutzend (manchmal Dutzende von Dutzend) nützliche Checks enthält, die nirgendwo anders verfügbar sind.

+1

Danke für die Antwort Michal. Verwenden Sie die IntelliJ-Plug-Ins für all diese Tools? Wenn wir in das Bild-Tool wie SonarQube einfügen, das in der CI ausgeführt wird, verwenden Sie immer noch alle von ihnen in der IDE? – Idan

+0

Ich benutze nur CheckStyle-IDEA, weil es schnelle Echtzeit-Analyse zusammen mit schneller Überprüfung aller Dateien vor dem Festschreiben kann. Checkstyle-Probleme sind die häufigsten, also ist es sehr hilfreich. Für PMD und FindBugs rufe ich 'mvn pmd auf: check findbugs: check' oder gleichwertig für Gradle. Verstöße in diesen Tools sind weniger verbreitet, aber ernster. Wenn ich also etwas vergesse, wird CI den Build sowieso nicht bestehen. –

Verwandte Themen