İyi çalışsa bile yaşlı ve patronlu programları gözden geçirmek iyi mi?


18

Şirketimde, herhangi bir projeyi teslim etmeden önce, patronum yaşlılardan benden veya diğer ekip üyeleri tarafından yazılan programları gözden geçirmelerini ister veya bazen patron da gözden geçirilmek üzere bizimle birlikte oturur.

Bilgi edinmenin iyi bir yolu olduğunu düşünüyorum, ancak bazen programlar iyi çalıştığında, incelemeden sonra aynı şekilde çalışmazlar ve programıma tekrar bakmam gerekiyor.

İncelemenin program ve sorgu yürütmeyi optimize etmeye yardımcı olduğunu söylüyorlar, ancak programın gerçek işleyişine göre optimizasyonu tercih edebilir miyiz?


6
Kendi testinizi yaparken alışkın olduğunuz deyimleri bilmeyen biri tarafından gözden geçirilmeden iyi çalışıp çalışmadığından nasıl emin olabilirsiniz
cırcır ucube

çünkü test ekibi tarafından modülün tam testinden sonra kodu incelerler.
Himanshu

15
@Himanshu: Testten sonra inceleme kesinlikle çok geç . Devam etmekte olan çalışmalar hakkında inceleme yapılmalıdır.
Jan Hudec

3
Bu uygulamayı kucakla. Umarım bunu ekiplerimde yapsaydık. Bilgi silolarını (bizim için büyük bir sorun) ortadan kaldırmaya yardımcı olur ve ekip arkadaşlarınızın kodunuzla çalışmasını sağlar. Yorumlarınız kodunuzun bazen yeniden yazıldığı anlamına geliyorsa, bu iyi bir şeydir. Harika programcılar bile bazen kötü kod yazarlar; bazılarımız geri dönüp temizlemek için daha fazla zaman isterdi. Bu, sizden daha deneyimli insanlarla harika bir öğrenme deneyimi yaşama şansı olmalıdır. Kodunuza saldıran insanlar olarak kabul etmeyin; sizi daha deneyimli bir programcıya dönüştürmeye yardım etmeye çalışan insanlar olarak kabul edin.
jpmc26

1
Takım üyeleri çok fazla momentumun kaybolduğunu düşündükleri ölçüde kod incelemesi sırasında "iyi çalışıyor" kodunun parçalara ayrılması yaygınsa, belki de çift programlamayı düşünmelisiniz, bu yüzden kod bu sırada gözden geçirilir yazılı.
Buhb

Yanıtlar:


38

"İyi çalışmak" gerçekten harika bir metriktir, ancak takımda yazdıklarınızı deşifre edebilecek ve böylece koruyabilecek tek kişi sizseniz, kod şirket için orta veya uzun vadede değersizdir.

İyi bir kod en azından:

  • Amaçlandığı gibi çalışmak
  • okunabilir / temiz
  • kolayca bakımı
  • gelecekteki değişiklikler için kolayca genişletilebilir
  • kasa
  • gereksiz bağımlılıklar olmadan
  • nominal olmayan durumların doğru bir şekilde ele alınması
  • vb

(Bu gereksinimlerin bazıları aslında üst üste biniyor, ancak ayrı ayrı düşünmek iyi ...)

Kod incelemeleri, otomatik testlerle yapılabilen "çalışma" bölümünün ötesinde bir amaca hizmet eder.

Şahsen bunun bir şeyin parçalanması ve onu baştan inşa etmesi için can sıkıcı olduğunu biliyorum. Ancak, çoğu zaman bu, kıdemli / teknik liderden gelen bir yanlış iletişimden kaynaklanmaktadır. Bu nedenle, bir dahaki sefere çok sık yeniden yazmanız gerektiğini düşünüyorsanız, tek bir satır yazmadan önce incelemeye gidin ve beklediği şey hakkında mümkün olduğunca çok bilgi edinmeye çalışın. Kod gözden geçirenlerden oluşan ekibin beklentilerini, her geliştiricinin başvurabileceği resmi bir belgede özetlemesi de harika olabilir.

Daha olumlu bir açıdan, bir oturum da harika uygulamaları / tasarımları paylaşmak için bir fırsat olabilir.


1
Ben kod test hiçbir hata, yazılım örneğin örneğin çökecek durumlarda sınırlamak anlamına gelmez eklemek istiyorum.
dyesdyes

3
Kabul ediyorum ve otomatik testler de doğru şeyi test ettiklerinden emin olmak için kod gözden geçirilmelidir ... Kaplumbağalar tamamen aşağı.
Xavier T.

12

Sorunuzu "İşleyen kodum artık derlenmediği bir noktaya yapılan bir incelemede kesilebilir mi?" .

Evet yapabilir. Genel olarak, bir inceleme sırasında kodunuzun ne yaptığını nasıl görürsünüz . Kodunuzu vermek istediğinizde, programın belirli bir bölümünü bitirdiğinizi söylersiniz.

Çalıştığını söylüyorsun. Daha sonra bunu doğrulamak için test yapılır. Testleri geçen bir modül, modüle tekrar dokunulmaması gerektiği anlamına gelmez.

İşlevsel görünen bir modül, çalışma zamanında veya siz veya başka birinin üzerinde bakım yapmak zorunda kaldığı birkaç ay içinde gerçekleşmesini bekleyen bir felaket olabilir. Kodunuzu bir incelemede değiştirerek ve neyin yanlış olduğunu göstererek, gözden geçiren (umarım) size gerçekten bir şeyler öğretmeye çalışıyor.


3

Akran değerlendirmeleri şüphesiz öğrenmenin harika bir yoludur. Birisi farklı bir şey görebilir, sizin için farklı deneyime sahiptir ve iyileştirmelere katkıda bulunabilmelidir. Bu aşağılayıcı olmamalı, herhangi bir geliştiricinin yorum yapmasını ve yapıcı olarak kimsenin kodunu eleştirmesini beklerdim!

Bu "iyileştirmeler" in bazılarının aslında kırılma değişiklikleri yaptığı gibi bana geliyor çünkü (beklediğiniz gibi) inceleme geliştiricisinin yazılımla ilgili yazara göre daha az deneyimi var.

Bu eğilim kendi kendine geri bildirimdir, belki de kodunuzu takip etmek veya korumak zordur? Yorumlarınız değerli mi? Kesinlikle! Ne zaman sinir bozucu olabilir görebilirsiniz, daha sonra meslektaşları kırmak gibi görünüyor çalışma kodu var, cesaret kırılmamalı gerekir - kodunuzu bu değişikliklere karşı korumak için çalışmalısınız.

Daha sonra soru, programlarınızın işlevselliğini nasıl koruyacağınız olur, böylece incelemelerinizi tamamladıktan sonra işlevselliğin hala çalıştığını bilirsiniz. Benim önerim, iyi bir birim testi kapsamı sağlamaktır. Bu şekilde siz / yorumcunuz / halefiniz kodu değiştirdiğinde, yaptıkları değişikliklerin güvenli olduğundan emin olabilirler.

ETA: Yorumlarınızdan birini gördüm, eminim bu söylemeden geçiyor, ancak test ekibi ellerini almadan önce kod incelemeleri yapılmalıdır. Aksi takdirde nihai ürünü test etmiyorlar.


1
Entegrasyon testleri de kırılmayı tespit etmek için son derece faydalıdır.
jpmc26
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.