Kod incelemelerinde olumlu yorumlar almak uygun mudur yoksa yalnızca yapıcı eleştiri için mi?


36

Son zamanlarda çok sayıda kod incelemesi yapıyorum ve kod incelemelerine olumlu ve / veya komik yorumlar getirmenin olumlu ve olumsuz etkilerinden ve profesyonelliğinden emin değilim.

Takımımda kod inceleme platformu olarak Github kullanıyoruz, bu yüzden yorumlar herkes tarafından görülebiliyor. Genel olarak bu platformu kullanmaya çalışırım, böylece baştan sona tüm süreç görünür ve tarihseldir.


Evet, bunun büyük oranda kültürle ilgisi olduğunu biliyorum, ancak genel bir cevap arıyorum.
Codeman

22
Olumlu yorumlarla görmek istediklerinizi güçlendirmek önemlidir.

2
Uygun olup olmadığını bilmiyorum ama bazen incelemelerde kodlama haikus yazıyorum: junior programcı - sizin uncommented kodunuz - sanki ağrı parçalayıcılar.
yannis,

Aslında ben kıdemli programcının kodunu inceleyen programcıyım - burada oldukça titiz bir sürecimiz var, tüm kodlar gözden geçirilmeli :)
Codeman

Yanıtlar:


53

Olumsuz olduğu kadar pozitifleri de vurgulamak önemlidir. Belirli bir cehennem alt sisteminin refactorünü temiz ve temiz bir şeyle inceliyor olsaydım, muhtemelen programcıya çabaları için bir pizza alırdım.

İncelemeleri eğitim olarak kullanıyorsanız, iki kat daha önemlidir - iyi bir kod parçasını vurgulamak, küçük programcılar için de bu kodu gözden geçirmede yardımcı olacaktır. Belirli bir yaklaşımın veya tekniğin neden diğerinden daha iyi olduğu hakkında soru sorma şansları olacak.


"Neden önemli" olarak bir not ekleyebilir misiniz? Bunu yaptığınızda kabul edilmiş olarak işaretleyeceğim :)
Codeman

3
İnsanların yaptıkları şeyin (iyi kod yazma) takdir edildiğini bilmesini sağlar ve büyümeye odaklanmayı sürdürür; bu, kod incelemelerinin neyle ilgili olduğu ile ilgilidir.
Jonathan Rich

1
Bunu cevabına ekler misin?
Codeman

2
+1 bunun için güzel bir cevap rozeti hak ediyorsun. Yapıcı eleştiriye yeterince değer vermeyen yerlerin sayısı her zaman beni şaşırtıyor. İnsanlara, iyi bir iş yaparken iyi bir iş yaptıklarını söylemek şaşırtıcı derecede etkili bir motivasyon olabilir.
Benjamin Gruenbaum

@Benjamin: Çok fazla sayıda kurum kod incelemesini 'herkesin kodladığı kusurları bul' lastik damgalama işlemi olarak görüyor ve 'yüksek performanslı bir ekip oluşturmaya izin vermiyor' olarak değerlendirdi. Tecrübelerime göre, kod incelemeleri, yazılım ekiplerinin gerçekten performans göstermesini engelleyen engelleri aşmanın en hızlı ve en iyi yoludur. Yorumların önüne +2 (düzeltilmesi gerekir) olsa da +2 (harika iş) önekini verdiğimiz bir standartımız var.
mattnz

8

Komik: Minimal dozlar dışında, su soğutucusu için saklayın - budama yüzüne sahip olmak kodu gözden geçirmek için bir gereklilik değildir.

Olumlu: Kesinlikle. İnceleme, tanımı gereği hem olumlu hem de olumsuz / yapıcı içerir.

Olumlu geri bildirim herkese yardımcı olur:

Başparmakları kabul eden için, onların güvenlerini pekiştiriyor ve olumlu geri bildirimlerinizle aynı şeyleri yapmalarını teşvik ediyorsunuz.

Diğerleri de söylediğim gibi geri kalanı için, onlar öğreneceksiniz ne yapacağını , hem de neyi yapmak değil . Aynı zamanda üstün olmaları için teşvik edilecekler, bu yüzden onlar da bir gün spot ışığında olabilir.

Bir keresinde, olumlu geri bildirimlerinde liberal olan bir patron için çalıştım - sonuç olarak takım çok başarılı ve verimli geçti. Yoluna devam etti ve başkaları, iyi bir işi övmek için yeteneğinden mahrum kaldı. Verimlilik ve moral hızla ilerliyordu ve daha iyi ekip üyelerinin birçoğu şirketten ayrıldı.


3

Tam olarak kültürden dolayı yorumları temiz ve açık tutmaya devam ediyorum.

