Latihan 1: Code Smells Catalog — Clean Code

Latihan 1 dari materi Code Smells Catalog di Clean Code — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.

Implementasikan detectSmells(fnString) yang menerima string sumber sebuah fungsi JavaScript dan mengembalikan array nama code smell yang terdeteksi.

Smell yang perlu dideteksi (urutan harus persis seperti ini saat muncul):

  1. "long-parameter-list" — fungsi punya lebih dari 3 parameter. Hint: ekstrak isi kurung pertama setelah kata function, pecah dengan koma, lalu hitung yang tidak kosong.
  2. "magic-number" — fungsi mengandung literal angka selain 0 atau 1. Hint: pakai regex /\b\d+\b/g, lalu saring "0" dan "1".
  3. "long-function" — fungsi punya lebih dari 20 baris (pisah dengan \n).

Kembalikan array yang hanya berisi smell yang ditemukan, dalam urutan di atas.

Cetak (urut):

  1. JSON.stringify(detectSmells(fn1))fn1 punya 4 param dan magic number
  2. JSON.stringify(detectSmells(fn2))fn2 bersih
  3. JSON.stringify(detectSmells(fn3))fn3 panjang dan magic number

Hint