Чтобы по -настоящему понять базу кода, вам нужно знать, насколько свободно или связано, и насколько она подходит для изменения.
Codemetrix делает то, что он предназначен для расчета «метрик связи»:
Узнайте больше об этом в Википедии.
Вот как выглядит архиф, с точки зрения метрик.

Это также поможет вам получить пропуску общего числа общих строк кода в проекте, процент, который ведет каталог всех кодовых базой проекта, агрегированных метрик (афферентная/эфферентная связь и т. Д.), А также выбирает каталоги, которые содержат большинство из этих деталей.
{
"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 полностью не содержат зависимости и очень легкий. Также нет удаленных вызовов или чего -либо, просто просто старый статический анализ файлов.
Также обратите внимание, что текущая реализация полностью ориентирована на TypeScript, но нельзя продлить с поддержкой других языков. Будьте моим гостем и приходите с запросом на привлечение, если вы хотите более широкой языковой поддержки!
Codemetrix предполагает, что у вас установлен узлы, в идеале более новой версии.
Чтобы создать и проверить код, вам понадобится узел 19 или более поздней версии.
Вы можете скачать скомпилированный файл, dist/index.mjs и codemetrix.sh и следовать приведенным ниже инструкциям. Это хорошо, если вы не большой в GIT.
Но более приятный вариант - клонировать этот репо и использовать сценарий install.sh .
Это будет:
.codemetrixcodemetrix.sh и dist/index.mjs в новый каталог.zshrc с псевдонимом ( codemetrix ), который запускает скриптНе стесняйтесь изменить сценарий установки или сделать это своим путем, если это не соответствует тому, как вы хотите, чтобы он был настроен.
Вам нужно будет найти или перезагрузить IDE для активации изменений.
Запустите codemetrix в репозитории GIT. Он предполагает, что исходный код находится в каталоге src .
Чтобы предоставить его еще одним каталогом, запустите codemetrix YOUR_DIRECTORY .
Существует выделенный вклад. MD, но, как правило, я рад принимать предложения и предложения для новых функций!