Standart kod incelemesi ne içerir?


19

Şirketimde, hangi özelliğin uygulandığına ve kodu yazan kişi tarafından ne tür bir hatanın düzeltildiğine dair bir e-posta tartışması. Ve postayı alan gözden geçiren, kodu gözden geçirecek ve kodun kalitesini ve kodun nasıl düzenleneceğini tartışacak. Standart kod incelemesi ne içerir?


10
Burada, görünüşe göre, kod incelemeleri için zamanımız yok, ancak ortaya çıkan vidalamalarla başa çıkmak için çok zamanımız var. Keşke şaka yapsaydım.
MetalMikester

Yanıtlar:


12

Deneyimlerime göre, çoğu resmi kod incelemesi stil kontrolüne dönüşüyor çünkü kolay. Bakılacak şeylerin bir kontrol listesini sağlasanız bile, gözlerin camlara başlaması oldukça kolaydır.

Birim testi incelemesinin daha fazla fayda sağladığını gördüm. Birlikte çalıştığım çoğu geliştirici, testin düzgün şekilde nasıl yapılacağını gerçekten bilmiyor ve bir kez "Aha!" kodlarının geri kalanı da gelişmeye başlar. İşte size bir ipucu: Kullanıcının bir şeyi incelemesi gerekiyorsa bu bir birim test değildir ve bir hata ayıklayıcıda çalıştırmak için bir şey başlatırsanız bu bir birim test değildir.


LOL, birim testlerin iyi anlaşılması şart. Ve iyi haber şu ki, testler sadece sağduyudur - anlamaktan daha az zaman alır ... yeni bir dil almak için gereken zaman.
İş

Birim test kapsamı eksikliği olduğunda kendimi bir şeylere karşı titiz buluyorum. Kod incelemesinde birim testleri gördüğümde, ilk gördüğüm yer burası. Birim testlerinin iş gereksinimlerine ve makul kenar durumlarına (uygun olduğunda null olup olmadığını kontrol edin, değer aralıkları üzerinde sınır testi) çarparsa, nit pick değil eğilimindeyim --- bu , küçük şeyleri seçmeniz gerektiği anlamına gelmez . Sadece "kanıt pudingde". İyi yapılandırılmış birim testleri ile tartışmak zor.
Greg Burghardt

6

Sorunun ne olduğuna bağlı olarak değişme eğilimindedir. Çoğu zaman basit bir lastik damgası. "Sorun şuydu, buradaki çizgiye bakın, neyin yanlış gittiği açık ve burada düzelttiğim yer." "Evet, bu oldukça açık. Devam et ve kontrol et."

Ancak daha fazla ilgili bir şey olduğunda, genellikle şöyle devam eder:

  • TortoiseSVN'de Değişiklikleri Kontrol Et'i çalıştırın ve değiştirilen dosyaların bir listesini alın.
  • İncelemeyi ofisinize getirin.
  • Sorunu açıklayın, hata izleme sistemindeki CR referans olarak açık olmalıdır.
  • TortoiseSVN'deki dosyaların listesini aşağı kaydırın ve değişiklikleri görüntülemek için her birini BeyondCompare'de açın .
  • İnceleyen kişi değişiklikleri anlamıyorsa, ne yaptığınızı ve nedenini açıklayın.
  • İnceleyen, iyi görünmeyen bir şey fark edebilir. Öyleyse, değiştirilip değiştirilmeyeceği konusunda anlaşana kadar görüşün. (Basit değişiklikler yapılması gerekiyorsa, dosyayı BeyondCompare içindeki bile düzenleyebilirsiniz.)
  • Herhangi bir değişiklik yaptıysanız, yeniden derleyin ve oluşturulduğundan emin olun!
  • Düzeltmenin gerçekten işe yaradığını gözden geçiren kişiye göstermek için programı çalıştırın.
  • Giriş yapın.

4

IMO, Bir kod incelemesinin özelliklerle veya hatalarla ilgisi yoktur, ancak bunun için yazılmış kodun ve testlerin kalitesine odaklanır.

Yani, durum ne olursa olsun, eşinizin yanına oturun ve kodu açıklamasını veya kodu alıp kodun üzerinden geçmesini sağlayın.

