Hay muchas situaciones en mi trabajo donde uso métricas de código:
Mientras escribe código
El uso más grande y quizás más importante en mi trabajo diario es Checkstyle , una herramienta para desarrolladores de Java que verifica continuamente las métricas (entre otras cosas) de mi código contra un conjunto de reglas que hemos definido y marca lugares donde mi código no cumplir con esas reglas. A medida que desarrollo el código, me dice en tiempo real si mis métodos se vuelven demasiado largos, complejos o acoplados, lo que me permite dar un paso atrás y pensar en refactorizarlo a algo mejor.
Los desarrolladores son completamente libres de romper todas las reglas ya que nunca se aplicarán a todas las situaciones. Las "reglas" están ahí para estimular el pensamiento y decir "Oye, ¿es esta la mejor manera de hacer esto?"
Durante el control de calidad / revisiones de código
Lo primero que hago generalmente cuando realizo una revisión de código es verificar la cobertura de código del código que estoy revisando junto con una herramienta de cobertura de código que resalta qué líneas de código se han cubierto. Esto me da una idea general de cuán exhaustivo es el código de prueba. Realmente no me importa si la cobertura es del 20% o 100%, siempre que el código importante esté bien probado. Por lo tanto, el porcentaje cubierto no tiene sentido, pero el 0% seguro se destaca como un pulgar dolorido como algo que quiero mirar con cuidado.
También verifico qué métricas acordadas por el equipo se han "roto", si las hay, para ver si estoy de acuerdo con el desarrollador en que estaba bien o si puedo sugerir formas de mejorarlo. Tener estas métricas de desarrollo acordadas en nuestro equipo para escribir código nuevo ha hecho grandes avances para mejorar nuestro código. Escribimos mucho menos métodos monolíticos y ahora somos mucho mejores en el principio de responsabilidad única .
Mejoras de tendencia en el código heredado
Tenemos muchos códigos heredados que nos gustaría mejorar. Las métricas en cualquier momento son bastante inútiles, pero lo importante para nosotros es que con el tiempo la cobertura del código aumenta y cosas como la complejidad y el acoplamiento disminuyen. Por lo tanto, nuestras métricas están conectadas a nuestro servidor de Integración Continua, lo que nos permite mirar con el tiempo para asegurarnos de que estamos en el camino correcto.
Familiarizarse con una nueva base de código
La única vez que uso líneas de métrica de código fuente es cuando busco una base de código con la que no estoy familiarizado. Me permite medir rápidamente el tamaño aproximado del proyecto en comparación con otros con los que he trabajado. Usando otras métricas también puedo obtener una idea aproximada de la calidad del proyecto.
Las cosas clave son usar métricas como puntos de partida para tendencias, discusiones o formas de avanzar y no manejarlas religiosamente para obtener cifras exactas. Pero sí creo firmemente que pueden ayudarlo a mejorar el código correcto cuando se usa correctamente.