Latihan 1: Single Responsibility — Clean Code

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 bawah melakukan tiga hal sekaligus: validasi email, menyimpan user, dan memformat data user untuk ditampilkan.

Pecah class ini mengikuti Single Responsibility Principle menjadi 3 class terpisah:

  1. EmailValidator — method isValid(email) mengembalikan true/false. Email valid = mengandung karakter @.
  2. UserRepository — method save(user) mengembalikan { id: 1, ...user } (simulasi penyimpanan).
  3. UserFormatter — method format(user) mengembalikan string "[id] nama (email)".

Kemudian panggil ketiganya secara berurutan untuk user { name: "Budi", email: "[email protected]" } dan cetak:

  1. Hasil validasi email (boolean)
  2. JSON dari user yang disimpan
  3. String hasil format

Hint