Para entender verdadeiramente uma base de código, você precisará saber como é solto ou acoplado e quão apto para a mudança é.
Codemetrix torna um instante calcular as "métricas de acoplamento":
Leia mais sobre isso na Wikipedia.
Veja como o Archfit se parece, em termos de métricas.

Também ajudará você a obter uma negligência por diretório do total de linhas de código no projeto, porcentagem que o diretório recebe de todas as métricas agregadas de código de código do projeto (acoplamento aferente/eferente etc.) e também escolhe os diretórios que contêm a maioria desses detalhes.
{
"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 "
}O codemetrix é totalmente livre de dependência e é super leve. Também não há chamadas remotas ou qualquer coisa acontecendo, apenas uma análise de arquivo estático antigo.
Observe também que a implementação atual é focada inteiramente no TypeScript, mas também não deve ser impossível estender para apoiar outros idiomas. Seja meu convidado e venha com uma solicitação de tração se quiser suporte mais amplo ao idioma!
Codemetrix assume que você tem um nó instalado, idealmente de uma versão mais recente.
Para construir e testar o código, você precisará do nó 19 ou posterior.
Você pode baixar o arquivo compilado, dist/index.mjs e codemetrix.sh e seguir as instruções abaixo. Isso é bom se você não é grande no Git.
Mas a opção mais agradável é clonar este repositório e usar o script install.sh .
Ele vai:
.codemetrixcodemetrix.sh e dist/index.mjs para o novo diretório.zshrc com um alias ( codemetrix ) que executa o scriptSinta -se à vontade para modificar o script de instalação ou fazer do seu jeito se isso não corresponder como você gostaria que ele seja configurado.
Você precisará obter ou recarregar seu IDE para que as alterações sejam ativadas.
Execute codemetrix em um repositório Git. Ele assumirá que o código -fonte está no diretório src .
Para fornecer outro diretório, execute codemetrix YOUR_DIRECTORY .
Há um contribuindo dedicado.md, mas geralmente estou feliz em receber sugestões e propostas para novos recursos!