He estado experimentando con el Metrics plugin for Eclipse from StateOfFlow y me gusta la idea de analizar la calidad de mi código.Por supuesto, no todas las métricas son demasiado claras o útiles, pero de la amplia gama de métricas que proporciona el complemento (actualmente 14, según mi recuento), tiendo a tomarlas en serio:
Métrica del método: Complejidad ciclomática | Número de declaraciones | Número de locales en el alcance | Número de niveles
Métricas de clase: Número de campos | métodos ponderados por clase
Para reducir esta lista aún más, realmente creo en Ciclomática Complejidad medida de McCabe y me encuentro con el número de declaraciones también una indicación bastante útil de demasiado trabajo que se realiza en un solo lugar.
Del resto de las métricas proporcionadas por el complemento, encuentro las de La falta de cohesión en los métodos grupo es bastante difícil de entender. Hoy, comencé con un pequeño experimento propio y después de un par de horas de codificación, inicié el soporte de Metrics para el proyecto. 6/7 los problemas encontrados se relacionaron con la cohesión, uno particularmente sorprendente: La falta de cohesión en los métodos (Correlación total) es del 209%.
Me resulta difícil hacer nada al respecto: Chidamber y Kemerer | Henderson-Sellers | Correlación total | Irrelación de campo por pares. Estoy muy tentado de aumentar los máximos permitidos para estas métricas, para que dejen de aparecer como advertencias.
Creo que tener métricas de código calculadas sobre la marcha proporciona una guía útil para escribir un mejor código. Me complace que haya hecho esta pregunta, ya que me gustaría leer más acerca de cómo los demás están usando métricas para mejorar la calidad del código.
Por cierto, agradecería cualquier recomendación de otros plugins (Eclipse) con los que pueda tener experiencia. El de StateOfFlow proporciona una buena forma de exportar la información de las métricas en forma de páginas HTML con gráficos y tablas, y también puede exportar métricas a archivos CSV que luego puede ingresar a cualquier otra utilidad que pueda estar usando. Estoy disfrutando el complemento hasta el momento :)
Aquí hay un buen resumen: http://www.ibm.com/developerworks/java/library/j-ap01117/index.html # N10228 El uso de metrics.sourceforge.org (no eclipse-metrics.sourceforge.org). Ambos complementos parecen ser complementarios entre sí, pero no son lo mismo AFAIK. – user77115