Kod incelemesi (code review): tanım, akış ve ölçütler
Sözlük

Kod incelemesi (code review): tanım, akış ve ölçütler

Hazırlayan: Mindset Institute EditörlüğüGüncellendi: 3 dk okuma

Kod incelemesi, yazılan kodun birleştirilmeden önce başka bir geliştirici tarafından gözden geçirilmesidir. Amacı, akışı ve iyi bir inceleme ölçütleri.

Kod incelemesi nedir?

Kod incelemesi (code review), bir geliştiricinin yazdığı değişikliğin ana koda eklenmeden önce en az bir başka geliştirici tarafından gözden geçirilmesidir. İnceleyen kişi hataları, güvenlik açıklarını, okunabilirlik sorunlarını ve tasarım tutarsızlıklarını arar; yazara soru sorar ya da öneri bırakır.

Uygulamada çoğu ekip incelemeyi pull request (birleştirme isteği) üzerinden yapar. Yazar değişikliğini ayrı bir dalda hazırlar, inceleme ister, yorumlara göre düzeltir ve onay alınca kod ana dala alınır. Amaç kişiyi denetlemek değil, ürüne giren kodun ekip tarafından paylaşılan bir kalite çıtasını geçmesini sağlamaktır.

Kod incelemesi nasıl işler?

Tipik bir akış şöyledir: • Yazar değişikliği küçük ve tek amaçlı tutar, açıklayıcı bir başlık ve gerekçe yazar. • Otomatik kontroller (testler, biçim ve statik analiz) önce çalışır; makinenin yakalayabileceği şeyler insana kalmaz. • İnceleyen değişikliğin amacını anlar, kodu okur, gerekirse yerelde çalıştırır ve yorumlarını bırakır. • Yazar yorumları yanıtlar veya düzeltir; tartışma gerekirse konuşarak çözülür. • Onaydan sonra değişiklik birleştirilir.

Değişiklik ne kadar küçükse inceleme o kadar etkili olur. Çok büyük bir değişiklikte inceleyen detayda boğulur ve önemli sorunları kaçırabilir.

İyi bir kod incelemesi neye bakar?

İnceleme kontrol listesi ekipten ekibe değişse de çekirdek sorular benzerdir: • Doğruluk: kod söylediği işi yapıyor mu, sınır durumları ve hata yolları düşünülmüş mü? • Test: değişikliğin davranışını doğrulayan testler var mı? • Okunabilirlik: isimlendirme açık mı, bir başkası kodu kolayca anlayabilir mi? • Tasarım: değişiklik mevcut mimariyle uyumlu mu, gereksiz karmaşıklık ekliyor mu? • Güvenlik ve veri: girdi doğrulama, yetki kontrolü ve hassas veri kullanımı uygun mu?

Biçim ve stil gibi mekanik konuları otomatik araçlara bırakmak, inceleme zamanını tasarım ve mantık hatalarına ayırmayı sağlar.

Örnek: bir pull request incelemesi

Örneğin bir geliştirici sipariş iptali için yeni bir fonksiyon yazar ve pull request açar. İnceleyen kişi kodu okurken iptal edilen siparişin stoğa geri eklenmediğini fark eder ve bunu yorum olarak yazar. Ayrıca aynı koşulun iki yerde tekrarlandığını görüp ortak bir fonksiyona çıkarılmasını önerir. Üçüncü olarak iptal akışı için test bulunmadığını belirtir.

Yazar stok düzeltmesini ve testi ekler, tekrarı kaldırır. İnceleyen yeni halini görür ve onaylar. Sorun üretime çıkmadan, düşük maliyetle yakalanmış olur. Aynı süreç, inceleyen kişiye de değişikliğin ürünün diğer parçalarıyla nasıl ilişkilendiğini öğretir.

Kod incelemesinde yaygın hatalar ve ilişkili kavramlar

En sık görülen sorunlar şunlardır: aşırı büyük değişiklikler, kişiye yönelik ve yıkıcı yorumlar, gerekçesiz "olmamış" demek, tamamen otomatik araçlara güvenmek ya da hiç inceleme yapmadan onaylamak. Yorumlar kodu hedef almalı, "neden" sorusunu içermeli ve mümkünse bir alternatif sunmalıdır.

Kod incelemesi, pair programming'den farklıdır: pair programming kod yazılırken eş zamanlı, inceleme ise yazıldıktan sonra yapılır. Statik analiz ve testler de incelemeyi tamamlar ama yerine geçmez; tasarım kararlarını ve niyeti değerlendirmek hâlâ insan işidir. Son yıllarda yapay zeka destekli araçlar ilk geçişte olası sorunları işaretleyerek insan incelemesine destek olur; son karar yine ekipte kalır.

Mindset'te kod incelemesi nerede çalışılır?

Mindset'in Yapay Zeka Destekli Kod İnceleme ve Test Üretimi eğitiminde Yapay Zeka Destekli İnceleme Akışı, Test Üretimi ve Kapsam, Çıktı Denetimi ve Ekip Kuralları modülleri yer alır. Veri Boru Hattı Dokümantasyonu ve Kod İnceleme eğitiminde ise Kod İnceleme Pratiği ve Kontrol Listesi modülü veri hatları bağlamında ele alınır.

İlgili Mindset programı

Yapay Zeka Destekli Kod İnceleme ve Test Üretimi

Sık sorulanlar

Sık sorulan sorular

Kod incelemesini kim yapmalı?

Kodu yazmayan ve ilgili alanı bilen en az bir ekip üyesi yapmalıdır. Kıdemli geliştiriciler kadar eş düzeydeki üyelerin de incelemesi değerlidir; bu hem bilgiyi yayar hem de kalite sorumluluğunu paylaştırır.

Kod incelemesi ile test arasındaki fark nedir?

Test, kodun belirlenen girdilerde beklenen çıktıyı verdiğini otomatik doğrular. İnceleme ise tasarımı, okunabilirliği, test eksikliklerini ve testin yakalayamayacağı mantık hatalarını insan gözüyle değerlendirir. İkisi birbirini tamamlar.

Yapay zeka kod incelemesinin yerini alır mı?

Yapay zeka araçları ilk geçişte olası hata ve stil sorunlarını işaretleyebilir; ancak niyeti, iş bağlamını ve mimari kararları değerlendirmek insan sorumluluğunda kalır. Araç çıktısı da doğrulanmalıdır.

Kod incelemesi geliştirmeyi yavaşlatır mı?

Kısa vadede biraz zaman alır; ancak hataların üretimde bulunma maliyetini ve bilgi silolarını azaltır. İncelemeyi küçük değişikliklerle tutmak, beklemeyi kısaltmak için en etkili yoldur. Ekip içinde incelemeye yanıt verme için ortak bir beklenti belirlemek ve otomatik kontrolleri (biçim, test, statik analiz) insan incelemesinden önce çalıştırmak da bekleme süresini düşürür.

Kod İncelemesi (Code Review) Nedir, Nasıl Yapılır?