Kod İnceleme (Code Review)

Kod inceleme, kod birleştirilmeden önce takım üyelerinin birbirinin kodunu incelediği bir süreçtir. Kod kalitesini korumaya, bilgi paylaşımına ve hataları erken yakalamaya yardımcı olur.

Kod İnceleme İş Akışı

1. Çekme İsteği Oluşturma

# Özellik branch'i oluştur
git checkout -b feature/yeni-ozellik

# Değişiklikleri yap ve commit et
git add .
git commit -m "Yeni özellik ekle"
git push origin feature/yeni-ozellik

Ardından gityar'da çekme isteği oluşturun.

2. İnceleme İsteme

Çekme isteğinde:

  1. Sağ kenar çubuğunda "İnceleyiciler" tıklayın
  2. Takım üyelerini seçin
  3. İsteğe bağlı olarak nelere odaklanılması gerektiğini açıklayan bir yorum ekleyin

3. Kodu İnceleme

İnceleyiciler şunları yapmalıdır:

  • Kod değişikliklerini dikkatli okuyun
  • Amacı ve bağlamı anlayın
  • Hataları ve uç durumları kontrol edin
  • Kodun standartlara uyduğunu doğrulayın
  • Gerektiğinde değişiklikleri yerel olarak test edin

İnceleme Özellikleri

Değişiklikleri Görüntüleme

Diff Görünümü:

  • Tüm değişiklikleri yan yana görün
  • Vurgulanmış eklemeler ve silmeler
  • Sözdizimi vurgulama
  • Bölünmüş veya birleştirilmiş diff

Commit Geçmişi:

  • PR'daki tüm commit'leri görün
  • Commit mesajlarını görün
  • Değişiklikleri zaman içinde takip edin

Satır İçi Yorumlar

Belirli satırlarda yorum bırakın:

  1. Satır numarasının üzerine gelin
  2. "+" simgesine tıklayın
  3. Yorumunuzu yazın
  4. "Tek yorum ekle" veya "İnceleme başlat" tıklayın

İnceleme Durumları

Yorum:

  • Genel geri bildirim
  • Onay veya reddetme yok
  • Soru sorun veya iyileştirmeler önerin

Onayla:

  • Kod birleşmeye hazır
  • Tüm endişeler giderildi
  • Kalite standartlarını karşılıyor

Değişiklik İste:

  • Birleştirilmeden önce sorunlar düzeltilmeli
  • Belirli geri bildirim sağlandı
  • Yazar endişeleri gidermeli

En İyi Uygulamalar

Yazarlar İçin

Göndermeden Önce:

  • ✅ Önce kodunuzu self-review edin
  • ✅ Kodun derlendiğinden ve testlerin geçtiğinden emin olun
  • ✅ Açık PR açıklaması yazın
  • ✅ Büyük değişiklikleri daha küçük PR'lara bölün
  • ✅ Karmaşık mantık için yorumlar ekleyin
  • ✅ Yeni özellikler için testler dahil edin

İnceleme Sırasında:

  • ✅ Tüm yorumlara yanıt verin
  • ✅ Saygılı ve profesyonel olun
  • ✅ Gerekçenizi açıklayın
  • ✅ İstenen değişiklikleri hemen yapın
  • ✅ Güncellemeleri aynı branch'e push edin
  • ✅ Zamanları için inceleyicilere teşekkür edin

İnceleyiciler İçin

İnceleme Süreci:

  • ✅ Hızlı inceleyin (24 saat içinde)
  • ✅ Yapıcı olun, eleştirel değil
  • ✅ Sadece ne değil, neden olduğunu açıklayın
  • ✅ Belirli iyileştirmeler önerin
  • ✅ İyi uygulamaları takdir edin
  • ✅ Değişikimler karmaşıksa yerel olarak test edin

Yorum Türleri:

Sorular:

"Bu boş bir dizi alırsa ne olur?"

Öneriler:

"Daha iyi performans için burada map kullanmayı düşünün"

Noktalar:

"Not: Satır 42'de fazladan boşluk"

Engelleyiciler:

"Birleştirmeden önce bu hata durumunu yönetmeli"

Kod İnceleme Kontrol Listesi

İşlevsellik

  • Kod yapması gerekeni yapıyor mu?
  • Uç durumlar yönetildi mi?
  • Hata yönetimi yeterli mi?
  • Herhangi bir hata var mı?

Kod Kalitesi

  • Kod okunabilir ve bakımı kolay mı?
  • Proje kurallarına uyuyor mu?
  • Değişken adları açıklayıcı mı?
  • Gereksiz karmaşıklık var mı?

Güvenlik

  • Güvenlik açıkları var mı?
  • Kullanıcı girdisi doğrulandı mı?
  • Secrets uygun şekilde yönetildi mi?
  • Kimlik doğrulama/yetkilendirme doğru mu?

Performans

  • Performans sorunları var mı?
  • Gereksiz hesaplama var mı?
  • Veritabanı sorguları verimli mi?
  • Önbellekleme uygun şekilde kullanılıyor mu?

Test

  • Testler dahil edildi mi?
  • Testler uç durumları kapsıyor mu?
  • Tüm testler geçiyor mu?
  • Test kapsamı yeterli mi?

Belgeler

  • Kod belgelendi mi?
  • Karmaşık algoritmalar açıklandı mı?
  • PR açıklaması açık mı?
  • API değişiklikleri belgelendi mi?

İnceleme Yorumlarını Çözme

Değişiklik Yapma

# İstenen değişiklikleri yap
# Dosyaları düzenle...

# Değişiklikleri commit et
git add .
git commit -m "İnceleme yorumlarını ele al"

# PR'ı güncellemek için push et
git push origin feature/yeni-ozellik

Çözüldü Olarak İşaretleme

  1. Yorumu kodda veya tartışmada ele alın
  2. İnceleyiciyseniz "Konuşmayı çöz" tıklayın
  3. Tüm istenen değişikliklerin ele alındığından emin olun

Takip İncelemeleri

Değişiklikler yapıldıktan sonra:

  1. İnceleyiciler güncellenmiş kodu yeniden inceler
  2. Memnunlarsa onaylar
  3. Gerekiyorsa daha fazla değişiklik ister
  4. Tüm endişeler giderildiğinde birleştirir

Birleştirme

Ne Zaman Birleştirilir

  • ✅ Tüm istenen değişiklikler ele alındı
  • ✅ En az bir onay (veya gerekli sayı)
  • ✅ Tüm CI kontrolleri geçiyor
  • ✅ Birleştirme çakışması yok
  • ✅ Takım hazır olduğuna katılıyor

Birleştirme Yöntemleri

Birleştirme Commit'i:

  • Tüm commit'leri korur
  • Birleştirme commit'i oluşturur
  • Özellik branch'leri için en uygun

Sıkıştır ve Birleştir:

  • Tüm commit'leri tek bir commit'te birleştirir
  • Temiz geçmiş
  • Küçük PR'lar için en uygun

Rebase ve Birleştir:

  • Commit'leri hedef branch'e rebase eder
  • Doğrusal geçmiş
  • Temiz geçmişi korumak için en uygun

Sonraki Adımlar