Latihan 1 dari materi Single Responsibility di Clean Code — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Class UserManager di editor mengerjakan tiga hal sekaligus: memeriksa email, menyimpan user, dan memformat user untuk ditampilkan. Pecah jadi tiga class dengan satu tanggung jawab masing-masing:
class EmailValidator dengan method isValid(email): mengembalikan true kalau email mengandung @, selain itu false.
class UserRepository dengan method save(user): mengembalikan { id: 1, ...user } (pura-pura menyimpan).
Isi isValid, saved dan formatted dengan memanggil ketiga class baru itu untuk user yang sudah ada ({ name: 'Budi', email: '[email protected]' }), bukan UserManager. Format user hasil save, karena cuma dia yang punya id.
Tiga console.log di bawah tetap ada. Output-nya harus:
Tiap method di UserManager pindah ke class sendiri: memeriksa email, menyimpan, dan memformat. Isi method-nya sama persis, cuma rumahnya yang beda.
Bikin tiga class: EmailValidator dengan isValid, UserRepository dengan save, UserFormatter dengan format. Lalu panggil new EmailValidator().isValid(user.email), new UserRepository().save(user), dan format hasil save.
const isValid = new EmailValidator().isValid(user.email); const saved = new UserRepository().save(user); const formatted = new UserFormatter().format(saved);
</>{ }.css=>#idfn()
Versi baru
HyperSheets
bagian dari BelajarWeb.dev
0%
Membuka gerbang…
HyperSheets
Memperbarui Aplikasi
Versi baru tersedia. Halaman akan dimuat ulang otomatis...