CC, Credit Card? Nope, It’s Clean Code
I’m going to tell you, why you need to make your code as clean as possible.
Section I: Clean Code
Apa yang kalian ketahui tentang apa itu clean code? Atau apa yang ada di benak kalian ketika pertama kali mendengar istilah clean code? Apakah format kode yang sesuai aturan? Apakah kode yang bebas dari bug? Atau apakah kode yang logicnya terpisah-pisah?
Tenang, agar kebingungan kalian tidak semakin menjadi-jadi, ini saya akan coba bagikan terkait apa itu clean code dan kenapa penting bagi kalian untuk menerapkan clean code.
Pada dasarnya clean code adalah sebuah code yang mudah dipahami baik oleh diri sendiri ketika nanti sudah selesai development atau oleh tim yang bekerja bersama pada proyek tersebut. Lalu, kenapa clean code ini penting? Clean code penting untuk diterapkan karena dengan membuat code yang mudah dipahami, anggota lain didalam tim dapat dengan mudah untuk mengembangkan, memperbaiki maupun mengganti sekiranya terdapat hal yang baru.
Mungkin beberapa dari kalian masih bingung, lalu apa gunanya itu semua? Tujuan akhirnya adalah hal ini dapat memperlancar dan mempermudah kerja kita semua sebagai developer dalam mengembangkan suatu produk. Kami dapat dengan mudah memahami code yang ada tanpa harus bertanya pada creatornya, sehingga meminimalkan jumlah waktu yang terbuang.
Selain itu, seperti yang kita tahu, waktu adalah kunci dari segalanya. Didalam dunia software yang sangat cepat sekali berkembangnya ini. Akan terasa sangat sia-sia apabila waktu kita dihabiskan hanya untuk memahami code yang ditulis dengan buruk, sehingga memaksa mereka yang melakukan maintenance perlu menggantinya dengan yang lebih baik.
Aturan-aturan yang terdapat dalam penerapan clean code secara umum terdapat 4, yakni
- Ikuti standar penulisan (convention) yang ada. Beberapa bahasa pemrograman sudah memberikan best practice dalam penulisannya. Usahakan kita mengikuti convention yang ada.
- Pastikan code yang ditulis sesederhana mungkin. Tidak perlu terlalu bertele tele. Apabila ada logic yang sederhana, maka gunakan saja logic tersebut. Selain itu, jangan buat code terlalu terkonsentrasi pada satu bagian, pisah-pisah menjadi bagian yang lebih kecil agar lebih mudah dalam proses maintenancenya.
- Apabila kita menemukan legacy code yang cukup buruk, pastikan kita kerjakan dan selesaikan bagian kita terlebih dahulu dengan best practice yang ada. Baru kemudian bersihkan legacy code tersebut agar kedepannya dapat lebih mudah di maintain.
- Apabila paham terkait metode refactoring, maka usahakan terapkan refactoring tersebut. Karena dengan melakukan refactoring dapat membuat code kita jadi lebih modular. Hal ini berkaitan dengan poin nomor 2 di atas.
Mungkin kalian berpikir lagi, apakah clean code hanya sebatas itu? Sebenarnya tidak hanya itu, clean code terdapat banyak aturan aturan lain, seperti naming, function, dsb
source: https://gist.github.com/wojteklu/73c6914cc446146b8b533c0988cf8d29
Section II: Implementation in Team
Salah satu implementasi clean code dalam proyek yang sedang saya jalani adalah code smells dan code duplications. Code smells adalah bagian-bagian code yang dapat dikatakan ‘kotor’ entah karena penulisan code tidak mengikuti best practice yang ada, terlalu banyak comment yang tidak sesuai dan maupun kurang tepat dalam implementasi lainnya, Sedangkan code duplications adalah banyaknya repetisi dalam code tersebut. Code duplications dapat ditangani dengan memaksimalkan penulisan code yang sederhana maupun pemaksimalan dalam refactoring.
Berikut ini adalah website untuk melacak dan memeriksa tingkatan code smells dan code duplications pada suatu project yang ada
Pada contoh di atas dapat dilihat bahwa pada proyek yang sedang saya jalani terdapat 3 code smells yang terdeteksi, apabila ditelusuri lebih lanjut, hal ini disebabkan karena penggunaan import file yang terlalu berlebih sehingga terdapat function yang tidak digunakan. Selain itu untuk sisi duplications, sama sekali tidak terdeteksi terkait adanya code duplications. Itu artinya tim kami berhasil memaksimalkan optimasi code baik dalam bentuk penulisan code yang sederhana maupun dalam hal refactoringnya.
Kemudian saya akan berikan contoh code yang saya implementasi pada project yang sedang saya jalani
Pada code yang saya lampirkan di atas merupakan salah satu file pada komponen service dari project yang sedang saya jalani. Mungkin kalian bertanya, apakah file di atas memenuhi criteria clean code?
Jawabannya adalah iya. Kenapa demikian? Indikator yang paling mudah dilihat adalah variable naming. Variable naming yang jelas dan representatif merupakan salah satu indikasi bahwa code yang dibangun sudah cukup clean. Selain itu, terdapat pemisahan functionality didalamnya. Sehingga satu function/method tidak menjalankan beragam tugas yang berbeda, yang pada akhirnya terlihat sangat gendut.
Dapat dilihat bahwa antar method dengan fungsi yang sudah tergambar pada method namenya menjalankan tugas sesuai dengan tugas dan kebutuhannya. Method-method tersebut digunakan pada folder controller dan method tersebut bergantung pada method yang terdapat pada folder repository.
Demikian sharing terkait code clean dari saya. Mohon maaf apabila terdapat kesalahan maupun kekurangan. Segala masukan dan saran sangat diharapkan. Terima kasih