Clean Code: Jagalah Kebersihan Kode
Pendahuluan
Clean code dapat dikatakan sebagai keadaan dari suatu kode program yang memenuhi sekumpulan kriteria tertentu. Secara umum, kriteria yang dimaksud dapat digunakan untuk mengevaluasi kualitas kode baik itu dari perspektif aplikasi secara keseluruhan, class, maupun methodnya, yang meliputi beberapa aspek. Aspek clean code termasuk di antaranya organisasi kelas, style format kode, aturan penamaan variable, dan error handling.
Tujuan Clean Code
Sekilas, sebuah kode ditulis dengan bersih dengan harapan kode tersebut enak dilihat, dan kita dapat mudah menemukan bagian yang kita ingin cari tahu di antara banyak barisan kode — mirip seperti berada di sebuah ruangan yang bersih. Selain itu, clean code juga ditulis secara sederhana dan efisien sehingga terlihat elegan, terhindar dari bugs yang susah ditemukan, dan mudah dimengerti dan dipelihara secara berkelanjutan oleh kita sendiri maupun developer lain.
Seperti di bidang-bidang lain, sebuah aturan dibuat untuk mendorong hal-hal yang dianggap baik, dan mencegah hal-hal buruk terjadi. Dalam kaitannya dengan kode, clean code harus dicapai karena merefleksikan kualitas kode yang baik sekaligus mencegah hal buruk seperti kebingungan di masa depan.
Manfaat Clean Code
- Menghasilkan kode yang lebih jelas, enak dipandang, tidak memusingkan.
- Tidak membuat kita bingung dengan kode kita sendiri dalam waktu dekat. Misal 2 hari kemudian sudah lupa ini kode apa, karena kode tidak bersih.
- Tidak sulit dipelihara secara berkelanjutan karena memang sudah bersih. Tidak perlu usaha tambahan (yang bisa besar) untuk membersihkan kode.
- Bugs atau kesalahan kode menjadi lebih mudah ditemukan sehingga lebih mudah pula diperbaiki. Hal ini karena kode yang bersih mudah dibaca.
- Membuat kita sebagai penulis kode lebih bahagia karena kodenya indah.
Bagaimana mewujudkan Clean Code?
Pedoman clean code
- Buat penamaan yang bermakna, baik itu variabel, method, maupun kelas.
- Buat function dan kelas yang kecil dan melakukan satu hal saja (kohesif).
- Function seharusnya tidak memiliki efek samping yang tidak diharapkan.
- Komentar seperlunya. Tidak menulis komentar tidak penting / redundan.
- Membuat error handling seperti menggunakan try-catch dan exception.
- Melakukan Test Driven Development (TDD) untuk menghasilkan clean code!
Hindari code smell
Kode yang bersih tidak mengandung code smells. Berikut ini adalah contoh Code Smells pada level aplikasi, class, dan method, beserta penjelasannya.
Berikut adalah beberapa solusi yang berkaitan dengan suatu code smell.
1.Duplicate code: kurangi dengan mengenkapsulasi pada suatu method. Bagian kode yang duplikat bisa diganti menjadi memanggil method saja.
2.Large class: Pastikan kelas tidak terlalu besar dan ketika suatu kelas mulai menjadi terlalu besar, lebih baik dipecah menjadi beberapa kelas berbeda.
3.Long method: Solusinya mirip seperti large class. Ketika suatu method mulai terlalu besar, lebih baik dipecah menjadi beberapa method berbeda.
4.Excessive returner: Jangan mereturn lebih dari yang dibutuhkan oleh kode pemanggil method tersebut. Return yang tidak perlu lebih baik dihapus saja.
5.Identifier size: Buat nama variabel, method, maupun kelas yang ukurannya tepat — tidak terlalu panjang / terlalu pendek, deskriptif, mudah dipahami.
Artikel ini ditulis untuk Individual Review PPL CS Universitas Indonesia 2021
Clean Code pada PPL
SonarQube
Di PPL, kami menggunakan tools bernama SonarQube yang dapat membantu mengevaluasi kualitas kode. Ia akan memberi tahu ketika terdapat code smell sehingga saya menjadi sadar dan akan me-refactor kode saya agar lebih bersih lagi. SonarQube sangat membantu mewujudkan clean code.
Linter
Tools lain yang kami gunakan adalah Linter. Untuk front end, kami menggunakan ESLint. Jika kode tidak bermasalah maka job akan success sedangkan jika terdapat problem pada kode maka akan diberitahukan.
Untuk back end, kami menggunakan pylint. Seperti di front end, jika kode tidak bermasalah maka job akan success dan memperoleh nilai 10. Jika terdapat problem pada kode, maka nilai akan kurang dari 10 dan job failed.
Berikut ini adalah contoh kode yang merupakan clean code karena class dan method tidak besar, hanya melakukan satu hal, penamaan class, method, dan variabel yang deskriptif, serta terdapat exception handling yang tepat.
Terima kasih!
Referensi
- Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin
- Slide kuliah Advanced Programming Semester Genap 2020: Clean Code
- https://medium.com/@waterprinciple/advantages-of-clean-code-e24500a5fc06