Bazı insanların işleri yanlış yitirmelerini önleyemezsiniz.
Bunu azaltmak için, kişisel bire bir konuşma, yüz yüze mümkün olmadığında, sohbet, e-posta veya skype gibi şeyleri sorunsuz hale getirir.


1
İyi bir nokta. Yorum yaparken "komik" olmak, özellikle çok dilli, çok kültürlü ortamlarda kolayca geri tepebilir.
David Navarre

2

Bir kod incelemesinde yorum yapmak yönetiyor

Yorumları bir yönetim aracı olarak kullanın

Yorumların kod incelemesine eklenmesi bir yönetim şeklidir. Bu nedenle, bir yönetim aracı olarak ele alınmalıdır.

Yorum yaparken yönetimsel uygulamaları kullanın

Amacın istenen sonucu elde etmek olduğu insanları yönetecek bir yapı var. Yönetime olan temel yaklaşımlardan bazıları yorumlarda uygulanmayacak, çoğu uygulanacaktır. Uygulanabilir konular çevre, liderlik, organizasyon ve kontrol içerir.

çevre

Kültür

Çevre yönetim tarzını belirler. Herhangi bir yönetim aracı kullanıldığında işyerinin kültürü ve çevresi akılda tutulmalıdır. Genellikle bu, sektörden ve yönetilen şirketin veya işletmenin büyüklüğünden etkilenir.

stil

Aydınlatılmış bir kültür varsa, o zaman kullanılan yönetim tarzında ortaya çıkabilir. Çok katı kurallar, politikalar ve sonuçlar varsa o zaman kullanılan stile yansıtılmalıdır. Bu yüzden eğer herkes bir yıldız savaşı için gemide şaka yapıyorsa, droidlere atıfta bulunma ve zayıf fikirli bir fırtınalı oyuncu, o zaman bir komedi müdahalesi uygulanabilir. Ancak, nihai sonucu ciddiye almamanın korkunç sonuçları varsa, bundan kaçınılması gerekebilir.

Liderlik

Temelleri

Yorum yaparken göz önünde bulundurulması gereken üç ana liderlik sütunu vardır. Yani onlar vizyon, iletişim ve yargıdır.

Vision

Talimatları açıklarken veya verirken büyük vizyonun ne zaman akılda tutulması önemlidir. Yorumlarda bu, küçük değişikliklerin projeyi bir bütün olarak nasıl etkilediğine, farklı yaklaşımların ne anlama geldiğinin veya kaygının endişelerin ayrılmasına yönelik bir ipucu olduğuna işaret etmek anlamına gelebilir.

Communication

İyi bir iletişimci olmak, yaşamın birçok alanında önemlidir. Yorumlarda farklı değil. Akıllıca bir kısalık seviyesinin kullanılması önemlidir - çünkü yorumlar çok fazla yer almamalıdır. Hedefe erken gelin ve gerekirse bir örnekle yedekleyin. Daha büyük bir organizasyonda, bu konu bir inceleme oturumunda yerelleştirilmemişse bir tebligat veya not gönderme ihtiyacını da içerebilir.

Judgement

Yorum yapılması gerekip gerekmediği ve değişikliklerin ne olması gerektiğine karar verirken stratejinin kullanılması önemlidir. Yargınızın her zaman doğru olması gerekmez, ancak özellikle büyük yargı çağrıları yapıldığında tutarlı bir şekilde doğru olması gerekir.

düzenleme

Bir yönetim açısından bakıldığında, örgütlenme nihai hedefi akılda tutmak ve süreçlerin bir dizi kurala uyacak şekilde hizalanmasını sağlamak anlamına gelecektir. Yorumlar, tasarım akışının takip edildiğinden emin olmak için mümkün olduğunda yorumların birbirlerine dayanması gerektiğini de unutmamalıdır. Birleşmeyi azaltmak ve genel tasarımı takip etmek için incelenmekte olan kodun kapsamını göz önünde bulundurmak da önemli olacaktır.

Kontrol

Yönetilenlerin eylemlerini kontrol etmek hassas bir süreçtir. Sağlam olmasına rağmen, insanların önemli olduğu akılda tutulmalıdır. Başkalarını kontrol ederken kullanılabilecek çeşitli yönetim becerileri vardır. Bu beceriler politik, kavramsal, kişilerarası, tanısal ve tekniktir.

siyasi

Siyaset, insanlar arasında etkileşim olduğu her zaman bulunabilir. Bu büyük bir konudur, ancak genel olarak politika, etki etrafında dönmektedir. Yorum yaparken işyerinde kişisel ve mesleki politikaları akılda tutmak önemlidir. Bu bir talimat, şaka veya hatta bir soru ile ilgili olabilir.

Kavramsal

Kavramsallaştırma ile idare etmek önemli bir araçtır. Eldeki durumun karmaşık bir analizini gerektirir. Yorum yaparken, incelemede belirtilen sonuca veya değişikliğe ulaşmak için kullanılan analizlerden bazılarını dahil etmek faydalı olabilir.

