Code Review
- Türkçe karşılığı
- kod incelemesi
- Okunuşu
- kod rivyu
Günlük kullanımda iki ad da yaygın.
Kısaca
Code review, kod değişikliklerinin birleştirilmeden önce başka geliştiricilerce incelenmesidir; hataları yakalar, kaliteyi artırır, bilgi paylaşımını sağlar.
Code review (kod incelemesi) nedir?
Code review'da bir ya da birkaç ekip arkadaşı, önerilen bir değişikliği ana kod tabanının parçası olmadan önce baştan sona okur. Kodun çalıştığını, anlaşılır olduğunu, ekibin kurallarına uyduğunu ve güvenlik sorunları ya da gereksiz karmaşıklık getirmediğini kontrol ederler. Yazar daha sonra geri bildirime yanıt verir, değişiklikleri yapar ve inceleyenler onayladığında birleştirir.
Bugün çoğu kod incelemesi GitHub, GitLab veya Bitbucket gibi barındırma platformlarındaki pull request'lerde yapılır. İnceleyenler, hangi satırların eklendiğini, silindiğini ya da değiştirildiğini gösteren bir görünüm olan diff'i görür; belirli satırlara yorum yapabilir, düzenleme önerebilir, onaylayabilir ya da değişiklik isteyebilir. Otomatik araçlar genellikle önce çalışır; linter'lar, biçimlendiriciler, testler ve güvenlik tarayıcıları mekanik denetimleri üstlenir, insanlar da mantığa, tasarıma ve okunabilirliğe odaklanır.
Code review, göndermeden önce önemli bir e-postayı bir meslektaşınıza okutmaya benzer: taze bir çift göz, sizin artık fark etmediğiniz hataları ve belirsiz ifadeleri yakalar. Hataları yakalamanın ötesinde incelemeler, sistemin her bölümünü birden fazla kişinin anlamasını sağlayarak bilgiyi yayar ve yeni geliştiricilerin kod tabanını öğrenmesine yardımcı olur. Birçok ekip artık ek bir inceleyici olarak yapay zeka asistanlarını da kullanıyor, ancak nihai onayı genellikle hâlâ bir insan veriyor.
Code review bazen testle karıştırılır. Testler davranışı otomatik olarak denetler; inceleme ise testlerin yapamayacağı şeyleri denetler: yaklaşımın mantıklı olup olmadığını ve bir sonraki geliştiricinin bunu anlayıp anlamayacağı gibi. İyi incelemeler zamanında yapılır, kişiye değil koda odaklanır ve en iyi küçük değişikliklerde işler; çünkü yüzlerce satırı bir seferde incelemek çabucak gözü kapalı onaylara yol açar.
Önemli noktalar
- Code review, kod değişikliklerinin birleştirilmeden önce meslektaşlar tarafından kontrol edilmesidir.
- Genellikle bir pull request içinde, belirli satırlara yapılan yorumlarla gerçekleşir.
- Otomatik denetimler biçimlendirmeyi ve testleri üstlenir; insanlar mantığa, tasarıma ve anlaşılırlığa odaklanır.
- İncelemeler hataları erken yakalar ve bilgiyi ekip içinde yayar.
- Küçük değişiklikler ile nazik ve somut geri bildirim, incelemeleri daha hızlı ve etkili kılar.
Örnek
# Fetch the branch under review and see what it changes
git fetch origin
git log --oneline main..origin/feature/checkout
git diff main...origin/feature/checkout
# Check out the branch locally to run it and its tests
git switch feature/checkout
npm test
# With a hosting platform's CLI (GitHub's is shown), submit the review
gh pr review 123 --approve --body "Looks good, thanks!"
gh pr review 123 --request-changes --body "Please add a test for empty carts."Sık sorulan sorular
Bir code review'da nelere bakmalıyım?
Değişikliğin iddia ettiği işi yaptığını, uç durumları ve hataları ele aldığını, okunabilir olduğunu ve mevcut tasarıma uyduğunu kontrol edin. Ayrıca güvenlik sorunlarına, eksik testlere ve gereksiz karmaşıklığa bakın; stil ayrıntılarını ise otomatik biçimlendiricilere ve linter'lara bırakın.
Code review ile pull request arasındaki fark nedir?
Pull request, bir değişikliğin birleştirilmesini önermenin mekanizmasıdır. Code review ise o değişikliği inceleme faaliyetidir; genellikle bir pull request içinde gerçekleşir, ancak yüz yüze ya da pair programming ile de yapılabilir.
Yapay zeka insan kod incelemesinin yerini alabilir mi?
Yapay zeka araçları yaygın hataların, stil sorunlarının ve güvenlik risklerinin çoğunu hızlıca yakalayabilir ve giderek daha çok ilk inceleyici olarak kullanılıyor. Ancak bir ekibin hedeflerini, ürün bağlamını ya da tasarım ödünleşimlerini henüz güvenilir biçimde anlamıyorlar; bu yüzden çoğu ekip birleştirmeden önce hâlâ insan onayı şart koşuyor.
İlgili sayfalar
- Pull RequestSürüm Kontrolü, s. 32Pull request, bir branch'teki değişiklikleri başka bir branch'e birleştirme önerisidir; kod birleşmeden önce ekibe inceleme, tartışma ve test alanı sunar.
- BranchSürüm Kontrolü, s. 2Git'te branch, bir özellik ya da düzeltme üzerinde, birleştirene kadar ana kodu etkilemeden çalışmanızı sağlayan bağımsız bir geliştirme hattıdır.
- GitSürüm Kontrolü, s. 10Git, dosyalardaki değişiklikleri zamanla izleyen ücretsiz, açık kaynaklı dağıtık sürüm kontrol sistemidir; iş birliğini ve hataları geri almayı kolaylaştırır.
- CI/CDDevOps ve Bulut, s. 9CI/CD, kod değişikliklerini sık sık derleyen, test eden ve yayınlayan otomatik pratikler bütünüdür; yazılım kullanıcılara hızlı ve güvenli biçimde ulaşır.
- RefactoringYazılım Mimarisi, s. 32Refactoring, mevcut kodun dışarıdan görünen davranışını değiştirmeden daha temiz ve bakımı kolay hâle getirmek için yeniden yapılandırılması sürecidir.
- Teknik BorçYazılım Mimarisi, s. 43Teknik borç, daha uzun sürecek daha iyi bir yaklaşım yerine şimdi hızlı ya da sınırlı bir çözüm seçilmesiyle doğan, gelecekteki ek iş maliyetidir.
- Vibe CodingYapay Zekâ ve Makine Öğrenmesi, s. 48Vibe coding, istediğinizi bir yapay zekâya anlatıp yazdığı kodu kabul ederek ve sonucu çoğunlukla çalışıyor görünmesine göre değerlendirerek yazılım yapmaktır.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin