Code review, bir geliştiricinin yazdığı kodun ana koda eklenmeden önce başka biri tarafından incelenmesidir. Doğru yapıldığında hataları erken yakalar, bilgiyi ekibe yayar ve kod kalitesini zamanla yükseltir. Yanlış yapıldığında ise ego savaşına ve beklemeye dönüşür.
Amaç: hata avı değil, ortak sahiplik
Code review'un en büyük faydası yalnızca hata yakalamak değildir:
- Kodun en az iki kişi tarafından bilinmesi
- Ekipte ortak standartların oluşması
- Deneyimli geliştiricilerin bilgisini paylaşması
- Tasarım hatalarının üretime çıkmadan fark edilmesi
Neye bakılmalı?
Önem sırasına göre:
- Doğruluk: Kod istenen işi yapıyor mu? Uç durumlar düşünülmüş mü?
- Güvenlik: Girdi doğrulaması, yetki kontrolü, gizli bilgilerin kodda olmaması. Bkz. OWASP Top 10.
- Tasarım: Sorumluluklar doğru yerde mi? Gereksiz karmaşıklık var mı?
- Testler: Değişikliği koruyan testler eklenmiş mi?
- Okunabilirlik: İsimler ve yapı anlaşılır mı? Bkz. temiz kod.
- Performans: Döngü içinde veritabanı sorgusu gibi bariz sorunlar var mı? Bkz. N+1 problemi.
Biçim, girinti ve stil tartışmaları insanlara bırakılmamalı; bunlar otomatik araçlarla çözülmelidir.
Pull request'i incelenebilir yapmak
- Küçük tutun. Birkaç yüz satırı aşan değişiklikler yüzeysel incelenir. Büyük işi mantıklı parçalara bölün.
- Açıklama yazın. Ne değişti, neden değişti, nasıl test edildi?
- Ekran görüntüsü ekleyin. Arayüz değişikliklerinde inceleyicinin işini kolaylaştırır.
- Kendiniz önce inceleyin. Kendi PR'ınızı bir kez baştan sona okumak, basit hataların çoğunu yakalar.
Yapıcı yorum yazmak
| Yerine | Şöyle |
|---|---|
| "Bu yanlış." | "Sipariş boşsa burada hata alabiliriz, ne dersin?" |
| "Neden böyle yaptın?" | "Bu yaklaşımı seçme nedenini merak ettim; X'i de düşündün mü?" |
| "Berbat isim." | "data yerine bekleyenSiparisler daha açıklayıcı olabilir." |
Yorumları önem derecesine göre işaretlemek de faydalıdır: "engelleyici", "öneri", "küçük not" gibi. Kodu eleştirin, kişiyi değil.
Otomasyonun rolü
İnsan incelemesinden önce şunlar otomatik çalışmalıdır:
- Derleme ve testler (CI/CD)
- Kod biçimlendirici ve statik analiz
- Bağımlılık güvenlik taraması
- Gizli bilgi (parola, anahtar) taraması
Yapay zekâ ile kod incelemesi
Yapay zekâ araçları bariz hataları ve stil sorunlarını hızlıca işaretleyebilir; ancak iş kuralının doğruluğunu ve mimari uygunluğu değerlendirmede insan incelemesinin yerini tutmaz. Yapay zekânın ürettiği kodlar da en az insan kodu kadar dikkatli incelenmelidir. Bkz. AI ile kod yazarken güvenlik.
Sık sorulan sorular
Tek kişilik projede code review yapılabilir mi?
Kendi kodunuzu bir gün bekletip yeni gözle okumak, otomatik araçlar ve yapay zekâ destekli inceleme kısmen bu işi görür.
İnceleme ne kadar sürede yapılmalı?
Bekleyen PR'lar ekibi yavaşlatır. Bir iş günü içinde ilk geri bildirim vermek iyi bir hedeftir.
Sonuç
İyi bir code review kültürü, kaliteyi tek kişinin dikkatine bırakmaz. Küçük PR'lar, net açıklamalar, otomasyon ve nazik ama net yorumlarla inceleme, ekibin en değerli alışkanlıklarından biri haline gelir.