Dieses Tool für Java -Codebasen hilft Ihnen dabei, zuerst zu identifizieren, was Sie refaktorieren sollten:
Es scannt Ihr Git -Repository und läuft:
Die Zyklusanalyse wird zu diesem Zeitpunkt basierend auf Klassenfeldtypen und Methodensignaturtypen durchgeführt (noch mehr!).
Die im Bericht generierten Diagramme sehen ähnlich aus: 
Die Änderung, um Java 11 zu verlangen
Die Java 21 -Codebasis -Analyse wird unterstützt!
Führen Sie den folgenden Befehl aus der Stammwurzel Ihres Projekts aus (der Quellcode muss nicht erstellt werden):
mvn org.hjug.refactorfirst.plugin:refactor-first-maven-plugin:0.6.1:htmlReport Sehen Sie sich den Bericht unter target/site/refactor-first-report.html
Dies erzeugt einen vereinfachten HTML -Bericht (keine Diagramme oder Bilder) als Ausgabe eines Github -Aktionsschritts
mvn -B clean test
org.hjug.refactorfirst.plugin:refactor-first-maven-plugin:0.6.1:simpleHtmlReport
&& echo " $( cat target/site/refactor-first-report.html ) " >> $GITHUB_STEP_SUMMARYFügen Sie Ihrem Projekt Folgendes im Bauabschnitt hinzu. Showdetails zeigen Metriken und Ranglisten der Gottesklasse in der generierten Tabelle.
< build >
< plugins >
...
< plugin >
< groupId >org.hjug.refactorfirst.plugin</ groupId >
< artifactId >refactor-first-maven-plugin</ artifactId >
< version >0.6.1</ version >
<!-- optional -->
< configuration >
< showDetails >false</ showDetails >
</ configuration >
</ plugin >
...
</ plugins >
</ build > Fügen Sie Ihrem Projekt Folgendes im Abschnitt Berichte hinzu.
Ein Refactorfirst -Bericht wird im Site -Bericht angezeigt, wenn Sie mvn site ausführen
< reporting >
< plugins >
...
< plugin >
< groupId >org.hjug.refactorfirst.plugin</ groupId >
< artifactId >refactor-first-maven-plugin</ artifactId >
< version >0.6.1</ version >
</ plugin >
...
</ plugins >
</ reporting >Wenn Sie einen ähnlichen Fehler sehen wie
Execution default-site of goal org.apache.maven.plugins:maven-site-plugin:3.3:site failed: A required class was missing while executing org.apache.maven.plugins:maven-site-plugin:3.3:site: org/apache/maven/doxia/siterenderer/DocumentContent
Sie müssen Folgendes zu Ihrem pom.xml hinzufügen:
< build >
< plugins >
< plugin >
< groupId >org.apache.maven.plugins</ groupId >
< artifactId >maven-site-plugin</ artifactId >
< version >3.12.1</ version >
</ plugin >
< plugin >
< groupId >org.apache.maven.plugins</ groupId >
< artifactId >maven-project-info-reports-plugin</ artifactId >
< version >3.4.5</ version >
</ plugin >
</ plugins >
</ build >Ich möchte in Zukunft ein Gradle-Plugin erstellen und (möglicherweise) nicht konventionelle Projekte unterstützen. In der Zwischenzeit können Sie jedoch eine Dummy-POM-Datei im selben Verzeichnis wie Ihr .git-Verzeichnis erstellen:
< project xmlns = " http://maven.apache.org/POM/4.0.0 " xmlns : xsi = " http://www.w3.org/2001/XMLSchema-instance "
xsi : schemaLocation = " http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd " >
< modelVersion >4.0.0</ modelVersion >
< groupId >com.mycompany.app</ groupId >
< artifactId >my-app</ artifactId >
< version >1.0-SNAPSHOT</ version >
</ project >und dann (vorausgesetzt, Maven ist installiert) ausführen
mvn org.hjug.refactorfirst.plugin:refactor-first-maven-plugin:0.6.1:htmlReport Sehen Sie sich den Bericht unter target/site/refactor-first-report.html
Sobald das Plugin ausgeführt wird (es kann für eine große/alte Codebasis eine Weile dauern), öffnen Sie das Dateiziel/die Site/Refactor-First-Report.html im Stamm des Projekts. Es enthält eine Grafik, die dem oben genannten ähnlich ist, und eine Tabelle, in der Gottklassen in der empfohlenen Reihenfolge aufgeführt sind, dass sie neu gestaltet werden sollten. Die Klassen oben links im Diagramm sind am einfachsten zu refaktor und haben gleichzeitig den größten positiven Einfluss auf die Teamproduktivität.
Wenn hoch gekoppelte Klassen erkannt werden, wird ein Diagramm und eine Tabellenauflistung hochgekoppelter Klassen in generiert.
Arbeiten Sie mit Ihrem Produktbesitzer zusammen, um die identifizierten technischen Schulden zu priorisieren. Es kann helfen, es als versteckter negativer Wert zu erklären, der die Pordotivität des Teams verlangsamt.
Wenn Sie Intellij Ultimate haben, können Sie das Plugin für Methodenreferenzdiagramm installieren, um festzustellen, wie die identifizierten Gottklassen und hochgekoppelten Klassen überarbeitet werden können.
Dieses Plugin funktioniert sowohl für Einzelmodul- als auch für Multi-Modul-Maven-Projekte, die ein typisches Maven-Projektlayout haben.
Dieses Tool basiert auf dem Papier , das sich von Nico Zazworka, Carolyn Seaman und Forrest Shull priorisieren . Die auf dem Papier basierende Präsentation ist unter https://resources.sei.cmu.edu/asset_files/presentation/2011_017_001_516911.pdf erhältlich
Es gibt noch viel zu tun. Ihr Feedback und Ihre Zusammenarbeit werden in Form von Feature -Anfragen, Fehlereinreichungen und PRs sehr geschätzt.
Wenn Sie dieses Plugin nützlich finden, spielen Sie bitte dieses Repository und teilen Sie dies mit Ihren Freunden und Kollegen und in den sozialen Medien.
Wenn Sie ein Benutzer von Version 0.1.0 oder 0.1.1 sind, können Sie feststellen, dass sich die Liste der vom Plugin gefundenen Gottesklassen geändert hat. Dies ist auf Änderungen in PMD zurückzuführen.