Hai para IT enthusiast, apakah kamu tahu dengan istilah code review, atau mungkin sudah familier karena project submission kamu sering di-review pada level kode? Apakah kamu merasakan manfaatnya ketika mendapatkan feedback dari reviewers di Dicoding?
Jika ya, berarti proses code review ini sangat penting karena dapat membantu kamu menjadi developer yang lebih baik dan memberikan kualitas kode terbaik untuk project-mu. Yuk, tanpa basa basi lagi, mari kita bahas!
Pengertian Code Review
Code review, sesuai namanya, melibatkan peninjauan kode rekan kerja untuk memberikan review dengan tujuan meningkatkan kualitasnya, berbagi pengetahuan, menghindari kode boilerplate (kode yang berulang), dan banyak lagi kasus yang mungkin terjadi.
💻 Mulai Belajar Pemrograman
Belajar pemrograman di Dicoding Academy dan mulai perjalanan Anda sebagai developer profesional.
Daftar SekarangDalam buku Clean Code: A Handbook of Agile Software Craftsmanship oleh Robert C. Martin, code review dianggap sebagai praktik penting yang ditekankan. Martin menekankan penulisan kode yang bersih, mudah dibaca, serta dapat dipelihara, dan code review adalah mekanisme kunci untuk mencapai tujuan ini.
Proses ini biasanya dilakukan oleh sesama tim developer, ini bisa mencakup hal-hal berikut.
- Peer review: developer lain dalam tim yang bekerja pada project yang sama atau memiliki pemahaman cukup tentang teknologi dan domain yang relevan.
- Senior developers atau developer lead: dalam tim para senior atau lead sering kali terlibat dalam code review untuk memberikan pandangan lebih mendalam serta memastikan bahwa kode mematuhi standar dan arsitektur yang ditetapkan.
- Technical leads atau architects: mereka yang bertanggung jawab atas arsitektur dan desain sistem secara keseluruhan juga dapat terlibat dalam code review.
Automated tools: tools otomatis seperti linter, static code analyzers, dan continuous integration (CI) pipelines dapat digunakan untuk memberikan feedback otomatis tentang kualitas kode sebelum proses code review by human dilakukan.
Alasan Code Review Itu Penting
Alasan code review ini penting adalah untuk menghasilkan kode yang bersih, konsisten, tidak boilerplate, mudah dibaca, dan mudah dipelihara. Karena kegunaannya sangat penting, di dunia kerja, proses ini pasti dilakukan.
Bayangkan jika tidak, semua developer akan push semua kode mereka sesuai dengan tugas masing-masing tanpa adanya komunikasi dan review antar developer. Tentunya aplikasi yang dibuat akan menjadi kacau, arsitektur tidak konsisten, dan akan banyak kode boilerplate.
Seminimal mungkin, proses ini dilakukan dengan komunikasi langsung antar developer. Sebaiknya memanfaatkan version control systems (VCS), seperti di GitHub atau Bitbucket.
Kita bisa langsung memberi komentar pada baris kode yang di-review. Prosesnya sama persis dengan code review di Dicoding ketika kamu submit submission. Kalau menggunakan GitHub atau Bitbucket, kamu harus melakukan pull request (permintaan merge kode) kepada code reviewer/senior developer.
Jika kode kamu sudah di-review dan diterima, kode akan langsung di-merge ke branch tujuan. Jika tidak, pasti akan ada komentar dan kamu perlu memperbaikinya terlebih dahulu sebelum di-merge. Cara ini akan jauh lebih efektif, menghemat waktu, dan paling umum dilakukan.
Terus apa jadinya jika proses tersebut tidak dilakukan?
- Penurunan kualitas kode dan tidak maintainable: tanpa proses review, kode yang dihasilkan akan memiliki banyak bug, tidak memenuhi standar kualitas, dan memiliki potensi masalah di masa depan yang tidak terdeteksi.
- Biaya pemeliharaan akan meningkat: kode yang tidak melalui proses review akan lebih sulit untuk dipelihara. Masalah yang tidak terdeteksi memerlukan perbaikan yang mahal dan memakan waktu di masa depan, hal ini menyebabkan technical debt yang sangat tinggi, semakin besar technical debt, semakin tinggi biaya pemeliharaan yang diperlukan untuk memperbaiki atau menyempurnakan kode di masa depan.
- Arsitektur yang buruk: tanpa proses review arsitektur dapat menjadi tidak konsisten dan tidak terorganisir dengan baik. Ini ke depannya dapat mengarah pada masalah skalabilitas (scalability).
- Kurangnya dokumentasi: proses code review sering kali juga memastikan bahwa kode didokumentasikan dengan baik. Tanpa ini, kode menjadi sulit untuk dipahami oleh developer lain yang mungkin perlu bekerja dengan kode tersebut di masa depan.
Kesimpulan
Code review adalah praktik penting dalam pengembangan perangkat lunak yang melibatkan peninjauan oleh rekan kerja atau developer senior. Kita harus terbuka terhadap kritik dan saran yang diberikan saat code review. Hal ini akan membantu meningkatkan keterampilan pemrograman dan pemahaman arsitektur aplikasi yang telah dibuat.
Kita juga perlu mempelajari dengan sungguh-sungguh mengenai review yang diberikan, gunakan proses ini sebagai kesempatan untuk belajar dan memperbaiki diri. Jika ada bagian kode yang kurang dipahami, tanyakan pada senior developer untuk penjelasan lebih lanjut. Ingatlah pepatah yang mengatakan bahwa lebih baik bertanya daripada tersesat di jalan.