Normalerweise würde ich bei der Arbeit an einem bestehenden Projekt einfach mit dem Stil arbeiten, der bereits in der Codebasis eingerichtet ist. Aber unser Team muss mehrere kleine bis mittelgroße Projekte pflegen, die sich in ihrem Codierungsstil leicht unterscheiden. Es wäre effizienter und weniger verwirrend, wenn wir diese Unterschiede aufräumen könnten.
Ich bin auf der Suche nach einem Werkzeug, mit dem ich den bestehenden Stil umgestalten kann. Viele Features werden bereits von Standard-Tools zur Code-Formatierung bereitgestellt, z. B. das Ändern des Einrückungsstils. Was mir fehlt, ist ein Tool, mit dem ich die Präfixe von Feld- und Parameternamen entfernen kann. In einigen Projekten wird allen Mitgliedern das Präfix "m" vorangestellt, allen Parametern wird "p" vorangestellt und statischen Mitgliedern wird das Präfix "s" vorangestellt.
Das Tool sollte in der Lage sein, Fälle wie:
zu behandeln %Vor%Was sollte werden:
%Vor%Das Tool sollte in einem Fall wie diesem eine Warnung generieren:
%Vor%Ich weiß, dass jede Haupt-IDE die Funktion refactor: rename zur Verfügung stellt. Was ich jedoch suche, ist ein Werkzeug, das eine ganze Codebasis verarbeitet, ohne dass ich jeden Parameter / jedes Feld einzeln durchgehen muss.
Bearbeiten
Viele der Antworten erwähnen Werkzeuge, um Quellcode neu zu formatieren oder die Codebasis anhand einer Reihe von Stilregeln zu überprüfen. Ich bin mir bewusst, dass diese Werkzeuge existieren. Was ich speziell suche, ist ein erweitertes Tool, mit dem ich bereichsspezifische Variablennamen-Präfixe entfernen kann.
Ich habe nach einem ähnlichen oder noch fortgeschritteneren Tool gesucht. Ich habe versucht, Design-Metriken zu implementieren, die sehr kontextabhängig sind. Ich habe einige Werkzeuge gefunden, die kommerziell und ziemlich teuer sind wie Ndepend und Reflectk. Ich habe auch einige Open-Source-Tools gefunden, die wie Hammurapi aussehen. Es gibt auch Tools wie Checkstyle, Findbugs und PMD, die für sehr einfache Anwendungsfälle verwendet werden können. Das beste Werkzeug, das ich fand, war MoDisco. Es basiert auf Eclipse EMF, ermöglicht es, Modell Ihres Codes zu generieren und einige Abfragen oder Transformationen durchzuführen (mit M2M-Tools). Das einzige Problem, das ich hatte, war, dass es für Standard ~ 20k LOC-Projekte ziemlich langsam ist. Probieren Sie es aus, vielleicht wird es für Ihren Anwendungsfall ausreichen.
Ich kenne kein vorhandenes Projekt, das dies für Sie tun würde.
Haben Sie darüber nachgedacht, Ihr eigenes zu schreiben? Zum Beispiel bietet das Eclipse-Framework solide Werkzeuge zur Code-Formatierung. Haben Sie nachgeforscht, einen von ihnen zu verlängern, um zu tun, was Sie vorschlagen? Das Erkennen von Variablen, die mit dem von Ihnen genannten Muster benannt sind, sollte ziemlich einfach sein.
Ich verstehe, dass es keine ideale Lösung ist. ABER, wenn Sie eine Codebasis haben, die groß genug ist, kann es kosteneffektiver sein, als alle Bearbeitungen von Hand durchzuführen.
Klingt nach etwas wie Jalopy könnte helfen.
Mit Jalopy können Sie einen Codeformat-Stil definieren und dann eine Datei, ein Paket oder das gesamte Projekt lesen und neu formatieren. Ich kann mich nicht erinnern, ob es raffinierteres Refactoring wie das Ändern des Stils einer lokalen Variablen, um keine ungarische Notation zu verwenden (mVar-Mist), verwenden kann, aber es kann zwischen beliebigen Abständen, Klammern, Ordnungen und anderen Formatierungen wechseln.
Ich habe Jalopy in der Vergangenheit benutzt und es hat gut funktioniert. Ich habe es sogar in Teams verwendet, in denen die Leute verschiedene persönliche Codierungsstile hatten, und dann haben wir uns alle auf ein bestimmtes Format geeinigt, das automatisch von Jalopy gehandhabt wurde. (Wenn Sie es auschecken formatieren Sie es auf Ihre Weise, wenn es wieder eingecheckt wird formatiert das Team vereinbart, etc.)
Ein Problem, aber es sieht so aus, als sei es seit einem Jahr nicht mehr gepflegt worden. Aber es gibt auch eine kommerzielle Version , die sehr viel jünger ist - die Bemühungen scheinen in diese Richtung gegangen zu sein. Dennoch könnte die ältere Veröffentlichung in Ordnung sein.
Und es gibt noch andere ähnliche kommerzielle Angebote wie
FindBugs ist ein sehr gutes Werkzeug für die statische Codeanalyse. Es erkundet wirklich mögliche Fehler und ist einfach in IDE zu integrieren und Werkzeuge zu bauen.
Tags und Links java coding-style refactoring