Yazılımın Kalitesini Geliştiren Süreç: Kod Incelemesi

Sevda Gül Baran
TurkNet Technology
Published in
5 min readFeb 16, 2024

Selamlar, yazılım geliştirme süreçlerinin önemli bir adımı olan Kod İncelemesi(Code Review) konusunu derinlemesine ele alacağımız bir yazıyla karşınızdayım. Nedir sorusuna cevap vermek ile başlayabiliriz..

Desing by YKK.

Kod İncelemesi Nedir?

Kod İncelemesi, projeler kapsamında yapılan yeni geliştirmelerin veya düzeltmelerin projeye kabul edilmeden önce; yazılım ekibi tarafından incelenmesi, kontrol edilmesi ve gözden geçirilmesi sürecidir.

Etkili bir kod incelemesi, sadece hataları ve güvenlik açıklarını tespit etmekle kalmaz, aynı zamanda geliştirme ekipleri arasında işbirliğini ve sürekli iyileştirmeyi teşvik eder. Bu şekilde, kod incelemesi sadece yazılımın kalitesini artırmakla kalmaz, aynı zamanda geliştirme sürecinin verimliliğini ve etkinliğini artırır.

Bu süreçte dikkat edilmesi gereken bazı önemli konular bulunmaktadır. İşte bu konuları başlıklar halinde irdeleyelim:

1. Net Hedeflerle Başlayın

Kod incelemesine başlamadan önce net hedefler belirlemek önemlidir. Bu hedefler, inceleme sürecinde odaklanılması gereken konuları belirleyerek hem incelemeyi yapanları hem de yazanları yönlendirir. Hata tespiti mi yapıyorsunuz, kodlama standartlarına uygunluğu mu sağlıyorsunuz yoksa performansı mı değerlendiriyorsunuz? Bu hedeflerin açıkça tanımlanması, inceleme sürecini daha verimli ve etkili hale getirir.

Ekibinizle bir araya gelerek, inceleme sürecinde dikkat edilmesi gereken konuları belirleyebilir ve ortak bir anlayış oluşturabilirsiniz. Bu, herkesin aynı hedefe odaklanmasını ve kodun daha derinlemesine ve tutarlı bir şekilde incelenmesini sağlar. Bu şekilde, daha sağlam ve kaliteli bir kod üretme süreci oluşturabilirsiniz.

2. İncelemeleri Küçük ve Odaklı Tutun

İnceleme sürecini daha küçük ve odaklanmış parçalara bölmek, yönetimi kolaylaştırır ve daha doğru geri bildirim sağlar. Büyük kod parçalarını aynı anda incelemekten kaçının; çünkü bu, gözetime ve yorgunluğa yol açabilir. Daha küçük ve odaklanmış incelemeler, geliştiricilerin daha verimli bir şekilde işbirliği yapmasını sağlar ve kodun kalitesini artırır. Bu nedenle, inceleme sürecini parçalara ayırarak, her bir incelemenin daha etkili olmasını sağlayabilirsiniz.

3. Saygılı ve Yapıcı Olun

Kod incelemesi, yargılayıcı bir platform değil, işbirliğine dayalı bir çabadır. Saygılı bir üslup kullanarak yapıcı geri bildirimde bulunmak önemlidir. İşbirliği ve öğrenme odaklı bir yaklaşım benimsemeli ve geliştiricilerin motivasyonunu düşürmek yerine, öğrenmeye ve gelişmeye teşvik etmelisiniz.

Olumlu bir kod inceleme kültürünü teşvik etmek için, saygı, empati ve yapıcı geri bildirimi vurgulayan yönergeler oluşturmalısınız. Geliştiricileri, kod incelemelerini yeteneklerinin eleştirisi olarak değil, büyüme ve bilgi paylaşımı fırsatları olarak görmeye teşvik etmelisiniz. Bu şekilde, kod incelemesi süreci daha verimli ve etkili hale gelir.

4. Aktif Katılımı Teşvik Edin ve İnceleyenleri Düzenli Olarak Değiştirin

