Untuk benar -benar memahami basis kode, Anda perlu tahu seberapa longgar, atau digabungkan, dan seberapa tepat untuk perubahan itu.
Codemetrix menjadikannya jiffy untuk menghitung "metrik kopling":
Baca lebih lanjut tentang ini di Wikipedia.
Beginilah tampilan Pusat, dalam hal metrik.

Ini juga akan membantu Anda mendapatkan pengabaian per barisan kode dalam proyek, persen yang diambil direktori dari semua basis kode proyek, metrik agregat (kopling aferen/eferen dll.), Dan juga memilih direktori yang berisi sebagian besar rincian ini.
{
"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 benar-benar bebas ketergantungan dan sangat ringan. Juga tidak ada panggilan jarak jauh atau apa pun yang terjadi, hanya analisis file statis lama.
Perhatikan juga bahwa implementasi saat ini difokuskan sepenuhnya pada TypeScript, tetapi seharusnya tidak mustahil untuk mendukung bahasa lain juga. Jadilah tamu saya dan datang dengan permintaan tarik jika Anda ingin dukungan bahasa yang lebih luas!
Codemetrix mengasumsikan Anda memiliki simpul yang diinstal, idealnya versi yang lebih baru.
Untuk membangun dan menguji kode, Anda akan memerlukan simpul 19 atau lebih.
Anda dapat mengunduh file yang dikompilasi, dist/index.mjs , dan codemetrix.sh dan mengikuti instruksi di bawah ini. Ini bagus jika Anda tidak besar di git.
Tetapi opsi yang lebih bagus adalah mengkloning repo ini dan menggunakan skrip install.sh .
Itu akan:
.codemetrixcodemetrix.sh dan dist/index.mjs ke direktori baru.zshrc Anda dengan alias ( codemetrix ) yang menjalankan skripJangan ragu untuk memodifikasi skrip instalasi atau melakukannya dengan cara Anda jika ini tidak cocok dengan cara Anda ingin diatur.
Anda perlu mencari atau memuat ulang IDE Anda agar perubahan diaktifkan.
Jalankan codemetrix di repositori git. Ini akan menganggap kode sumber ada di direktori src .
Untuk memasoknya dengan direktori lain, jalankan codemetrix YOUR_DIRECTORY .
Ada kontribusi khusus yang berdedikasi.md, tetapi umumnya saya senang menerima saran dan proposal untuk fitur baru!