kişilerarası

Kişilerarası beceriler yönetimde çok önemlidir. Bu aynı zamanda büyük bir konudur. Kişilerarası becerilerde dikkate alınması gereken önemli hususlardan bazıları mentorluk, yapıcı eleştiri ve "zıpkınlama" dır.

Mentoring

Yönetimin bir düşman olarak değil, bir mentor olarak görülmesi önemlidir. Bir kod incelemesinde, bu, bazen bir durumu iyileştirmek için kullanılabilecek bir tasarım modeline veya yaklaşımına bir selam eklemenin yararlı olacağı anlamına gelir.

Constructive Criticism

Eleştiri önemlidir çünkü yansıma gerektirir. Ancak, eleştirinin mümkün olduğu kadar olumlu tutulması gerekir. Bu, eleştiriyi desteklemek için geçerli kanıtlar sunmak ve ayrıca kullanılan tonun olumsuz olmamasını sağlamak anlamına gelir. Kod gözden geçirilirken bu, kodun tamamının değiştirilmesi gerektiğinde yanlış olan her yeri göstermek yerine bir çözüm ima ederken hataya yol açacak bir istisna veya olası senaryo gösterilmesini içerebilir.

"Harpooning"

"Zıpkın", birini yere mecazi olarak zıpkınladığın zamandır. Bu, kalkamadıklarını düşündükleri noktaya kadar herhangi bir geri alma olmadan onları adım adım parçalayarak yapılır. Bir kişiyi kod incelemesinde veya başka bir yerde zıpkırtıyorsanız işbirliğini kaybedersiniz. Birini aşırı derecede parçalamaktan kaçınmak önemlidir.


Yönetici Özeti

Bir kod incelemesindeki yorumları bir yönetim aracı olarak ele alın. Yorumların, konuya açık ve yapıcı olması gerektiğini unutmayın. Ayrıca, yorumda bulunurken, incelenen kişinin dikkate alındığından emin olun.


Kod incelemesi yönetimsel olmamalıdır. Diğer adı iyi bir nedenden dolayı 'PEER incelemesi'. Cevabımla ilgili diğer sorun, kişinin değil, inceleme altındaki kod olması gerektiğidir. Kod incelemesi, kişinin incelemesi olarak değerlendirilirse, 'insanları dövmek' için bir yönetim aracı haline gelmiştir (veya yakında). KPI'larda bir girdi haline geldiğini ve Akranların oynadığı oyunları izle - "Bu kod daha iyi olabilirdi, bir sonraki kod
bırakmamı

@ mattnz - Eşler birbirlerini sıkça yönetir. Dahası, tüm kuruluşlar kesinlikle yukarıdan aşağıya bir hiyerarşi ile çalışmaz, bu durumda akranlar önemli bir yönetim faktörüdür. Bununla birlikte, kod incelemesinin bireyle ilgili olmadığı iddiasıyla ilgileniyorum. Kötü kodlama alışkanlıklarını düzeltmek gerçek rehberlik gerektirir ve bu rehberliğin zarif ve saygılı bir şekilde verilmesi başarılı olması için çok önemlidir.
Travis J

@ mattnz - Ayrıca, hiçbir zaman kod incelemesinin bir kişinin incelemesi olduğunu ima etmediğimi de unutmayın. Kabul ediyorum cevabını burada desteklediğini de kabul ediyorum, aynı zamanda aynı fikirdeyim. Ancak, tuhaf olan şey, cevabın açıkça bireye odaklanmasına, pizza almaya ve şahsen onlara övgüler sunmaya odaklanmasıdır. Bununla ilgili bir sorunum yok, ancak bunun aynı zamanda “kişinin incelemesi” haline gelmediğini nasıl söyleyebilirsiniz? Dürüst olmak gerekirse, bu cevabın sadece ilk ve son cümlesini okumak gibi görünüyor.
Travis J

0

Kod incelemeleri, kısmen hataları açığa çıkararak kod kalitesini yükseltmek için bir araçtır. Daha da önemlisi, iyi kodlama uygulamalarını aşılamak istiyorsunuz.

Bu açıdan bakıldığında, iyi yapılan şeyler hakkında yorum yapmak önemlidir. Eğitim bağlamında, iyileştirmeler de yorumlanmalıdır. Kültürünüz sürekli gelişimden biriyse, iyileştirmeler hakkında her zaman yorum yapmalısınız.

Hatalar, hatalar ve kötü kodlama olacak. Onları kişisel olmayan bir şekilde gösterin ve beklendiği gibi davranın.

Davranışsal bir değişiklik bakış açısına göre, ödül ceza vermekten çok değişiklik üretmekte daha iyidir. İyi çalışmaların bir ödül olduğunu fark ettim.

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.