Clean Code : Design Rules — Part 2

Muhammad Zaky
ITMI Engineering
Published in
3 min readFeb 28, 2020

Sebelumnya kita telah membahas mengenai general Rules dalam di Clean Code di tulisan sebelumnya Apa itu clean code. Dan di bagian ini kita akan membahas secara singkat tentang Design Rules dalam clean code berdasarkan buku clean code tulisan Robert C Martin.

Design Rules

Design Rules dalam hal ini adalah aturan desain system secara umum, seperti penggunaan variable yang configurable, penggunaan class dan hal — hal lainnya bersifat umum.

Ada 6 design rules dalam clean code menurut Robert :

1. Keep configurable data at high levels.

Jika kamu memiliki constant yang abstract dan banyak di gunakan dalam system, maka lebih baik di define pada level tertinggi dari system dan di buat configurable.

Pada beberapa kasus konfigurasi ini di define dalam .env sebagai nilai default, hal ini membuat konfigurasi ini lebih mudah di ubah.

2. Prefer polymorphism to if/else or switch/case.

Menurut Robert, penggunaan if/else dan switch/case membuat sebuah function atau method menjadi besar dan panjang. karena menurutnya method harus sekecil mungkin. mungkin statement ini tidak berlaku untuk semua kondisi, di beberapa kondisi mungkin menggunakan if/else/switch adalah pilihan yang tepat. Karena alasan itu, dalam clean code daripada menggunakan terlalu banyak kondisi, lebih baik menggunakan polymorphism.

Polymorphism adalah salah satu prinsip dalam OOP(Object Oriented Programming), polymorphism adalah suatu object dapat memiliki berbagai bentuk, sebagai object dari class sendiri atau object dari superclassnya.

Dilain waktu saya akan buat tulisan khusus ini refactoring if/else switch/case ke dalam bentuk polymorphism, sebelumnya kamu bisa baca — baca mengenai polymorphism disini.

3. Prevent over-configurability.

Jika di rules pertama di rekomendasikan untuk menggunakan configurable untuk variable yang abstract, di rules di rekomendasikan untuk menghindarinya. Dengan kata lain, tidak semua harus di configurability, untuk beberapa keperluan sebuah value harus di define secara langsung dalam method.

4. Use dependency injection.

Dependency Injection(DI) adalah sebuah design pattern, DI mengusung konsep highly modular sehingga kita tidak perlu khawatir conflict ketika mengubah suatu class/method. karena ketergantungan antar class/method tidaklah tinggi. Menurut saya sederhanya dependency injection adalah proses memasukkan sebuah class ke dalam class lainnya.

Karena tulisan kali ini fokus ke clean code jadi saya tidak menjelaskan terlalu panjang tentang design pattern ini, nanti di lain kesempatan saya akan buat tulisan khusus tentang design pattern dan cara implementasinya.

5. Follow Law of Demeter. A class should know only its direct dependencies.

Law of Demeter adalah sebuah design guideline yang di populerkan oleh Ian Holland pada 1987. Prinsipnya principle of least knowledge, arti sederhananya sebuah method harus mengetahui/memiliki informasi sesedikit mungkin tentang object yang di gunakan di dalamnya. misalnya code sebagai berikut :

public class Project{   public void doSomething()   {      Employee e = new Employee();      .....   }}

Maka class Project memiliki sesedikit mungkin informasi tentang object Empolyee diantaranya informasi structur class Employee.

Nah, kira — kira begitulah summary mengenai topic Design Rules dalam buku Clean Code karangan om Robert C Martin, tulisan ini tidak merepresentasikan secara keseluran tentang topic ini dalam buku tersebut, tetapi setidaknya inilah beberapa yang bisa saya catat dari membaca buku ini, kalau mau tau lebih detail baca langsung bukunya.

Next kita akan bahas Names Rules dalam clean code, semoga besok saya masih konsisten menulis. semoga tulisan ini bermanfaat.

--

--