Kod incelemeleri, proje boyutundan veya ekip büyüklüğünden bağımsız olarak önemlidir. Bu incelemeler, geliştirici sayısından bağımsız olarak yapılabilir. Tüm ekip üyelerinin aktif katılımını teşvik ederek kod incelemelerini bir ekip çalışması haline getirin. Ekip ile birlikte farklı bakış açılarına, sorunların erken tespitine ve bilgi alışverişine olanak tanır. Bu işbirliğine dayalı yaklaşım, kapsamlı değerlendirmeler sağlayarak daha yüksek kalitede kod ve gelişmiş ekip çalışmasına yol açar.

Kod incelemelerinde sık karşılaşılan bir zorluk, sürekli olarak aynı kişilere güvenmektir. Bu durum küçük ekiplerde daha belirgin olabilir. Rotasyon sistemini uygulayarak farklı ekip üyelerinin inceleme sürecine katılmasını sağlarsınız. Çapraz öğrenmeyi teşvik etmek ve çok yönlü bir inceleme süreci oluşturmak için çeşitli beceri gruplarına ve deneyim düzeylerine sahip geliştiricileri sürece dahil edin. Bu yaklaşım darboğazları önler, yeni bakış açıları getirir ve farklı içgörüler sunar. Düzenli aralıklarla gözden geçirenler iş yükünün dağıtılmasına yardımcı olur ve kod inceleme sürecine aktif katılımı teşvik eder.

5. İşbirlikçi Pair Programlama

Pair programlama, hataların azaltılması ve yüksek kaliteli kod üretimi de dahil olmak üzere çok sayıda fayda sağlayan oldukça etkili bir yazılım geliştirme tekniğidir. İki geliştiricinin birlikte çalışması sayesinde birbirlerinin hatalarını hızla yakalayıp düzeltebilirler. Bu işbirliğine dayalı yaklaşım, kod incelemesini geliştirir ve nihai üründe daha yüksek düzeyde doğruluk ve sağlamlık sağlar.

Pair programlama, deneyimli bir geliştiriciyi yeni başlayan bir geliştiriciyle eşleştirerek daha hızlı öğrenme sürecini kolaylaştırır ve bilgi aktarımını hızlandırır. Bu, yeni ekip üyelerinin projeye veya şirket kültürüne daha hızlı adapte olmalarını ve etkili bir şekilde katkıda bulunmalarını sağlar.

TurkNet içerisinde Giga Buddy uygulaması sayesinde, bana rehberlik eden Buddy’imin destekleri çok değerli oldu.❤

6. Bağlamı Anlayın

Bağlamı anlamak, kodunuzun yazılma amacını, hangi sorunu çözmeyi amaçladığını ve projenin genel yapısına nasıl uyduğunu anlamak anlamına gelir. Bağlamsal anlayış, kod inceleyenlere daha değerli ve ilgili geri bildirimler sağlar.

Örneğin, bir değişiklik kod tabanındaki bir hata düzeltmesi ise, bu hata nasıl ortaya çıktı, nasıl bir etki yaptı ve bu değişiklikle nasıl gideriliyor, gibi soruların cevapları önemlidir. Eğer yeni bir özellik ekleniyorsa, bu özelliğin neden gerekli olduğu, nasıl çalıştığı ve projenin genel amacına nasıl katkıda bulunduğu anlaşılmalıdır.

Bağlamı anlamak, kod değişikliklerinin projenin büyük resmi içinde nasıl yer aldığını ve proje hedeflerine nasıl katkıda bulunduğunu görmek için önemlidir. Bu, hem kodun daha iyi anlaşılmasını sağlar hem de daha etkili ve verimli bir kod inceleme süreci sunar.

7. Kodlama Standartlarını Takip Edin

