2
1
0

Buenas, en versiones anteriores a la 6.7.X tenía incluido en en umbral de calidad la variable complejidad ciclomática por método, comprobando que no superase el valor 10 (tal y como recomienda Thomas McCabe).

Observo que en la 6.7.2 se me ofrece la variable Complejidad, pero en términos absolutos, no normalizados al menos por líneas de código del proyecto, por lo que no me parece un valor controlable a nivel de umbral de calidad.

Cierto es que aparece el concepto Mantenibilidad, pero creo que es compatible con medir también la Complejidad y la Cobertura. De hecho SonarQube los considera métricas independientes.

No me gustaría renunciar a dicha métrica, ¿cómo lo estáis haciendo vosotros?

Gracias,

    CommentAñada su comentario...

    1 respuesta

    1.  
      3
      2
      1

      Hola Manuel,

      Aunque se le ha quitado "peso" a esa métrica en versiones más nuevas en realidad la métrica se sigue calculando.

      El problema es que valores medios no tenían sentido. Podría tener una clase super compleja y una media de complejidad de 2. Pasas el umbral pero sin embargo sigues teniendo un código poco mantenible.

      Nosotros, en lugar de usar la media, usamos una regla: "Methods should not be too complex"

      https://rules.sonarsource.com/java/RSPEC-1541

      Esta regla te permite hilar más fino (y ya depende de ti si quieres hacerla bloqueante) porque te marcará exactamente los métodos que son más complejos y que necesitas refactorizar. Es mucho más útil que mirar solo el valor de la media o la complejidad total.

      ¡Saludos!

      1. Manuel Fernández Fontán

        Gracias Antonio, esa regla es muy interesante, pero no viene activa por defecto, y hasta ahora prefería mantener la configuración por defecto por motivos de coherencia en la medición con otros entornos que no controlo; al menos voy a replantear mi postura.

        En todo caso no es una métrica que se pueda controlar a nivel de umbral, aunque estaría intrínsecamente controlada si en el umbral se revisa que las evidencias críticas sean 0, por ejemplo.

        De todos modos creo que se podría volver a incluir la métrica complejidad/método; al fin y al cabo sería opcional y algunos la echamos de menos.

        Muchas gracias de nuevo.

      CommentAñada su comentario...