Latihan 1 dari materi Refactoring Patterns di Clean Code — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Tiga fungsi di editor meniru refactoring yang dikerjakan editor kode. extractMethod(code, methodName) sudah jadi dan tetap: ia membungkus kode jadi function methodName() { ... }. Tiga pemanggilan dan console.log di bawahnya juga tetap.
renameVariable(code, oldName, newName): ganti semua kemunculan oldName sebagai kata utuh dengan newName, pakai code.replace(...) dengan regex yang punya batas kata \b dan flag g, misalnya new RegExp('\\b' + oldName + '\\b', 'g').
removeDeadCode(functions, usedFunctions): kembalikan cuma nama di functions yang ada di usedFunctions, pakai functions.filter(...), dengan urutan functions yang asli.
Output-nya harus tiga baris:
true
const currentDate = new Date();
["fetchUser","formatDate"]
Ketiganya juga diuji dengan input lain: extractMethod('const y = 3;', 'hitungTotal') harus mengandung function hitungTotal, renameVariable('let d = d + da;', 'd', 'hari') harus 'let hari = hari + da;' (kata da gak ikut berubah), dan removeDeadCode(['a', 'b', 'c'], ['c', 'a']) harus ['a', 'c'].