Clean Code dan Penerapan nya

Faraya Agatha
PsychoTeam
Published in
4 min readApr 1, 2019

Sebagai programmer kita tentu sudah banyak menulis code. Kita juga sering bekerja dalam sebuah tim. Apakah anggota tim kalian ada yang pernah mengeluh jika code kalian sulit dimengerti? Atau kalian pernah merasa code yang ditulis anggota tim kalian sulit untuk dimengerti? Jika iya, maka kemungkinan besar selama ini kalian menulis dirty code. Kita semua tau, bahkan dengan dirty code pun program masih dapat berjalan. Tetapi dalam programming, selain fungsionalitas, kualitas code juga harus dijaga.

Setiap programmer dapat membuat code, tapi tidak semua programmer bisa membuat code yang baik. Karena itu kita perlu mengetahui dan menerapkan clean code.

Seperti dalam buku Clean Code oleh Robert C. Martin:

Now, you are reading this for two reasons. First, you are a programmer. Second, you want to be a better programmer. Good. We need better programmers.

Karakteristik dari Clean Code:

  1. Elegan : Code harus enak dibaca. Membaca code harus bisa dapat dinikmati oleh pembaca.
  2. Fokus : Setiap fungsi, kelas, dan modul melakukan satu hal yang sepenuhnya terfokus dan tidak terganggu oleh detail di sekelilingnya.
  3. Simpel : Pembuat sudah menyediakan waktu untuk membuat code yang simpel dan terurut. Mereka telah memperhatikan detail code.
  4. Menjalankan seluruh test
  5. Tidak mengandung duplikasi
  6. Meminimalisasi jumlah entiti seperti kelas, metode, fungsi, dll

Cara Menulis Clean Code dan Penerapan nya:

Meaningful Names

Menggunakan nama yang jelas. Memilih nama yang baik dapat membantu orang lain mengerti keseluruhan program. Nama kelas, fungsi, dan variabel harus dapat menjawab pertanyaan-pertanyaan seperti kenapa itu ada, apa yang dilakukan, dan bagaimana menggunakannya.

potongan code dari class SessionManager pada Psychotip

Class Names : Object dan Class harus menggunakan kata benda (noun) atau noun phrase seperti Costumer, Shape, SessionManager, ClientHelper.

Method Names : Method harus menggunakan kata kerja (verb) atau verb phrase seperti checkPassword, deleteChat, postPayment. Accessors, mutators, dan predikat harus diberi nama sesuai value dan diberi prefiks get atau set.

Pick One Word per Concept : Pilihlah satu kata untuk suatu konsep dan pertahankan. Misal dalam satu basis code yang sama ada class bernama SessionManager dan DeviceController. Penggunaan kata manager dan controller akan membuat bingung pembaca karena keduanya memiliki makna yang serupa, maka sebaiknya menggunakan satu istilah yang sama yaitu manager saja atau controller saja.

Functions

Aturan pertama dalam membuat fungsi adalah harus kecil. Aturan kedua adalah fungsi harus lebih kecil dari itu. Hal ini mengimplikasikan bahwa blok di dalam if -else statements, atau while statements harus sepanjang satu baris. Baris tersebut seharusnya menjadi function call.

Functions Arguments : Sebuah fungsi tidak boleh memiliki lebih dari 3 argumen. Ketika suatu fungsi membutuhkan lebih dari 3 argumen, ada kemungkinan beberapa argumen tersebut harus dibungkus ke dalam kelas mereka sendiri.

potongan code dari activity class LoginPage pada PsychoTip

Manfaat Penerapan Clean Code Pada Tim Kami

  1. Mempersingkat penggunaan waktu. Sebagai programmer yang bekerja dalam tim, tentu bukan hanya saya yang akan membuat code. Terkadang code saya akan dilanjutkan atau digunakan oleh anggota tim saya yang lain, begitu pula sebaliknya. Menerapkan clean code memudahkan atau mempersingkat waktu saya untuk mengerti code yang ditulis oleh anggota tim saya yang lain.
  2. Memudahkan programmer dalam melakukan perubahan. Dalam pembuatan aplikasi kami menerapkan prinsip agile, sehingga sering sekali tim kami melakukan banyak perubahan dalam struktur code aplikasi kami. Dengan menerapkan clean code, tim kami menjadi lebih mudah melakukan perubahan karena setiap kelas dan fungsi tertulis jelas penggunaannya.
  3. Memudahkan dalam melakukan debugging. Ketika kita menulis dirty code atau clean code, bug adalah sesuatu yang tidak bisa dihindari untuk terjadi. Sebagai tim, setiap anggota kami akan saling membantu jika salah satu code yang kami buat mengalami bug. Jika code yang saya tulis jelas, maka anggota tim saya kan lebih mudah mengerti code saya dan dapat segera membantu saya. Saya tidak perlu panjang lebar menjelaskan cara kerja code yang saya buat. Tapi jika code saya tidak, akan memakan waktu yang lama untuk saya dan tim saya menyelesaikan suatu bug. Maka dari itu, menerapkan clean code dapat berguna untuk memudahkan tim kami dalam menyelesaikan bug.
  4. Efisiensi dalam pemeliharaan code. Seiring berjalannya waktu, proyek kami akan berkembang menjadi lebih besar, akan ada lebih banyak fitur dan perubahan pada fitur-fitur yang sudah ada. Dengan menerapkan clean code, memudahkan saya dan tim saya dalam melihat kembali fungsi-fungsi yang sudah lama dibuat maupun melakukan perubahan pada fitur lama, karena code kami telah ditulis secara rapi, jelas, dan teratur.
  5. Meningkatkan kepercayaan diri. Jika saya menulis code yang jelas dan rapi, saya merasa lebih percaya diri untuk bertanya kepada anggota tim untuk membantu saya menyelesaikan bug, karena saya tau tidak perlu waktu lama bagi mereka untuk memahami apa yang sedang terjadi pada code saya. Begitu pula sebaliknya.

“Any fool can write code that a computer can understand. Good programmers write code that humans can understand.” — Martin Fowler

Referensi:

--

--