Dalam pengalaman saya, cara terbaik adalah membiarkan tim lubang membuat ulasan kode. Kami menggunakan milis komit di setiap proyek di mana Anda dapat mengikuti setiap perubahan kode ke sistem kontrol versi. Sebagian besar pengembang kami telah berlangganan milis khusus proyek mereka karena mereka tertarik pada perubahan kode.
Ketika seseorang melihat cara yang buruk dalam kode sumber yang baru, ia menjelaskan kepada pengendara bagaimana ia dapat melakukannya dengan cara yang lebih baik, jika pengendara adalah peserta pelatihan, atau ia memulai diskusi tentang hal itu, jika penggantinya lebih berpengalaman.
Tentu saja metode ini tidak menjamin bahwa semua kode baru ditinjau, terutama di masa-masa penuh tekanan ketika tidak ada anggota tim yang senang mengikuti setiap perubahan kode. Juga tidak setiap pengembang bertanggung jawab untuk memastikan bahwa setiap pengembang membuat pekerjaannya baik, sendirian dari ini Anda tidak dapat menjamin bahwa itu ditinjau. Tapi, setidaknya di tim kami, selalu ada manajer teknis yang bertanggung jawab untuk kualitas teknis.
Saya penggemar berat kode jika sesuai dengan skor berikut:
- setiap pengembang memiliki kemungkinan untuk meninjau semua kode dan argumen menurut pendapatnya
- tidak ada yang memiliki hak untuk menyalahgunakan kode orang lain
- bukan hanya kode yang buruk mengaktifkan diskusi tetapi kode yang baik juga
- diskusi berakhir dengan kebahagiaan bagi setiap orang yang terlibat
- review terjadi hampir secara real-time, setidaknya sebelum fitur selesai
Apa yang saya pelajari adalah bahwa jika Anda adalah seseorang yang meninjau setiap baris kode dan berpikir Anda harus mengendalikan hal-hal seperti kualitas kode dalam hal pemformatan kode atau efisiensi kode maka Anda sendiri sangat tidak efisien karena Anda melakukan hal-hal yang dapat dilakukan mesin untuk kamu. Target Anda harus menggunakan sistem integrasi berkesinambungan yang mengontrol kualitas kode dan bangun dari setiap kontribusi kode. Jika sistem ini menghasilkan laporan dan mengirimkannya ke kontributor, semuanya sempurna.
Saya harus mengakui bahwa jika Anda harus meninjau kode karena Anda harus mengontrol, atau untuk menentukan peringkat kualitas seorang programmer, maka saran saya tidak masuk akal. Dalam hal ini saya juga tidak akan meninjau kode sumber baris demi baris. Saya akan meninjau hal-hal seperti:
- apakah ada masalah keamanan yang relevan
- API yang dimaksudkan digunakan
- apakah kode menerapkan arsitektur yang ditentukan
- apakah dia menulis tes yang berguna (tetapi hanya jika dia diinstruksikan secara implisit, saya harus belajar)
- Dokumentasi
- proses membangun
- ... dan masih banyak lagi, mungkin
Jika Anda adalah pengembang yang berpengalaman, Anda pasti akan selalu menemukan hal-hal seperti loop yang dapat Anda lakukan dengan kinerja yang lebih baik. Tentu saja bermanfaat untuk menjelaskan kepada orang lain pengetahuan semacam itu, tetapi ini seharusnya bukan bagian dari sesi peninjauan. Jika ada masalah kinerja yang signifikan maka bukan karena dia (atau dia) menggunakan varian tipe daftar yang kurang efisien.
Karena pertanyaan awal adalah mengapa beberapa orang tampaknya membuat ulasan yang lebih baik seperti orang lain, saya akan menjawab bahwa orang-orang ini mungkin membuat pratinjau sebelum ulasan sebenarnya dimulai, berarti mereka mungkin mempersiapkan diri mereka sendiri sehingga mereka tahu persis apa yang ingin mereka tinjau .