Frage

Ich habe kürzlich als Teil einer Untersuchung der Standard -Codierungskonventionen untersucht. Obwohl es für brandneue Projekte vollkommen geeignet ist, scheint es eine enorme Hindernis für die Akzeptanz für bereits vorhandene Projekte zu haben, da es nicht eine Methode zur Überprüfung neuer oder bearbeiteter Code zu liefern scheint. Vielleicht bin ich falsch?

Wenn Sie eine Codebasis haben, die noch nie einen Codierungsstandard hatte, kann es sich um eine massive Anstrengung handeln, um die gesamte Codebasis mit einem Standard auf einmal zu erhalten. Es scheint ein vernünftigerer Ansatz zu sein, es schrittweise im Laufe der Zeit zu ermöglichen, da sich Code natürlich weiterentwickelt. Aber es scheint keine Möglichkeit mit Checkstyle zu sein.

Ich gehe davon aus, dass dies ein Zusammenhang mit einem Quellensteuerungssystem sein müsste, um möglich zu sein. Ist das mit CheckStyle möglich oder gibt es ein anderes Tool, das diese Funktionalität liefern kann?

War es hilfreich?

Lösung

Soweit ich weiß, soll Checkstyle die Quelle analysieren, ohne seine Geschichte oder Überarbeitungen zu berücksichtigen.

So addieren Sie diese Art von Funktionen, um eine Skript-Checkstyle-Analyse zu erhalten, um sie mit der genauen Untereinstellung von Dateien zu ernähren, die das Delta darstellen.

Aber dann würden bestimmte Art von Schecks wahrscheinlich scheitern oder in ihrer Analyse verpassen, wie Doppelte Code -Überprüfung.

Für diese Art der inkrementellen Analyse müssen Sie nicht nur die Quellenmenge einschränken, sondern auch die Regeln, die Sie durchsetzen möchten, für einige dieser Regeln nur für alle Quellen sinnvoll ist.


Warum konnten Sie also keine vollständige Überprüfung jeder Datei ausführen und dann die Ergebnisse basierend auf Änderungen filtern, die von Ihrem Quell -Steuerungssystem verwaltet werden? So etwas gibt es?

Meines Wissens nicht, besonders mit Plugin wie Eclipse-CS Für Eclipse: Es analysiert eine Datei, sie werden alle Warnungen anzeigen, obwohl die Quellensteuerung erwähnt, dass die Datei seit einer bestimmten Revision nicht geändert hat.

Nur ein externes Skript könnte dies tun:
Das Prinzip ist einfach (obwohl es zur Ausführungszeit etwas langsam sein könnte):

  • Führen Sie für jede Datei einen Diff durch, um zu überprüfen, ob Änderungen vorgenommen wurden
  • Falls ja,
    • mach a svn blame Zeilen mit der Revisionsnummer, die die letzte Änderung enthielt.
    • Analysieren Sie die Datei mit Checkstyle.
  • Das Skript kann dann die Warnung für die derzeit geänderte Zeile (oder für alle nach einer bestimmten Überarbeitung geänderten Zeilen) filtern.

Andere Tipps

Wir haben a CheckStyle Plugin zum SCM-Manager, ein Instrument zur Verwaltung von Git-, Subversion- und Quecksilberrepositories. Wenn aktiviert, ist es möglich, den festgelegten Quellcode anhand Ihrer CheckStyle -Regeln zu überprüfen. Wenn der Scheck Fehler festgestellt hat, wird das Commit abgebrochen.

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