Latihan 1 dari materi Managing Technical Debt di Clean Code — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Lengkapi assessDebt(codebaseMetrics) di editor. Bagian yang menentukan priority, objek metrics dan console.log(JSON.stringify(result)) di bawahnya sudah ada dan tetap.
- Di bagian
// TODO, cek tiap ukuran dengan if. Yang melewati ambang menambah poinnya ke debtScore dan menambah sarannya ke recommendations dengan push, urut seperti ini:
duplicateLines > 20: tambah 25, saran 'Kurangi duplikasi kode'
cyclomaticComplexity > 10: tambah 20, saran 'Sederhanakan fungsi kompleks'
testCoverage < 60: tambah 30, saran 'Tingkatkan test coverage'
outdatedDependencies > 5: tambah 25, saran 'Perbarui dependensi yang outdated'
- Ambangnya ketat: tepat 20, 10, 60 atau 5 belum kena.
- Skornya harus dihitung dari kriteria (misalnya
debtScore += 25), bukan ditulis langsung.
Output untuk metrics di editor harus:
{"debtScore":100,"priority":"critical","recommendations":["Kurangi duplikasi kode","Sederhanakan fungsi kompleks","Tingkatkan test coverage","Perbarui dependensi yang outdated"]}
assessDebt juga diuji sendiri: { duplicateLines: 5, cyclomaticComplexity: 3, testCoverage: 50, outdatedDependencies: 1 } harus skor 30, medium, 1 saran; { duplicateLines: 20, cyclomaticComplexity: 10, testCoverage: 60, outdatedDependencies: 5 } harus skor 0, low.