studio programacion para móviles libro edición desarrollo desarrollar curso aprende aplicaciones java static-analysis code-smell

programacion - Herramienta Java para mejorar mi desarrollo de código limpio.



manual de programacion android pdf (6)

¿Existen herramientas (análisis estático / refactorización / ...) para Java especialmente diseñadas para el desarrollo de código limpio (CCD) ?

Conozco las herramientas habituales para el análisis estático (PMD, Findbugs, Checkstyle), inyección de dependencias, pruebas y cobertura de código. Pero estoy buscando una herramienta que me dé pistas sobre qué tan limpio está mi código (como se describe, por ejemplo, aquí y en el Código de limpieza del tío Bob ), cómo puedo hacerlo más limpio, preferiblemente en sintonía con mi calificación de código limpio . Una herramienta que también podría mostrarme cómo estoy mejorando en CCD con el tiempo sería óptima.

Un ejemplo de una herramienta de este tipo es CcdAddIn , que muestra los valores de CCD de acuerdo con su grado de CCD actual, pero solo para visual studio :(

Entonces, ¿conoces tales herramientas para Java? ¿Cuál es el mejor? ¿Qué de lo anterior cumplen? ¿O tiene una razón por la cual tal herramienta no existe (todavía)?

Si no conoce una herramienta de este tipo: ¿Conoce una herramienta de análisis estático que pueda configurarse para verificar los criterios que se dan en el Código de limpieza del tío Bob , por ejemplo, advertirme sobre olores como nombres o comentarios que parecen haber sido mal escogidos, métodos ¿Son demasiado largos o tienen demasiados parámetros, e inmediatamente sugieren una refactorización particular para resolver esto?


La mayoría de las herramientas que detectan las violaciones de CCD funcionan al recopilar primero las métricas del código y resaltar los valores atípicos.

El sonar es una de esas grandes herramientas que ya se ha señalado.

Las siguientes herramientas se crean específicamente como herramientas para recopilar métricas del código orientado a objetos, pero muestran violaciones en un formato gráfico que ayudará al desarrollador a analizar y evitar.

iPlasma es una gran herramienta

CodePro es un complemento de Eclipse que ayuda a detectar problemas de código y diseño (por ejemplo, código duplicado, clases que rompen la encapsulación o métodos colocados en una clase incorrecta).

Relief es una herramienta que visualiza los siguientes parámetros de proyectos Java:

  • Tamaño de un paquete, es decir, cuántas clases e interfaces contiene
  • el tipo de elemento que se visualiza (los paquetes y las clases se representan como cuadros, interfaces y campos de tipo como esferas).
  • qué tan pesado está siendo usado un artículo (representado como gravedad, es decir, distancia del centro)
  • Número de dependencias (representadas en profundidad).

Stan4j es una herramienta comercial que cuesta un par de cientos de dólares. Está dirigido solo a proyectos Java, se acerca mucho (o un poco mejor a los informes que? No estoy seguro) de Sonar. Tiene una buena integración con Eclipse.



Si está utilizando el tremendo Hudson para la integración continua, hay una gran cantidad de complementos que proporcionan informes y análisis de tendencias sobre cómo el código está mejorando (o decayendo ;-)) con el tiempo. Incluyendo PMD, Checkstyle, FindBugs así como cobertura de prueba


Solo encontré CCD Workbench , que parece estar bastante cerca de CcdAddIn visual studio, pero no encontré ningún lugar para descargar ese complemento de eclipse (y no recibí respuesta a mi correo electrónico).

La descripción del banco de trabajo CCD, así como este informe sobre su diseño , están en alemán. ¿Podría ser que el movimiento CCD es más fuerte en Alemania que en otros países? Me parece que de esa manera.



Sonar viene preestablecido con algunos perfiles de calidad de código decente, basados ​​en PMD, Checkstyle y Findbugs, y una interfaz agradable para personalizarlos para su propio uso. No creo que vayas a encontrar una lista universal de "Debes ..." en el mundo de Java. Hay demasiadas aplicaciones y enfoques de desarrollo diferentes para ese tipo de uniformidad. Si echa un vistazo a los conjuntos de reglas de PMD predefinidos, incluso encontrará un conjunto de "Reglas controvertidas" que son específicamente las que tienden a generar debates acalorados. Algunos los aman; algunos los odian. Por lo tanto, la primera moraleja aquí sería utilizar las convenciones establecidas como directrices y agregar / eliminar como mejor le parezca.

Nunca he oído hablar de CCD en Java Land, así que no esperaría encontrar una traducción directa. Si le importa el código saludable (¿limpio?), Debe usar una herramienta como Sonar o todas las herramientas que compila en una interfaz conveniente. Sonar hace mucho más que solo el análisis estático. Hay una instancia de demostración de Sonar donde puede obtener una idea de sus características, así como retroceder con horror en las métricas de algunas bibliotecas de código abierto. Entonces, la segunda moraleja sería: "Usa Sonar porque es increíble".