Herkes aynı standartlara göre programladığında ve sürecin bir kısmını otomatikleştirmek için fxCop gibi araçlar kullandığınızda yardımcı olur.


2

Dev inceleme gözden geçiren oturur ve kod satırı üzerinden açıklayan satır geçer kod inceleme tercih. Genellikle, geliştirici, incelemenin henüz görmemiş olabileceği açıklamasını yaparken bir sorun görecektir, bu yüzden bu benim tercihimdir. Ben de kodu gönderilen ve kendi kendime okumak ve yorum yapmak burada kod değerlendirmeleri yapmak, ama bu daha uzun sürüyor eğilimindedir bulmak (Ben yorum ve taslak ve onları okuyan ve gider WTF gider dev için göndermek demek o ve e-postalar beni geri ve açıklarım ve iki ya da üç tur sonra bir araya geldik ve ekranda ne demek istediğimi ve geliştiricinin "oh evet şimdi görüyorum." dediğine dikkat çekiyorum ve daha az gerçek tartışma olduğu için daha az üretken ve daha fazla, "Bunu yanlış yaptın."

Bir kod incelemesinde standartları uygulamak da önemlidir, ancak bunları tek odak noktası haline getirmek değil.

Ancak, kod inceleyici mutlu veya yönetici (dev değil) onu geçersiz kılınana kadar kod üretime gönderilmez (kod gözden geçirenler de yanlış). Bu, kritiktir veya kod incelemesi, kod inceleyicinin itilmeden önce son kodu onaylaması gerekmediği sürece, katma değeri olmayan bürokratik bir süreçtir.


Ben her zaman inceleme geribildirim ile ne yaptığını dev olmasını öneririz. İnceleyen kişi mutlaka en iyisini bilmez ve anlaşma zorunlu olduğunda, inceleyen kişiyi eğitmek için biraz zaman ayırmanız gerekebilir. Yine de bir kıdemli / lider geliştirici tarafından son bir 'entegrasyon' kontrolü düşünün.
Joppe

0

Öncelikle kodlama standartlarına sahip olmanız gerekir ve bunlar sadece sözdiziminden daha fazlasıdır. Kişiler şirketinizde çalışmaya başladığında, kodlamaya başlamadan önce şirketinizin kurallarını mümkün olduğunca öğrenmelidir . İnceleme sürecinde her türlü ihlal bulunursa, büyük olasılıkla:

  • zaman kısıtlamaları nedeniyle düzeltilmedi
  • kuralların değerinden daha sinir bozucu bulundu

Kurallar mantıklı olmalı ve ihlalleri bulmak ve mümkün olduğunca kolay bir şekilde yeniden düzenleme yapmak için uygun araçlara sahip olmalıdır. Daima kuralların amacına ve kod incelemesine bakın

Aklımdaki amaç, kodu olabildiğince düzgün hale getirmek ve sürdürülebilirlik ve okunabilirlik ile ilgili sorunları bulmaktır. İkincil hedef, belirli bir yazılımla daha fazla insanı hızlandırmaktır.

Aklımdaki yönergeler örneğin:

  • genel sözdizimi ve kodlama yönergeleri (önceden var olanı seçin ve otomatik olarak kontrol eden araçları kullanın)
  • Uygun istisna yönetimi
  • Doğru günlük kaydı
  • Dil için paradigmaların iyi kullanımı (OO dilleri için SOLID)
  • Bileşenler arasındaki açık ve iyi düşünülmüş bağımlılıklar (NDepend gibi araçları kullanın)
  • Çalışma betiği
  • Mevcut belgeler (geliştirici başlangıcı, kurulum kılavuzu)
  • kullanılacak dahili kütüphaneler
  • şirket politikaları
  • izin verilmeyen üçüncü taraf takımlar
  • Mevcut ve başarısız olmayan birim testleri
  • % 90 kod kapsamı
  • ...

Bu durumda kod incelemesi, kurallara göre kontrol edilen yazılımdan oluşur ve:

  • ihlalleri programcı ile tartışmak
  • gereksiz ihlalleri düzeltmek
  • gerekli ihlalleri yorumla
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.