Latihan 1 dari materi Anti-patterns & Code Smells di Design Patterns — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Implementasikan detectSmells(fn) yang menerima string source code dan return array nama code smells yang ditemukan. Deteksi 3 smell:
"long-function": source memiliki lebih dari 20 baris (split by \n)"magic-number": source mengandung angka literal selain 0 atau 1 (cek regex \b(?!0\b|1\b)\d+\b)"deep-nesting": source mengandung 4 atau lebih kurung kurawal buka { berturut-turut sebelum ada } (cek dengan menghitung maksimum depth {)Return array smell names yang ditemukan, urutan bebas tapi harus sorted ascending.