Saya pikir melakukan tinjauan kode manual adalah ... baik ... agak 80-an. Yah, mungkin 90-an.
Di era modern integrasi berkelanjutan dan sistem peninjauan kode online ini, Anda benar-benar tidak ingin menahan komitmen kode apa pun hanya karena Anda takut bahwa "itu mungkin merusak kontrol sumber".
Ayo, semuanya. Itulah gunanya changeset (atau daftar perubahan). Anda membuat programmer Anda memberi makan lapar lapar dari sistem kontrol sumber Anda. Kemudian server integrasi berkesinambungan Anda menendang dengan litani build yang ditargetkan (well, semoga hanya build harian, tetapi beberapa dari kita terbawa suasana). Jika ada yang rusak, Anda meletakkan piala kode monyet (biasanya mainan plastik yang ditemukan seseorang dari kotak sereal Lucky Charms) di meja pelaku, dan memutar kembali daftar perubahan. Nah, beberapa sistem integrasi berkelanjutan secara otomatis mengeluarkan notifikasi email / IM / desktop untuk semua orang di tim / departemen / organisasi bahwa build rusak, bersama dengan hyperlink yang bagus untuk menunjukkan kepada semua orang yang benar-benar memecahkan build di mana file atau tes. Sekarang programmer yang malang '
Saat proses ini berjalan, sistem peninjauan kode akan masuk (sekali lagi, dipicu oleh check-in). Daftar anggota tim yang memenuhi syarat diberitahu tentang daftar perubahan yang berkomitmen untuk kontrol sumber, peninjauan dimulai dalam sistem peninjauan, dan semua orang mulai membuat anotasi terhadap perubahan dalam daftar perubahan. Semoga semua orang akan mengatakan "LGTM". Jika programmernya pintar, dia akan ingat untuk berdoa / menyuap / menyembunyikan. Jika ada masalah serius, pengulas dapat membuat cacat (yang dapat dihubungkan ke sistem pelacakan bug), atau bahkan mengharuskan daftar perubahan untuk dicadangkan. Ya, perubahan yang disokong tidak hanya menyakiti ego, tetapi juga pikiran, itu benar. Ini adalah bumbu yang baik pada pengembang junior, untuk mengintegrasikan kembali daftar perubahan yang ditolak.
Jika lingkungan dev Anda kurang CI atau sistem peninjauan kode, Anda harus menyelidiki ini dengan serius. Beberapa tautan mungkin membantu Anda:
Atlassian Crucible
JetBrains TeamCity
reitveld
Cruise Control
Jika Anda akan mendapatkan server CI, Anda juga harus serius memikirkan kerangka kerja unit test. Jika Anda seorang C # dev, lihat sesuatu seperti NUnit untuk memulai.