Google memiliki praktik peninjauan kode terbaik dari tempat mana pun yang pernah saya lihat. Semua orang yang saya temui di sana sepakat sepenuhnya tentang cara melakukan tinjauan kode. Mantra ini "ditinjau lebih awal dan sering".
Misalkan Anda menggunakan proses yang tampak seperti apa yang disarankan Graham Lee. (Yang merupakan proses yang sebelumnya saya gunakan sendiri.) Masalahnya adalah bahwa pengulas diminta untuk melihat potongan besar kode. Itu adalah upaya yang jauh lebih banyak, dan lebih sulit untuk mendapatkan pengulas untuk melakukannya. Dan ketika mereka melakukannya, lebih sulit untuk membuat mereka melakukan pekerjaan itu dengan seksama. Terlebih lagi ketika mereka melihat masalah desain, lebih sulit untuk membuat pengembang kembali dan mengulang semua kode kerja mereka untuk membuatnya lebih baik. Anda masih menangkap barang, dan itu masih berharga, tetapi Anda tidak akan menyadari bahwa Anda kehilangan lebih dari 90% dari keuntungan.
Sebaliknya, Google memiliki ulasan kode pada setiap komitmen sebelum dapat masuk ke kontrol sumber. Naif banyak orang berpikir bahwa ini akan menjadi proses yang berat. Tetapi dalam praktiknya tidak seperti itu. Ternyata lebih mudah untuk meninjau potongan-potongan kecil kode secara terpisah. Ketika masalah ditemukan, itu jauh lebih sedikit pekerjaan untuk mengubah desain karena Anda belum menulis banyak kode di sekitar desain itu. Hasilnya adalah bahwa jauh lebih mudah untuk melakukan tinjauan kode menyeluruh, dan jauh lebih mudah untuk memperbaiki masalah yang berubah.
Jika Anda ingin melakukan review kode seperti yang dilakukan Google (yang saya sangat sarankan), ada perangkat lunak untuk membantu Anda melakukannya. Google telah merilis alat mereka yang terintegrasi dengan Subversion sebagai Rietveld . Go (bahasa) dikembangkan dengan versi Rietveld yang dimodifikasi untuk digunakan dengan Mercurial. Ada penulisan ulang untuk orang yang menggunakan git bernama Gerrit . Saya juga melihat dua alat komersial yang direkomendasikan untuk ini, Crucible and Review Board .
Satu-satunya yang saya gunakan adalah versi internal Google Rietveld, dan saya sangat senang dengannya.