Deneyimlerime göre en iyi yol, delik ekibinin kod incelemesini yapmasına izin vermektir. Her projede, sürüm kontrol sistemindeki her kod değişikliğini takip edebileceğiniz bir taahhütlü posta listesi kullanıyoruz. Geliştiricimizin çoğu, kod değişiklikleriyle ilgilendikleri için projeye özel posta listelerine abone oldular.
Birisi yeni kaynak kodunda kötü bir yol fark ettiğinde, yalpalayan bir stajyer ise ya da daha deneyimli bir talihçi ise bu konuda bir tartışma başlatır.
Elbette bu yöntem, özellikle ekip üyelerinden hiçbirinin her bir kod değişikliğini takip etmek için boş zamanları olmadığı durumlarda, tüm yeni kodların gözden geçirilmesini garanti etmez. Ayrıca her geliştirici, her geliştiricinin işini iyi yapmasını sağlamaktan sorumlu değildir, yalnız bunun gözden geçirildiğini garanti edemezsiniz. Ancak, en azından ekiplerimizde her zaman teknik kaliteden sorumlu bir teknik müdür vardır.
Aşağıdaki puanlara uyuyorlarsa, kod incelemelerinin gerçek bir hayranıyım:
- her geliştirici tüm kod ve argümanları kendi görüşüne göre inceleme olanağına sahiptir.
- hiç kimsenin başkalarının kodunu kötüye kullanma hakkı yoktur
- sadece kötü kod bir tartışmayı etkinleştirmekle kalmaz, aynı zamanda iyi bir kod da
- tartışmalar, dahil olan her insan için mutluluklarla sona erer
- inceleme, en azından özellik tamamlanmadan önce neredeyse gerçek zamanlı olarak gerçekleşir
Ne öğrendim ki, her kod satırını gözden geçiren ve kod kalitesi gibi şeyleri kod biçimlendirme veya kod verimliliği açısından kontrol etmeniz gerektiğini düşünüyorsanız, o zaman makinelerin yapabileceği şeyleri yaptığınız için çok verimsizsiniz. sen. Hedefiniz, her bir kod katkısının derleme ve kod kalitesini kontrol eden sürekli bir entegrasyon sistemi kullanmak olmalıdır. Bu sistem raporlar üretir ve katılımcılara gönderirse, her şey mükemmeldir.
İtiraf etmeliyim ki kodu gözden geçirmeniz gerekiyorsa, çünkü bir programcının kalitesini kontrol etmek veya kalitesini sıralamak zorundaysanız, o zaman önerilerim mantıklı değil. Bu durumda kaynak kodunu satır satır gözden geçirmeyeceğim. Şöyle şeyleri gözden geçiririm:
- güvenlikle ilgili sorunlar var mı
- amaçlanan API'lardır
- kod belirtilen mimariyi uyguladı mı
- yararlı testler yazdı mı (ancak yalnızca örtük talimatı verildiğinde öğrenmem gerekiyordu)
- belgeleme
- birikmesi işlem
- ... ve biraz daha fazlası, muhtemelen
Deneyimli bir geliştiriciyseniz, her zaman daha iyi performansla yapabileceğiniz döngüler gibi şeyler bulacaksınız. Tabii ki başkalarına bu tür bilgileri açıklamakta fayda var, ancak bu inceleme oturumunun bir parçası olmamalıdır. Önemli performans sorunları varsa, o zaman liste türünün daha az verimli bir varyantını kullandığından değil.
İlk soru, neden bazı insanların gerçek inceleme başlamadan önce belki bir önizleme yaptıklarına cevap vereceğim diğer insanlar gibi daha iyi bir inceleme yapıyor gibi göründüğü için, muhtemelen kendilerinin hazırlandıkları anlamına gelir, böylece tam olarak ne incelemek istediklerini bilirler. .