Clean Code, Good Code

Mari Bersih-Bersih Kodingan Kita

Hidayatul Fikri
Akhirnya
3 min readApr 15, 2020

--

Photo by Moritz Kindler on Unsplash

Clean code? Code-nya harus bersih? Pertama kali mendengar tentang clean code, langsung membuat saya memikirkan konsep-konsep yang abstrak — yang setiap orang punya interpretasi sendiri terhadapnya — karena penggunaan kata sifat yang sangat subjektif: bersih (clean). Kata sifat selalu membawa kita pada perdebatan karena berbeda pandangan, terutama garis batas yang memisahkan antara kata itu dengan lawannya, dalam konteks ini kotor (dirty). Maka dari itu, sebagaimana tidak ada bela diri yang dapat dikatakan paling kuat, begitu pula implementasi clean code yang berbeda-beda untuk setiap programmer. Namun, terdapat standar-standar tertentu yang kemudian muncul dari praktek mereka yang memang mahir dalam programming, dan kemudian dapat dipelajari dan dicontoh juga agar code kita menjadi clean, setidaknya dalam standar yang dicontoh.

Apa Itu Clean Code?

Mungkin terdapat banyak sekali definisi dari istilah clean code menurut berbagai ahli dan setiap programmer di seluruh dunia. Robert C. Martin yang dikenal dengan panggilan Uncle Bob, salah satu bagian dari Agile Alliance yang menjadi pionir dari konsep agile software development (Singh, 2019)¹, menulis dalam bukunya yang diberikan judul Clean Code: A Handbook of Agile Software Craftsmanship (2009)², definisi-definisi dari clean code dari para programmer ternama dan berpengalaman.

Berikut adalah salah satu di antaranya, dikutip dari bagian awal penjelasan dari Ron Jeffries, penulis buku Extreme Programming Installed dan Extreme Programming Adventures in C#:

In recent years I begin, and nearly end, with Beck’s rules of simple code. In priority order, simple code:

1. Runs all the tests;

2. Contains no duplication;

3. Expresses all the design ideas that are in the system;

4. Minimizes the number of entities such as classes, methods, functions, and the like.

Clean code, secara sederhana dan dalam konteks pembahasan tulisan ini, berarti code yang ditulis menerapkan praktik test driven development (TDD) dengan baik, tidak ada potongan code yang berulang atau duplikasi, mudah dibaca, mudah dipahami, serta mudah untuk dimodifikasi bahkan oleh orang lain.

Menerapkan Clean Code

Dalam blog Product and Engineering Gojek, Gaurav Singh menulis tentang hal-hal apa saja yang dapat dipelajari untuk meningkatkan kualitas code yang kita tulis dalam hal clean code, disadur dari bukunya Robert C. Martin. Artikel berjudul The basics of writing Clean Code ini menjabarkan prinsip-pinsip umum yang dapat diikuti dan penjabarannya.

Berikut ini adalah serangkaian hal yang fundamental dalam penerapan clean code, yaitu³:

  1. hindari duplikasi dalam code, dikenal dengan Don’t Repeat Yourself (DRY);
  2. aplikasikan prinsip SOLID: single responsibility, satu class hanya mengerjakan satu hal, open/closed, class atau method harus dapat di-extend namun tidak dapat dimodifikasi, liskov substitution, objects dalam program harus dapat digantikan dengan instance dari subtipenya tanpa mengacaukan berjalannya program, interface segregation, clients tidak boleh dipaksa untuk bergantung pada interface yang mereka tidak gunakan, dan dependency inversion, modul tingkat tinggi tidak boleh bergantung pada modul tingkat rendah, keduanya harus bergantung pada abstractions (misalnya interface);
  3. ikuti design pattern jika cocok untuk digunakan dalam masalah yang sedang dicoba untuk dipecahkan;
  4. the Law of Demeter, agar mengimplementasikan less coupling dan high cohesion, dengan cara meminimalisir kontak dengan object lain yang tidak perlu; dan
  5. gunakan the three laws of test-driven development (TDD), red-green-refactor.

Bersih-Bersih

Selain prinsip-prinsip dasar di atas, masih banyak hal yang dapat kita jelajahi dengan cara terus menulis code, googling, atau sekalian baca bukunya Robert C. Martin. Masalah seperti penamaan variable, commenting, dan exception handling dapat menjadi perhatian agar code kita tetap bersih. Selamat bersih-bersih!

Daftar Literatur

[1] Singh, G. (2019, 17 Januari). The basics of writing clean code. Didapatkan dari https://blog.gojekengineering.com/the-basics-of-writing-clean-code-39ed770b626d

[2] Martin, R. C. (2009). Clean code: A handbook of agile software craftsmanship. Boston, MA: Pearson Education, Inc

[3] Singh, G. (2019, 17 Januari). The basics of writing clean code. Didapatkan dari https://blog.gojekengineering.com/the-basics-of-writing-clean-code-39ed770b626d

--

--