Pour vraiment comprendre une base de code, vous devrez savoir à quel point il est lâche ou couplé, et à quel point il est apte à changer.
CodeMetrix en fait un tourbillon de calculer les "mesures de couplage":
En savoir plus à ce sujet sur Wikipedia.
Voici à quoi ressemble Archfit, en termes de mesures.

Cela vous aidera également à obtenir un aperçu par directeur des lignes de code total dans le projet, pour pourcentage que le répertoire prend de toute la base de code du projet, des mesures agrégées (couplage afférent / efférent, etc.), et choisit également les répertoires qui contiennent la plupart de ces détails.
{
"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 totalement sans dépendance et est super léger. Il n'y a pas non plus d'appels distants ou de tout ce qui se passe, tout simplement une ancienne analyse de fichiers statiques.
Notez également que l'implémentation actuelle est entièrement axée sur TypeScript, mais qu'il ne devrait pas être impossible à étendre pour prendre en charge d'autres langues également. Soyez mon invité et venez avec une demande de traction si vous voulez un support linguistique plus large!
CodeMetrix suppose que vous avez installé un nœud, idéalement d'une version plus récente.
Pour construire et tester le code, vous aurez besoin de nœud 19 ou version ultérieure.
Vous pouvez télécharger le fichier compilé, dist/index.mjs et codemetrix.sh et suivre les instructions ci-dessous. C'est bien si vous n'êtes pas grand sur Git.
Mais l'option plus belle consiste à cloner ce dépôt et à utiliser le script install.sh .
Ce sera:
.codemetrixcodemetrix.sh et dist/index.mjs au nouveau répertoire.zshrc avec un alias ( codemetrix ) qui exécute le scriptN'hésitez pas à modifier le script d'installation ou à faire à votre façon si cela ne correspond pas à la façon dont vous souhaitez qu'il soit configuré.
Vous devrez vous procurer ou recharger votre IDE pour que les modifications soient activées.
Exécutez codemetrix dans un référentiel GIT. Il supposera que le code source est dans le répertoire src .
Pour lui fournir un autre répertoire, exécutez codemetrix YOUR_DIRECTORY .
Il y a une contribution dédiée.MD, mais généralement je suis heureux de prendre des suggestions et des propositions pour de nouvelles fonctionnalités!