Para comprender realmente una base de código, necesitará saber qué tan flojo o junto con el cambio es el cambio.
CodeMetrix hace que sea un sencillo calcular las "métricas de acoplamiento":
Lea más sobre esto en Wikipedia.
Así es como se ve Archfit, en términos de métricas.

También lo ayudará a obtener un vistazo por directorio de líneas totales de código en el proyecto, porcentaje que toma el directorio de toda la base del código del proyecto, métricas agregadas (acoplamiento aferente/eferente, etc.), y también elige los directorios que contienen la mayoría de estos detalles.
{
"results" : [
{
"directoryPath" : " /src/application/services " ,
"afferent" : 2 ,
"efferent" : 21 ,
"abstractions" : 0 ,
"concretions" : 1 ,
"loc" : 260 ,
"percent" : 8.51
},
{
"directoryPath" : " /src/application/utils " ,
"afferent" : 3 ,
"efferent" : 2 ,
"abstractions" : 0 ,
"concretions" : 2 ,
"loc" : 52 ,
"percent" : 1.7
},
{
"directoryPath" : " /src/domain/fitness-functions " ,
"afferent" : 14 ,
"efferent" : 79 ,
"abstractions" : 7 ,
"concretions" : 23 ,
"loc" : 1181 ,
"percent" : 38.63
},
{
"directoryPath" : " /src/domain/services " ,
"afferent" : 2 ,
"efferent" : 28 ,
"abstractions" : 0 ,
"concretions" : 2 ,
"loc" : 275 ,
"percent" : 9
},
{
"directoryPath" : " /src/errors " ,
"afferent" : 9 ,
"efferent" : 0 ,
"abstractions" : 0 ,
"concretions" : 0 ,
"loc" : 109 ,
"percent" : 3.57
},
{
"directoryPath" : " /src " ,
"afferent" : 0 ,
"efferent" : 5 ,
"abstractions" : 0 ,
"concretions" : 2 ,
"loc" : 86 ,
"percent" : 2.81
},
{
"directoryPath" : " /src/infrastructure/aws " ,
"afferent" : 20 ,
"efferent" : 28 ,
"abstractions" : 0 ,
"concretions" : 15 ,
"loc" : 684 ,
"percent" : 22.37
},
{
"directoryPath" : " /src/infrastructure/utils/io " ,
"afferent" : 3 ,
"efferent" : 7 ,
"abstractions" : 0 ,
"concretions" : 3 ,
"loc" : 40 ,
"percent" : 1.31
},
{
"directoryPath" : " /src/infrastructure/utils/math " ,
"afferent" : 12 ,
"efferent" : 0 ,
"abstractions" : 0 ,
"concretions" : 3 ,
"loc" : 27 ,
"percent" : 0.88
},
{
"directoryPath" : " /src/infrastructure/utils/string " ,
"afferent" : 22 ,
"efferent" : 0 ,
"abstractions" : 0 ,
"concretions" : 2 ,
"loc" : 25 ,
"percent" : 0.82
},
{
"directoryPath" : " /src/infrastructure/utils/time " ,
"afferent" : 10 ,
"efferent" : 2 ,
"abstractions" : 0 ,
"concretions" : 9 ,
"loc" : 83 ,
"percent" : 2.72
},
{
"directoryPath" : " /src/interfaces " ,
"afferent" : 56 ,
"efferent" : 16 ,
"abstractions" : 12 ,
"concretions" : 0 ,
"loc" : 235 ,
"percent" : 7.69
}
],
"totalLinesOfCode" : 3057 ,
"loc" : " /src/domain/fitness-functions " ,
"afferent" : " /src/interfaces " ,
"efferent" : " /src/domain/fitness-functions " ,
"abstractions" : " /src/interfaces " ,
"concretions" : " /src/domain/fitness-functions "
}CodeMetrix está totalmente libre de dependencias y es súper ligero. Tampoco hay llamadas remotas ni nada, solo un análisis de archivos estáticos antiguos.
Tenga en cuenta también que la implementación actual se centra por completo en TypeScript, pero no debería ser imposible extender también para apoyar otros idiomas. ¡Sea mi invitado y venga con una solicitud de extracción si desea un soporte de idioma más amplio!
Codemetrix asume que tiene el nodo instalado, idealmente de una versión más nueva.
Para construir y probar el código, necesitará el nodo 19 o posterior.
Puede descargar el archivo compilado, dist/index.mjs y codemetrix.sh y seguir las instrucciones a continuación. Esto es bueno si no eres grande en Git.
Pero la mejor opción es clonar este repositorio y usar el script install.sh .
Va a:
.codemetrixcodemetrix.sh y dist/index.mjs al nuevo directorio.zshrc con un alias ( codemetrix ) que ejecuta el scriptSiéntase libre de modificar el script de instalación o hacerlo a su manera si esto no coincide con cómo le gustaría que se configure.
Deberá obtener o recargar su IDE para que se activen los cambios.
Ejecute codemetrix en un repositorio Git. Asumirá que el código fuente está en el directorio src .
Para suministrarlo con otro directorio, ejecute codemetrix YOUR_DIRECTORY .
Hay un contribuyente dedicado.