Ana içeriğe atla

Code review, kod kalitesini artırmak, bilgi paylaşımını sağlamak ve ekip olarak birlikte öğrenmek için kritik bir pratiktir. Review sadece bug yakalamak değil, aynı zamanda daha iyi mühendisler olmak içindir.

Neden Code Review?

  • Kalite: Bugları üretimden önce yakala
  • Bilgi paylaşımı: Codebase bilgisi tek kişide kalmasın
  • Öğrenme: Hem yazar hem reviewer öğrenir
  • Tutarlılık: Kod standartları ve pattern'ler tutarlı kalsın
  • Ownership: Birden fazla kişi kodu tanısın

Yazar İçin Kurallar

PR Açmadan Önce

  • Kendi kodunu kendin review et (self-review)
  • Testlerin geçtiğinden emin ol
  • Lint/format hataları temizlenmiş olmalı
  • PR küçük olsun: ideal <400 satır değişiklik
  • Bir PR bir iş yapsın (tek sorumluluk)

İyi PR Açıklaması

  • Ne yaptın: Değişikliğin özeti
  • Neden yaptın: İş gereksinimi veya problem
  • Nasıl test edilir: Reviewer için adımlar
  • Riskler: Potansiyel yan etkiler
  • Ekran görüntüsü/video: UI değişiklikleri için

PR açıklaması boş bırakılmaz. 'Bug fix' gibi tek kelime açıklamalar kabul edilmez.

Reviewer İçin Kurallar

Review Yaparken

  • Review'a 24 saat içinde başla (blokaj yaratma)
  • Kod mantığını anlamaya çalış, sadece syntax'a bakma
  • Pozitif şeyleri de belirt: 'Güzel çözüm!' demek önemli
  • Eleştiri kişiye değil koda yönelik olsun
  • Soru sor: 'Neden böyle yaptın?' öğrenmek için

Yorum Tipleri

PrefixAnlamıÖrnek
[nit]Ufak öneri, zorunlu değil[nit] Burada const kullanabilirsin
[suggestion]Alternatif yaklaşım[suggestion] Early return daha okunur olabilir
[question]Anlamak için soru[question] Bu case'i neden handle etmiyoruz?
[blocker]Merge öncesi düzeltilmeli[blocker] Null check eksik, crash edebilir

Review Odak Alanları

  • Doğruluk: Kod istenen işi yapıyor mu?
  • Tasarım: Mimari ve pattern'ler uygun mu?
  • Okunabilirlik: Başka biri anlayabilir mi?
  • Testler: Yeterli ve anlamlı test var mı?
  • Güvenlik: Açık var mı? (injection, auth vb.)
  • Performans: Gereksiz maliyet var mı?
  • Dokümantasyon: Gerekli yorum/doc var mı?

Approval Kuralları

Değişiklik TipiMinimum ApprovalNot
Standart PR1 approveTemel kural
Kritik sistem/DB2 approveSensitive değişiklikler
Hotfix (SEV1/2)1 approve + Tech LeadHızlı ama kontrollü
Refactoring (büyük)2 approveRisk yüksek

Antipattern'ler

  • ❌ Rubber stamping: Gerçekten okumadan onay
  • ❌ Bike shedding: Önemsiz detaylara takılma
  • ❌ Geciktirme: Review'ları günlerce bekletme
  • ❌ Ego: 'Ben olsam farklı yazardım' yaklaşımı
  • ❌ Nitpick hell: Her satıra yorum yazma
  • ❌ Context switching: Aynı PR'ı farklı reviewer'lar farklı yöne çekmeye çalışma

Anlaşmazlık Durumları

Yazar ve reviewer anlaşamadığında:

  • 1. Offline görüşme: TodoTimeTracker/PR yorumları değil, kısa call
  • 2. Tech Lead dahil et: Üçüncü görüş al
  • 3. Disagree and commit: Karar alındığında ilerle
  • 4. Öğrenme fırsatı: Tartışmayı dokümante et, pattern'e dönüştür

Code review kişisel bir saldırı değil, birlikte daha iyi kod yazmak için işbirliği. Ego kapıda kalır.