Kod incelemelerini kimler yapmalı?


12

Şirketimde mimar kod incelemeleri yapıyor. Çok deneyimli ve akıllı bir yazılım adamı, bu yüzden çok iyi. Geliştiriciler kod incelemelerini yaptığında bunu yarıya kadar yapmazlar. Geliştiricilere daha fazla kod incelemesi yapmayı denedik, ancak kod incelemelerinin kalitesi iyi değildi. Scrum'ı geliştirme metodolojisi olarak kullanıyoruz.

Ancak mevcut sistemde iki sorun vardır:

  1. Mimar bir darboğaz olur

  2. Geliştiriciler, kodun ve mimarinin (her türlü soruna yol açan) kalitesinden sorumlu değildir.

Bu sorunları nasıl çözebiliriz? Kodu kimin gözden geçirdiğini değiştirmeli miyiz?



1
Bunu bir kopya olarak görmüyorum. Sorular birbiriyle ilişkilidir, ancak olası tekrarlar biraz farklı konulara odaklanmaktadır.
Bart van Ingen Schenau

'Kod incelemelerinin kalitesi' ile ne demek istediğinizi genişletebilir misiniz? İncelemenin sonunda ortaya çıkan kodun kalitesini mi kastediyorsunuz? Bana sadece kabul edilebilir kalitede kod üretebilen bir geliştiriciniz var gibi geliyor, bu durumda daha büyük sorunlarınız olduğunu söyleyebilirim ...
AakashM

Yanıtlar:


15

Geliştiriciler kod incelemeleri yapmalıdır. Kod incelemeleri yapmalıdırlar, çünkü kodu, şirket tarzı standartlarını ve uygulamalarını bilmelidirler. Başka birinin kod incelemeleri yapmasını sağlayarak geliştiricilere, kodun şirket standartlarını karşıladığından emin olmanın kendi sorumluluğu olmadığını söylüyorsunuz.

Kod incelemeleri yapmak için eğitime ihtiyaçları olduğunu düşünüyorsanız, onlar için alın. Mevcut durumunuz göz önüne alındığında, bir geliştiricinin kod incelemesini yapmasını sağlayabilir ve daha sonra bunu mimarınız tarafından yorum yapabilirsiniz - geliştiriciye göndericiye göndermeden önce incelemeyi onay için göndermesini isteyebilirsiniz.


2
" Bir başkasının kod incelemeleri yapmasını sağlayarak, geliştiricilerinize kodun şirket standartlarını karşıladığından emin olmanın onların sorumluluğu olmadığını söylüyorsunuz. " - evet ve hayır. Ayrıca, "Kodunuz (umarım) kritik akran incelemesine tabidir , bu yüzden ilk seferinde doğru yapmanız daha iyi olur."
JensG

@JensG: ama OP'nin durumunda incelemeyi yapan bir akran değil.
jmoreno

3
Bu yüzden cesur yaptım.
JensG

8

Bu durumda, ihtiyacınız olan şey bu deneyimli geliştiricinin bilgisinin ekibin geri kalanının büyümesine yardımcı olması içindir. Bir takımın kalitesi en iyi geliştiricinin becerileri ile tanımlanmaz; en kötünün becerileri ile tanımlanır. Şunlar gibi deneyebilirsiniz:

  • Ortak incelemeler. Bu son takımımda gerçekten çok işe yaradı. Tüm ekibi projektörlü bir odaya koyduk ve bazı öğeleri incelemeye başladık. Belki de başlangıçta mimar incelemeye rehberlik eder, ancak birkaç haftada (her Cuma bir veya iki saat ayırdık) tüm ekip konuşmaya ve şu anda sadece mimarın bildiği temel kavramları anlamaya başlar.

  • Çiftler programı. Benim için bu, bir takımda bilgi yaymak için en iyi araçtır.


Çift programlama için +1. Aslında, bu soruyla ilgili ilk düşüncem "herkes" idi, ancak çift programlama daha iyi çiviler. Kalite yönünün yanı sıra bir öğrenme kaynağı yaparsak, bundan en iyi şekilde yararlandığımızı düşünüyorum.
JensG

3

Sistem / yazılım mimarı tüm değişiklikleri / taahhütleri imzalama noktasını görebiliyor olsam da, yazılım geliştiricileri, tahkim hariç, mimarı dahil etmeden incelemeler yapabilmelidir.

Tercih ettiğim [*] inceleme prosedürlerim:

  • Değişiklikleri gereksinime / konuya göre gruplandırın.
  • Tüm geliştiricileri, yazılım mimarı ve gereksinimi / sayının yazarını incelemeye davet edin. (Hepsi değil gerekli bir inceleme yapmak.)
  • Aşağıdaki durumlarda tamamlanmış bir incelemeyi düşünün:
    • İki geliştirici gözden geçirdi.
    • Tüm yorumlar yanıtlandı. (Muhtemelen yazılım mimarının karar vermesini sağlayarak.)
    • Bir iş günü daha fazla tartışılmadan geçti (veya davet edilen tüm taraflar incelendi).

Sorunuza kısa cevabım şudur: Geliştiriciler yorumları değiştirmelidir.

[*] Ne yazık ki katıldığım projeler her zaman böyle işlemiyor.


şimdi her zaman, ya da her zaman değil ?
Martijn

Tahmin edebileceğiniz gibi: "her zaman değil". Tespit ettiğiniz için teşekkürler. Cevabı düzelttim.
Jacob Sparre Andersen

3

Tüm ekibi mimarları içeren ara sıra takım kodu incelemelerinin uygulamasını seviyorum, ancak takımın iki veya üç üyesi arasında çok sayıda ve çok sayıda kod incelemesi yapmayı seviyorum.

Gerçekten zor veya hassas bir kodsa, mimarı veya ekibin kıdemli üyelerini kaydedin.

Dürüst olmak gerekirse, bir mimarın kod incelemeleri yapması saçma geliyor. Uzmanlığını paylaşmak için tasarım incelemeleri veya ara sıra kod incelemeleri yapmalıdır. Mühendislik ekibi kodun sorumluluğunu almalıdır. Sorunlar varsa, zamanla daha iyi olacaklar.


2

Kabul ediyorum, sadece bir kişi yorum yaparsa, geri kalanlar muhtemelen "Bilmiyorum, işe yarıyor gibi görünüyor, ama akıllı adamın iyi olup olmadığını anlamasına izin ver" ile gidecek. Aşağıdakileri düşünebilirim:

  • herkesin herkesin ne üzerinde çalıştığını görebilmesi için kodunuzu herkese açık hale getirin; kod içeren her dosyanın başına ad koymak; belki onları yazdırın ve, banyoda ya da bazı gözlere yakalayacağınızı hissettiğiniz her yere damgalayın
  • çiftler programı; yanınızda başka bir beyin varsa, değişkeninizi adlandırmadan önce iki kez düşüneceksiniz.i
  • hademeni al ve ona bu mirasın nasıl çalıştığını açıkla (oh, evet, işe yaramıyor). Kodunuzu başkasına açıklamak yardımcı olur. Belki derler, belki doğru şeyleri yapar, ama nedenini gerçekten anlamadınız. Şimdi senin şansın
  • bir dizi yönergeye sahip olun ve herkesin bunları takip etmesini sağlayın; Kılavuz ne olursa olsun, kılavuz olmamaktan daha iyidir
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.