Esta herramienta para Java CodeBases lo ayudará a identificar lo que debe refactorizar primero:
Escanea tu repositorio de git y se ejecuta:
El análisis del ciclo se realiza en función de los tipos de campo de clase y los tipos de firma del método en este momento (¡más por venir!).
Los gráficos generados en el informe se verán similares a este: 
Se necesita el cambio para exigir Java 11 para abordar la vulnerabilidad CVE-2023-4759 en JGIT
¡El análisis Java 21 CodeBase es compatible!
Ejecute el siguiente comando desde la raíz de su proyecto (no es necesario construir el código fuente):
mvn org.hjug.refactorfirst.plugin:refactor-first-maven-plugin:0.6.1:htmlReport Ver el informe en target/site/refactor-first-report.html
Esto generará un informe HTML simplificado (sin gráficos o imágenes) como la salida de un paso de acción GitHub
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_SUMMARYAgregue lo siguiente a su proyecto en la sección de compilación. Showdetails mostrará métricas de clase de Dios y clasificaciones en la tabla generada.
< 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 > Agregue lo siguiente a su proyecto en la sección Informes.
Un informe RefactorFirst aparecerá en el informe del sitio cuando ejecute mvn site
< reporting >
< plugins >
...
< plugin >
< groupId >org.hjug.refactorfirst.plugin</ groupId >
< artifactId >refactor-first-maven-plugin</ artifactId >
< version >0.6.1</ version >
</ plugin >
...
</ plugins >
</ reporting >Si ve un error similar a
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
Deberá agregar lo siguiente a su pom.xml:
< 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 >Me gustaría crear un complemento de Gradle y (posiblemente) admitir proyectos no convencionales en el futuro, pero mientras tanto puede crear un archivo POM ficticio en el mismo directorio que su directorio .GIT:
< 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 >y luego (suponiendo que Maven esté instalado) ejecute
mvn org.hjug.refactorfirst.plugin:refactor-first-maven-plugin:0.6.1:htmlReport Ver el informe en target/site/refactor-first-report.html
Una vez que el complemento termine de ejecutarse (puede tomar un tiempo para una base de código grande/antigua), abra el archivo objetivo/sitio/refactor-first-report.html en la raíz del proyecto. Contendrá un gráfico similar al de arriba, y una tabla que enumera las clases de Dios en el orden recomendado para que deben refactorarse. Las clases en la parte superior izquierda del gráfico son las más fáciles de refactor, al tiempo que tienen el mayor impacto positivo en la productividad del equipo.
Si se detectan clases altamente acopladas, se generará un gráfico y una tabla que enumera clases altamente acopladas.
Trabaje con el propietario de su producto para priorizar la deuda técnica que se ha identificado. Puede ayudar a explicarlo como un valor negativo oculto que está ralentizando la portuctividad del equipo.
Si tiene IntelliJ Ultimate, puede instalar el complemento de diagrama de referencia de método para ayudarlo a determinar cómo se pueden refactorizar las clases de Dios identificadas y las clases altamente acopladas.
Este complemento funcionará en proyectos Maven de módulo único y múltiples módulos que tienen un diseño de proyecto Maven típico.
Esta herramienta se basa en el documento que prioriza las oportunidades de inversión de la deuda de diseño de Nico Zazworksa, Carolyn Seaman y Forrest Shull. La presentación basada en el documento está disponible en https://resources.sei.cmu.edu/asset_files/presentation/2011_017_001_516911.pdf
Todavía queda mucho por hacer. Sus comentarios y colaboración serían muy apreciados en forma de solicitudes de funciones, envíos de errores y PRS.
Si encuentra útil este complemento, protagonice este repositorio y comparta con sus amigos y colegas y en las redes sociales.
Si es un usuario de la versión 0.1.0 o 0.1.1, puede notar que la lista de clases de Dios encontradas por el complemento ha cambiado. Esto se debe a cambios en PMD.