5 prinsip clean code untuk OOP yang dipakai engineer profesional di seluruh dunia.
1 class punya 1 alasan untuk berubah. Class User jangan urus database juga. Pisah jadi User dan UserRepository. Hasilnya: code modular, mudah di-test, mudah di-maintain.
Class harus terbuka untuk extension, tertutup untuk modification. Tambahkan fitur baru lewat extension (subclass), bukan ubah class yang sudah jalan. Hindari regression bug.
Child class harus bisa menggantikan parent class tanpa break logic. Kalau Bird parent punya method fly, jangan bikin Penguin subclass karena penguin tidak terbang. Pikirkan ulang hierarchy.
Interface kecil dan spesifik lebih baik dari interface besar. Class jangan dipaksa implement method yang tidak dipakai. Pisah interface besar jadi beberapa kecil sesuai use case.
Depend on abstraction, bukan concrete class. Class tinggi level jangan langsung pakai class rendah level. Pakai interface di tengah. Hasilnya: testable (bisa mock), flexible (bisa swap implementasi).