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:
EmailValidator — method isValid(email) mengembalikan true/false. Email valid = mengandung karakter @.UserRepository — method save(user) mengembalikan { id: 1, ...user } (simulasi penyimpanan).UserFormatter — method format(user) mengembalikan string "[id] nama (email)".Kemudian panggil ketiganya secara berurutan untuk user { name: "Budi", email: "[email protected]" } dan cetak: