Kod İnceleme ne zaman yapılır


15

Kısa bir süre önce bir scrum sürecine geçtik ve sprintlerin içindeki görevler ve kullanıcı hikayeleri üzerinde çalışıyoruz. Daha az göz korkutucu hale getirmek için kod incelemelerini sık sık yapmak istiyoruz. Bunları bir kullanıcı hikayesi düzeyinde yapmayı düşünüyoruz, ancak bunu hesaba katmak için kodumuzu nasıl şekillendireceğimizden emin değiliz.

VS ve TFS 2010 kullanıyoruz ve 6 kişilik bir ekibiz.

Şu anda özellikler için şubeliyiz ancak scrum için dallamaya geçmeye çalışıyoruz.

Şu anda raf kümeleri kullanmıyoruz ve başka teknikler varsa gerçekten uygulamak istemiyoruz.

Kullanıcı hikayesi başına kod incelemesini uygulamayı nasıl öneriyoruz?

Yanıtlar:


3

Kullanıcı öykülerinin doğasına bağlıdır.

Her kullanıcı hikayesi için bir şube oluşturmak etkili olabilir, farklı hikayelerdeki ilerleme görülebilir, ihtiyaç duyulursa etrafından geçilebilir, hikayeler sprint'te tamamlanmazsa ilerleme sonraki sprint için dalda kalabilir . Son incelemeler daha sonra kullanım öyküsü dalında bir kullanıcı öyküsünün sonunda gerçekleştirilebilir ve kod standartlara uygunsa birleştirilebilir.

Bu şekilde çalışabilmek için bir sprint sonunda yönetilemeyen birleştirme görevlerini önlemek için hikayelerin ince taneli olması gerekir. Küçük hikayeler, diğer kullanıcı hikayeleri üzerinde çalışan geliştiricilerin sürekli olarak (temel VCM) çekmesi gereken sprint aracılığıyla geliştirici dalının düzenli olarak güncellenmesine izin verecektir.

Bu, bazı durumlarda otomasyon senaryoları ile çözülebilen şubeleri sürekli olarak oluşturmak ve birleştirmek zorunda olan süreç ek yükleri yaratır, ancak ekibin hala VCS ile çok rahat olması gerekir.

Bir sprint sonunda geliştirici dalınızı entegrasyon / üretim vb.

Ayrıca herkesin bir dev dalında çalıştığı ekiplerde çalıştım, bir kullanıcı hikayesini tamamladıktan sonra kod inceleme ve test için o şubeye itilir ve birisi dev yapısını bozan bir şey iterse, takım biralarını almak zorunda kalırlar.


13

Kodu gözden geçirmenin en etkili yolu, ayağa kalkmak, birini bulmak ve gelip kodu yeni oluşturduğunuz kodu tartışmaktır.

Kodunuzu yerel olarak inceleyecek birini bulamadığınız sürece bir araç kullanmayın.

Eşleştirerek kod incelemelerini tamamen önleyebilirsiniz.


Birinin eşleştirmeden ne zaman bahsedeceğini merak ediyordum. Bu ve birim testi arasında çok fazla inceleme alırsınız.
JeffO

Bunu "ayağa kalk, birini kov ve gelip yeni geliştirdiğin kodu tartışmalarını" olarak okudum. Günümü yaptığın için teşekkürler.
Will Morgan

4

Takımdaki herkes yerel mi? Öyleyse, kod teslim edilmeden önce birisinden gelip bir göz atmasını isteyin. Yerel değil mi? En sevdiğiniz ekran paylaşım programını başlatın ve birini arayın. Ben şahsen bunu sık sık yaparım. Bazen sadece "Hey, bak ne yaptım!"

Bu ad-hoc kod incelemeleri tarzını, birisinin ayakta kaldığı ve kodunu ekibe sunduğu stile tercih ederim. Ad-hoc incelemeleri, gariplik olmadan eşleştirmenin birçok faydasını (hepsi?) Verebilir. Ayrıca, "gözden geçirenin" soru sorma ve resmi olmayan bire bir ortamda iyileştirme önerme olasılığı daha yüksektir.


1

Kod incelemesinin SCRUM'un resmi bir parçası olmadığına inanıyorum, ancak revizyonlar kaliteye ulaşmak ve projelerinizi / ekibinizi geliştirmek için bağımsız bir taktiktir.

Bu nedenle, PROJE kalitesini sağlamak / geliştirmek ve programa uymak için SCRUM (veya başka bir çevik geliştirme metodolojisi) kullanırsınız. Ayrıca, iyi bir taktik, normal KG / test görevlerinizden bağımsız olarak ürün revizyonu (kod değil) yapmaktır. Bu etkinlik ekibinizin / ortaklarınızın / müşterilerinizin / kitlenizin önünde yapılabilirse daha iyi olacaktır.

Kodunuzu (veya diğer spesifik) revizyonları esas olarak TAKIM'ınızı iyileştirmek için sonuçları orta / uzun vadede beklemeniz gerekir. Bu, PROJELERİNİZİ etkiler, ancak uzun vadede TAKIM iyileştirmenizin bir ürünü olarak.

Yani, sorunuzu cevaplamak için, SCRUM'dan çok fazla zorlamaya çalıştığınıza inanıyorum ve revizyonları sadece olduğu gibi düşünmelisiniz.


Scrum, programla ilgili hiçbir şey söylemez veya önermez. Düzenli olarak değer vermenizi bekler. Ayrıca sürecinizi daha iyi olabilmek için inceleyebileceğiniz ve uyarlayabileceğiniz anlar sağlar (daha hızlı olması gerekmez).
Ryan Cromwell

Evet, Scrum tam bir program hazırladığını belirtmez. Yine de, ben planlamaya atıfta bulunduğumda "planlama" anlamına geliyordu, planlama müşterinizin belirli bir zamanda bir değer beklediği anlamına geliyor, bu yüzden para v / s değeri arasındaki değişimi gerçekleştirebilirler (eğer geliştirme / programlama hizmetleri sağladığınızı düşünüyorsanız) ).
Ron-Damon

Bu bağlamda, müşterinizin belirli bir zamanda (örneğin size ödeme yapmak için) harcayacak bir bütçesi olmalı ve buna katılacak bir programı olabilir. Hizmet sağlayıcı olarak çalışıyorum, bu yüzden bu gerçeği bir kenara bırakamam.
Ron-Damon

Sözleşmeler bir yana, Scrum ekipleri hizmet değil değer sunar. Bu değeri sağlamak için bir araç olarak geliştiriyoruz / programlıyoruz.
Ryan Cromwell

"Değer" ve "hizmet" arkadaşını ayırabileceğine inanmıyorum. Ayrıca bunun çok konu dışı olduğuna inanıyorum.
Ron-Damon

0

Kodunuzu kontrol etmeden önce kod incelemeleri yapmak açık değil mi?

TFS, GIT gibi çalışmaz, bu nedenle bir şubeye veya gövdeye kodu her kontrol ettiğinizde herkes için kullanılabilir.

Bu, incelemenin check-in sırasında yapılması gerektiği için kötü değişikliklerin çalışan kopyalara yayılmayacağı anlamına gelir.


Genel olarak, birim değişikliklerin kötü değişiklikleri önleyecek olduğunu düşünüyorum.
John Saunders

@John Saunders: Kod incelemelerini başka bir tür birim testi olarak düşünün.
Gilbert Le Blanc

@Gilbert: Bunu yapabilirdim, ama sonra regresyon testi için faydalarını elde edemezdim. Daha fazla ve daha iyi birim testleri yazmaya zaman ayırmayı tercih ederim.
John Saunders

John Saunders, @ Gilbert Le Blanc kod incelemeleri başka bir geliştirici tarafından yapılır, birim testi genellikle orijinal geliştirici tarafından yapılır, yeni perspektif hayati olabilir.

Birim testleri (test listeleri önceden kararlaştırılmıştır) ve otomatik kod analizi, muhtemelen StyleCop gibi bir stil analiz aracı ile birlikte iyi şanslar yaşadım. Ama sonra, genellikle küçük geliştiricilerle çalışmıyorum.
John Saunders
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.