Mengenal Clean Code Lebih Dekat

Muhammad Ardivan
4 min readFeb 25, 2020

--

http://patorjk.com/software/taag/#p=display&f=Doh&t=CLEAN%20CODE

Tulisan ini dibuat sepenuhnya dalam rangka kegiatan mata kuliah PPL. Segala isi dari artikel ini tidak menjamin kelengkapan dan keutuhan sebagai pedoman untuk diimplementasikan dalam suatu proyek.

“Clean Code” sebagai salah satu aspek penting dalam software development tentu ada bukan tanpa sebab. Clean code pada pengembangan proyek khusunya perangkat lunak merupakan hal yang sebaiknya dilakukan oleh para developer. Clean code juga diterapkan pada Agile Methodology (berdasarkan buku Clean Code karangan Robert C. Martin). Sistem dapat berubah dengan cepat, maka pemanfaatan Clean code juga penting untuk menyeimbangi kecepatan development.

Kode yang memanfaatkan Clean code diperlukan dengan maksud untuk membuat kode rapi dan baik. Setiap potongan kode memiliki arti dan fungsi sesuai tugasnya masing-masing. Terlebih lagi ketika melakukan kolaborasi pekerjaan, akan sangat memudahkan apabila program yang dibuat mengimplementasikan Clean code di dalamnya sehingga programmer/developer lain dapat melanjutkan pekerjaan tersebut.

Adapun langkah-langkah untuk menerapkan Clean code (ini bukan hal yang pasti, tergantung konvensi dan keinginan).

Aturan umum

  • Mengikuti standar umum dalam bahasa pemrograman, contoh : Python (PEP 8)
  • KISS (Keep It Simple Stupid) , diusahakan untuk selalu seminimal mungkin dalam mengimplementasikan kode.
  • Cari akar permasalahan, jangan hanya bagian-bagian sekitar yang terkena dampak kode tersebut.

Aturan Desain Arsitektur Kode

  • Mencegah konfigurasi berlebih, seperti tidak memaksakan semua best practice diterapkan pada kode, meskipun kode tersebut memang sudah dipastikan kebenarannya.
  • Konsistensi perlu diterapkan dalam arsitektur.

Aturan penamaan

Tidak mungkin dalam suatu kode kita tidak membuat suatu variabel. Variabel adalah hal penting dalam membuat suatu kode yang nantinya akan menjadi sebuah satu keutuhan fitur. Pada penerapan clean code berikut adalah beberapa hal yang dapat diterapkan ketika akan memulai menulis sebuah kode.

  • Nama variabel bersifat deskriptif
  • Nama variable yang mudah dicari
  • Pemberian nama constant untuk magic number, seperti gravitasi.
  • Hindari variable encoding, seperti emoticon.
  • Konsisten dalam pemberian nama variable atau fungsi.

Aturan Fungsi

Sebuah fungsi pada kode sangat penting keberadaanya, ketika fungsi tersebut tidak dibuat secara baik, maka ketika akan dilakukan pembuatan implementasi, test, dan refactoring akan semakin sulit. Jika kita mengabaikan hal ini, maka tentu kita bisa saja terlewat oleh para developer lain. Berikut adalah beberapa cara untuk menerapkan clean code pada fungsi.

  • Fungsi hanya memiliki satu tujuan dan seminimal mungkin.
Fungsi memiliki satu tujuan dan dibuat seminimal mungkin
  • Nama dan isi fungsi harus sesuai dengan apa yang dilakukan.
  • Penamaan fungsi yang deskriptif dan mudah.

Penamaan fungsi yang deskriptif tentu akan sangat membantu ketika kita ingin melakukan perbaikan atau perubahan pada kode. Kode yang sulit dimengerti akan menjadi technical debt ketika nantinya codebase semakin besar dan rumit.

Fungsi deskriptif
  • Argument tidak terlalu banyak pada suatu fungsi.

Memberikan batasan untuk banyaknya parameter pada suatu fungsi adalah hal penting karena dapat mempermudah dalam testing. Parameter dengan 1 atau 2 argumen pada umumnya masih diperbolehkan, namun jika sudah berlebih, alangkah lebih baik jika parameter tersebut dibuat menjadi higher-level object dan dengan hal itu fungsi dapat direduksi agar tidak memiliki terlalu banyak parameter.

Argumen fungsi terlalu banyak lebih baik dipecah
  • Tidak ada side-effect pada kode.

Kode yang memiliki side effect adalah ketika hasil kode yang dikembalikan tidak sesuai dengan apa yang sebenarnya dibutukan. Hal itu dapat mempengaruhi keseluruhan kode yang ada, misal ketika ingin melakukan write pada suatu file, jika pada suatu fungsi diganti variabel-nya maka bisa saja write yang dilakukan mengalami masalah dan tidak sesuai ekspektasi. Untuk menghindari side effect kita perlu memastikan bahwa untuk setiap servis hanya ada satu untuk melakukan write pada file. Makin banyak fungsi yang terlibat, maka kemungkinan side effect akan semakin besar pula. Gambar di bawah ini adalah salah satu contoh side effect pada immutable variabel (string type). Jika kita apabila kita ingin mengeksekusi fungsi split_into_first_and_last_name() (bagian #Bad), maka tentu tahu kan apa yang akan terjadi?

Side effect pada kode perlu dihindari agar nantinya tidak menjadi technical debt
  • Penerapan exception untuk handling kode

Untuk penerapan handling kode, menggunakan exception karena apabila menggunakan conditional if-else mungkin bisa saja ada beberapa hal yang terlewat dan secara tidak kasat mata akan makin sulit untuk dilakukan debugging dan refactoring.

Conditional if-else diperlukan jika kita tahu batas handling dari kode yang kita buat, namun untuk masalah pada kode diatas serahkan pada try-except.

Aturan comments

  • Komentar pada kode harus deskriptif dengan penjelasan singkat.
  • Jika tidak perlu komentar, maka tidak perlu dituliskan.

Sekian tentang Clean Code, semoga bermanfaat.

Referensi:

Clean Code: A Handbook of Agile Software Craftsmanship (Robert C. Martin Series)

https://github.com/tvmaly/clean-code-python

--

--