Latihan 1 dari materi SOLID Principles di Clean Code — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Kode di editor menunjukkan dua prinsip SOLID. Bagian SRP sudah jadi dan tetap: UserService dengan getUser(id) (mengembalikan { id, name: 'Pengguna ' + id }) dan updateUser(id, data), EmailService dengan sendEmail(to, subject) (mengembalikan `Email terkirim ke ${to}: ${subject}`), dan UserServicegak boleh punya sendEmail. calculateArea(shape) dan empat console.log di bawah juga tetap.
Lengkapi area() di class Circle (bagian OCP): kembalikan luas lingkaran dari this.radius dengan Math.PI, yaitu Math.PI * this.radius * this.radius atau Math.PI * this.radius ** 2. Jangan dibulatkan.
Output-nya harus empat baris:
{"id":1,"name":"Pengguna 1"}
Email terkirim ke [email protected]: Selamat datang
153.93804002589985
true
Hint
calculateArea gak tahu bentuk apa yang ia terima; ia cuma memanggil shape.area(). Jadi tiap bentuk menghitung luasnya sendiri, dan Circle tinggal mengembalikan luas lingkaran dari jari-jarinya.
Luas lingkaran adalah pi kali jari-jari kuadrat. Di dalam area(), jari-jarinya ada di this.radius dan pi di Math.PI.