Kod incelemesi (code review): yorum almak ve vermek üzerine pratik öneriler
İşe yeni başlayan bir geliştirici için ilk kod incelemeleri gergin geçebilir: onlarca yorum, "bunu neden böyle yaptın" soruları... Oysa kod incelemesi ekipte en hızlı öğrenme yollarından biri. Hem yorum alırken hem verirken işe yarayan alışkanlıklar şunlar.
İncelemeye göndermeden önce
- Küçük tut. 200-400 satırlık bir değişiklik dikkatle incelenir; 2.000 satırlık bir değişikliğe genelde "iyi görünüyor" denip geçilir. Büyük işleri parçalara böl.
- Açıklama yaz. Ne değişti, neden değişti, nasıl test edildi? Arayüz değişikliği varsa ekran görüntüsü ekle.
- Önce kendin incele. Farkı (diff) baştan sona oku. Unutulan hata ayıklama satırları, yorum satırına alınmış kodlar, yanlışlıkla eklenen dosyalar genelde bu aşamada yakalanır.
- Otomatik kontrolleri geçir. Testler, linter ve biçimlendirici. İnsan dikkatini boşluk ve virgül tartışmalarına harcamasın.
Yorum alırken
- Yorum koda yapılır, sana değil. "Bu fonksiyon çok uzun" demek "sen kötü bir geliştiricisin" demek değildir.
- Anlamadığını sor. "Burada X'i önerdin, Y yerine neden daha iyi?" sorusu hem öğrenmeni sağlar hem de yorumu yapanın gerekçesini netleştirir.
- Katılmıyorsan gerekçeyle söyle. Bazen haklı olan sen olabilirsin; ama tartışma uzuyorsa yazışmayı bırakıp kısa bir görüşme yap.
- Her yoruma cevap ver. "Düzelttim", "Ayrı bir işte ele alacağım" gibi. İnceleyen, neyin yapıldığını tahmin etmek zorunda kalmasın.
- Tekrar eden yorumlardan not çıkar. Aynı şeyi üç kez duyduysan bir sonraki değişiklikte kendin kontrol et.
Yorum verirken
- Önemliyle önemsizi ayır. Hata, güvenlik açığı ve veri kaybı riski önce gelir. Zevke bağlı konularda yorumun başına "küçük not" yazmak, değişikliği engellemediğini anlatır.
- Soru sor, emir verme. "Bunu şöyle yap" yerine "Burada liste boş gelirse ne olur?" demek hem daha az savunmacı tepki alır hem de karşı tarafın düşünmesini sağlar.
- Neden'ini yaz. "Bunu değiştir" yerine "Bu sorgu döngü içinde çalıştığı için her öğe için veritabanına gidiyor; tek sorguda alabiliriz."
- Örnek ver. Mümkünse önerdiğin hâli kısa bir kod parçasıyla göster.
- İyi olanı da söyle. Temiz bir çözüm veya iyi yazılmış bir test gördüğünde bunu belirtmek ekipte doğru alışkanlıkları güçlendirir.
- Zamanında incele. Bekleyen inceleme, arkadaşının işini durdurur. Hemen bakamıyorsan ne zaman bakacağını söyle.
Nelere bakılmalı?
- Değişiklik amacına ulaşıyor mu, sınır durumlar düşünülmüş mü?
- Güvenlik: kullanıcı girdisi doğrulanmış mı, yetki kontrolü var mı, gizli bilgi koda girmiş mi?
- Testler: yeni davranış test edilmiş mi?
- Okunabilirlik: altı ay sonra başka biri bu kodu anlayabilir mi?
- Performans: döngü içinde sorgu, gereksiz büyük veri yükleme var mı?
Kod incelemesi bir sınav değil, ortak sorumluluk. Kod canlıya çıktığında yazan da inceleyen de onun sahibidir.