Latihan 1: Documentation as Code — Clean Code

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

Lengkapi dua fungsi di editor. Kode test di bawahnya (teks JSDoc, validAdr, invalidAdr dan delapan console.log) sudah ada dan tetap.

  1. parseJsDoc(comment): kembalikan { params, returns }.
    • params: satu { name, type, description } per @param {tipe} nama keterangan, urut seperti di komentar. Contoh pola: /@param\s*\{(\w+)\}\s*(\w+)([^@]*)/g dengan exec di dalam while.
    • returns: { type } dari @returns {tipe}, atau null kalau komentar gak punya @returns.
  2. validateAdr(adr): kembalikan { valid, errors }.
    • Tambahkan satu error ke errors untuk tiap field wajib yang kosong: title, status, context, decision, consequences.
    • Tambahkan satu error kalau status ada tapi bukan 'proposed', 'accepted', 'deprecated' atau 'superseded'.
    • valid bernilai errors.length === 0.

Output-nya harus delapan baris:

2
name
string
boolean
true
0
false
true

Keduanya juga diuji dengan input lain: parseJsDoc('/** @param {number} umur usia @returns {void} */').params[0].type harus number, parseJsDoc('/** @param {number} umur */').returns harus null, dan ADR lengkap dengan status 'deprecated' harus valid: true.

Hint