día G,Malos olores al revisar el código afecta el enfoque?
Estaba pensando en un comentario de Kristopher Johnson sobre mi respuesta a esta question respecto a la calidad de desarrollo de software.
me gustaría publicado una lista de las métricas de calidad de software que podría pensar en la parte superior de la cabeza que incluye:
- McCabe ciclométrico Complejidad - básicamente una medida del número de trayectorias lineales a través de código.
- Niveles de sangría: una medida de complejidad cuando se observan sentencias de decisión anidadas.
- Distancia desde la declaración hasta el primer uso: cuántas declaraciones existen entre el lugar donde se declara una variable y dónde se usa por primera vez.
- Porcentaje de comentarios: cuántas líneas de código son comentarios en comparación con el código fuente.
- Cobertura de porcentaje de pruebas: como porcentaje de las líneas de código, cuántas se ejercen en su conjunto de pruebas.
- Cobertura de prueba de ruta: cuántos caminos de ejecución ejercen sus pruebas.
- Cobertura unitaria: la cantidad de unidades individuales, clases, paquetes, etc., que se ejercen mediante las pruebas unitarias.
comentario de Kris era:
Sólo las métricas de prueba de cobertura figuran en esta lista podrían considerarse una medida de "calidad". Las otras son mediciones de complejidad y legibilidad, que realmente no tienen nada que ver con la calidad.
Aparte del hecho de que no estoy de acuerdo con esta declaración en absoluto, me hizo pensar.
Cuando tengo que revisar el código que apenas tiene pruebas asociadas, ya sea de unidad, sistema o integración, tiendo a acercarme mucho más al código que si veo un buen conjunto de pruebas que han pasado con éxito.
Lo mismo cuando se realizan auditorías de seguridad en el código. Si veo variables no utilizadas, grandes funciones, mezclas extrañas de configuraciones, por servidor, por directorio, etc. que se utilizan en los módulos de Apache, también me predisponen a acercarme al código con mucha cautela.
¿Alguien más usa este enfoque inicial de "intuición" y afecta el resultado?
BTW No estoy de acuerdo con el comentario de Kris porque todas las demás métricas son definitivamente medidas válidas que ayudarán a resaltar el código mal diseñado y mal ejecutado. Como dice Damian Conway:
Siempre codifica como si el tipo que termina manteniendo tu código será un psicópata violento que sabe dónde vives.
Pero seguramente la "sensación visceral" solo se establece después de un largo período de amarga experiencia y, por lo tanto, no podría estar en el dominio del "principiante". –
Es como es. – aku
Lo siento aku! Me postro frente a ti y me disculpo por haber malinterpretado tu comentario. ¡Veo que realmente estamos de acuerdo! (-: –