Kodlama standartları, bir yazılım ekibinin benimsediği ve uyguladığı belirli kurallar ve prensiplerdir. Bu standartlar, kodun okunabilirliğini, sürdürülebilirliğini ve uyumluluğunu artırarak yazılım geliştirme sürecini iyileştirir. Kodlama standartlarından bazıları şunları içerir:

  • Adlandırma Kuralları: Değişkenler, fonksiyonlar, sınıflar ve diğer kod öğeleri için kullanılan isimlendirme kuralları. Örneğin, değişkenler için camelCase veya sınıflar için PascalCase kullanımı.
  • Girinti ve Biçimlendirme: Kod bloklarının nasıl girintileneceği, boşlukların nasıl kullanılacağı ve kodun genel biçimi gibi konuları kapsar.
  • Belgeleme: Kodun anlaşılmasını ve kullanılmasını kolaylaştırmak için yapılan açıklamalar ve belgeler.
  • Dosya ve Sınıf Yapısı: Dosya ve sınıf düzenlemesi, modül ve paketlerin nasıl organize edileceği gibi konuları içerir.
  • Standart Kütüphane Kullanımı: Dilin standart kütüphanesini nasıl kullanılacağına ilişkin kurallar.

Standardize edildiği takdirde, kodun bakımını ve geliştirilmesini kolaylaştırır. Bir ekibin kodlama standartlarına uyması, genellikle daha iyi bir kod kalitesi ve proje başarısıyla sonuçlanır.

8. Kodun Okunabilirliğini Düşünün

Okunabilir kodun bakımı ve anlaşılması daha kolaydır. Daha iyi okunabilirlik için yeniden düzenlenebilecek uzun ve karmaşık kod bloklarını, aşırı yorumları veya karmaşık mantığı arayın. Yazılım camiasında popüler olan SOLID ve YAGNI gibi prensipleri ekip içinde benimsemek önemlidir. Bu prensipleri takip etmek, kodun daha okunabilir ve daha sürdürülebilir olmasına yardımcı olabilir.

SOLID Prensiplerini konu aldığım yazıma buradan ulaşabilirsiniz.

9. Modülerliği ve Yeniden Kullanılabilirliği Teşvik Edin

Modülerlik ve yeniden kullanılabilirlik, yazılım geliştirme sürecinde önemli bir role sahiptir. Bu prensipleri uygulamak, kodunuzu daha organize, anlaşılır ve bakımı daha kolay hale getirir.

Modülerlik, büyük ve karmaşık yazılım sistemlerini daha küçük ve yönetilebilir parçalara bölmeyi gerektirir. Bu parçalar, birbiriyle bağımsız olarak geliştirilebilir, test edilebilir ve sürdürülebilir olmalıdır.

Yeniden kullanılabilirlik, kodunuzu farklı projeler veya kısımlar arasında tekrar kullanmayı kolaylaştırmayı hedefler. Bu, benzer işlevleri gerçekleştiren kod parçalarını ayrı birimler halinde düzenlemeyi ve kütüphaneler kullanmayı içerir. Böylece, aynı işlevselliği farklı projelerde veya kısımlarda tekrar yazmak zorunda kalmazsınız.

Bu, kodun sürdürülebilirliğini(maintainability) artırır ve yedekliliği (reduces redundancy) azaltır.

10. Açık Belgeler Sağlayın

İnceleme kurallarınızı ve önerilerinizi kapsamlı bir şekilde belgeleyin. Bu belge, geliştirici için bir referans görevi görür ve ekip arasında bilgi paylaşımına yardımcı olur. Ortak bir dilde konuşabilmek için guidline oluşturulabilir; projeye sonradan dahil olan geliştiriciler için de yol gösterici olacaktır.

Örnek olarak Kodeco’nun hazırladığı Swift Style Guidline’ı inceleyebilirsiniz. Bir çok programlama dilinin yer aldığı Google Style Guidlene da bakmanızı tavsiye ederim.

Bu yazımda Kod İncelemeleri konusunu işledik. Yazım hakkında feedback vermek isterseniz sevdagulbaran@gmail.com’ dan ulaşabilirsiniz.

Sizler için de faydalı olması dileğiyle..✨

--

--