Tüm Yönleriyle Code Review

Kadri Demir
FLO Teknoloji

--

Yazılım geliştirme süreçlerinin önemli bir adımı olan Code Review, 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. Bu yazı dizimizde Code Review’ın ne olduğundan, nasıl yapılması gerektiğinden ve faydalarından birkaç alt başlıkta bahsedeceğim.

Code Review Hakkında

Code Review herşeyden önce yazılım geliştirme süreçlerinin önemli bir parçasıdır ve aynı zamanda bir yazılım geliştirme kültürünün önemli bir unsurudur. Yazılım geliştirme süreçlerine ve proje kalitesine önem veren ekipler veya firmalar, teknoloji odaklı firmalar Code Review’ın önemini ve faydalarını bilirler. Bu nedenle Code Review zaman içinde bu ekiplerin veya firmaların iş süreçlerinde bir yazılım kültürü halini alır.

Sorunlar & Tespitler

● Tek başına çalışan yazılımcılar; ekip ortamında olmadıklarından; çoğu zaman kodlarını gözden geçirmeden ya da başka kişilere inceletemeden projeye dahil etmek veya canlıya almak zorunda kalırlar. Bu açıdan Full-stack dahi olsa tek bir geliştiricinin elinden çıkmış ve gözden geçirilmemiş kodlarda hata oranı daha yüksek olur.

● Tek başına çalışan ve ekip içerisine dahil olmamış geliştiriciler sonradan bir ekibe katıldıklarında Code Reviewsürecini garipseyebilir, alışamayabilir, yersiz bir zaman kaybı olarak görebilirler. Burada ekiplere; ekip içine katılan üyelerin sürece dahil edilmesi konusunda önemli sorumluluklar düşmektedir.Teknoloji odaklı olmayan şirketler, ekipler ya da tek başına çalışan geliştiriciler Code Review sürecini zaman kaybı olarak görebilirler. İlk bakışta bu işe ayrılan zaman, sonrasındaki düzeltmeler, kodun canlıya çıkma süreci öncesindeki bekleme süresi bir maliyet gibi gözükse de; aslında sonradan çıkacak ve düzeltmesi çok zor ya da maliyeti çok daha yüksek olacak olan hatalar erken aşamada giderilmiş olur. Code Review bu bağlamda gerçek anlamda zaman ve maliyet avantajı sağlaması açısından yazılım geliştirme süreçlerine önemli katkılar yapar.

● Ekip üyeleri gözden geçirme sürecinin dengesini tutturamayabilir, over-engineering yaptıracak yorumlar gelebilir, üslup ve iletişim sorunları yaşayabilir, bu süreçlerde rekabet ve tartışmalar yaşanabilir.. Bu konulara dikkat etmek önemlidir.

● Bu açıdan, “İdeal bir Code Review nasıl olmalıdır?” konusuna ilerleyen bölümlerde/yazılarda girmeye çalışacağım.

● Code Review süreçleri kodların canlıya alınmasını engelleyecek veya süreçleri tıkayacak kadar geciktirilmemeli, zamanında yapılmalı ve yazılım geliştirme sürecinin bir parçası olduğu bilinerek geliştirme süreci içerisinde gerekli zaman ayrılmalı ve önem gösterilmelidir. Aksi halde zamanla engel olarak görülmeye başlanır ve zamanla ekipler terk edilme eğilimine girebilir.

● Kod miktarı az olan geliştirmeler için yapılan Code Review’lar ekip üyeleri tarafından daha detaylı incelenebilir ve bu sayede çok daha fazla yorum alabilir. Çünkü kodun okunması,anlaşılması ve hataların göze batması/yakalanması daha kolay olur. Benzer şekilde ekip içerisinde ortak bir kod stili, bir proje mimarisi -yani kısaca bir kodlama kültürü- varsa ekibin projeyi değerlendirme süreci kolaylaşır ve verimlilik artar. Buna karşın; büyük kod miktarı içeren geliştirmelerde hata yakalamak, detaylı incelemek daha zor olacağından nispeten daha az yorum alır, kodları gözden geçirme eğilimi daha düşük olur. Bu açıdan geliştirmeleri mümkün olduğunda anlamlı küçük parçalar halinde yapmak ve parça parça ilerletmek daha faydalı olacaktır.

● Code Review iç projelerde ekip içerisinde yapılmasına rağmen; açık kaynak projelerde topluluk tarafından yapılabilir. Bu açıdan; ekip içerisinde gerçekleştiremediğimiz bireysel projelerimizi açık kaynak kodlu olarak topluluğa açarak projelerimizi zenginleştirebilir ve projelerimize açık kaynak desteği sağlayabiliriz.

Code Review ile ilgili yazı dizimiz devam edecektir.

--

--