Bir incelemede bireyleri derecelendirmek , birlikte çalıştığım en başarılı sistemlere, belki de hepsine aykırıdır. Ancak 20 yıldan fazla bir süredir ulaşmaya çalıştığım hedef, daha az hata ve mühendis başına saat verimlilik artışı. Bireyleri derecelendirmek bir hedef ise, incelemelerin kullanılabileceğini düşünüyorum. İhtiyacı olan bir durumu, bir işçi veya lider olarak hiç görmedim.
Bazı nesnel çalışmalar (Fagan, vb.) Ve birçok popüler bilgelik, akran ilişkilerinin hataları azaltmayı ve verimliliği arttırmayı amaçlayan kod incelemelerini kolaylaştırdığını göstermektedir . Çalışan yöneticiler işçi olarak katılabilir, ancak yönetici olarak olmayabilir. Tartışma noktalarına dikkat edilir, gözden geçirenleri tatmin edecek değişiklikler genellikle iyi bir şeydir, ancak zorunlu değildir. Dolayısıyla akran ilişkisi.
Herhangi otomatik araçlar olabilir daha fazla analiz ya da yargı olmadan kabul - iyi tüysüz C, C ++, Java. Düzenli derleme Derleyiciler, derleyici hatalarını bulmakta gerçekten iyidir. Otomatik kontrollerdeki sapmaları belgelemek, otomatik kontrollerin ince bir iddianamesi gibi geliyor. IMHO, sapmalara izin veren kod direktifleri (Java gibi) oldukça tehlikelidir. Hızlı hata ayıklama için, maddenin kalbine almanıza izin vermek için harika. Kötü bir şekilde belgelenmiş, 50.000 yorum yapmayan bir kod bloğunda bulmaktan o kadar iyi değilsiniz.
Bazı kurallar aptaldır ancak uygulanması kolaydır; Örneğin, ulaşılamadıklarında bile her anahtar ifadesi için varsayılanlar. O zaman sadece bir onay kutusu ve zaman ve para testiyle hiçbir şeye uymayan değerlerle zaman harcamak zorunda değilsiniz. Eğer varsa kuralları , sen gerekecek aptallık , bunlar edilir ayrılmaz bir şekilde bağlantılı . Herhangi bir kuralın yararı, mal olduğu aptallığa değmeli ve bu ilişki düzenli aralıklarla kontrol edilmelidir.
Öte yandan, "Çalıştırır" incelemeden önce bir erdem ya da incelemede savunma değildir. Eğer gelişme şelale modelini takip ettiyse , kodlama% 85 tamamlandığında, karmaşık hatalar bulunup çözülmeden önce incelemeyi yapmak istersiniz, çünkü inceleme onları bulmak için daha ucuz bir yoldur. Gerçek hayat şelale modeli olmadığından, gözden geçirme zamanı bir sanattır ve sosyal normlara eşittir. Kodunuzu gerçekten okuyacak ve içindeki sorunları arayacak olan insanlar katı altındır. Devam eden bir şekilde bunu destekleyen yönetim, fiyatın üzerinde bir inci. Yorumlar checkins- gibi olmalı erken ve sık sık .
Bunları faydalı buldum:
1) Tarz savaşı yok . Açık küme parantezleri nereye giderse, sadece belirli bir dosyadaki tutarlılık kontrolüne tabi tutulmalıdır. Hepsi aynı. O zaman sorun değil. Aynen girinti derinliği ** s ve ** sekme genişlikleri . Çoğu kuruluş, geniş bir alan olarak kullanılan sekme için ortak bir standarda ihtiyaç duyduklarını keşfeder.
2) `Dağınık
looking
olmayan metin
line up is hard to read
içerik için.
BTW, K&R beş (FIVE) alanı belirledi, o yüzden otoriteye hitap etmek değersiz. Sadece tutarlı ol.
3) İncelenecek dosyanın satır numarasına sahip, değişmeyen, halka açık bir kopyası incelemeden önce 72 saat veya daha fazla süre ile belirtilmelidir.
4) Hiçbir tasarım anında. Bir sorun veya bir sorun varsa, konumunu not alın ve devam edin.
5) Geliştirme ortamındaki tüm yollardan geçen testler, çok, çok, çok iyi bir fikirdir. Çok büyük harici veriler, donanım kaynakları, müşterinin sitesinin kullanımı vb. Gerektiren testler bir servete mal olan ve eksiksiz olmayacak testlerdir.
6) ASCII olmayan bir dosya formatı, oluşturma, görüntüleme, düzenleme vb. Araçlar mevcutsa veya geliştirme aşamasında erken oluşturulmuşsa kabul edilebilir. Bu benim kişisel önyargımdır, ancak baskın işletim sisteminin 1 gigabayttan az RAM ile kendi yolundan çıkamadığı bir dünyada, 10 megabayttan daha küçük dosyaların neden bir şey olması gerektiğini anlayamıyorum. ASCII veya başka bir ticari olarak desteklenen format dışında. Grafik, ses, film, çalıştırılabilir ve onlarla birlikte gelen araçlar için standartlar var. Bazı sayıdaki nesnelerin ikili bir temsilini içeren bir dosyanın mazereti yoktur.
Onaylanan kodun bakımı, yeniden yapılandırılması veya geliştirilmesi için, bir grup meslektaşım , başka bir kişi tarafından yapılan incelemeyi , bir teşhirde otururken ve şubeye giriş için bir geçit olarak eski ve yeni bir farklılığa bakarken kullandım . Bunu sevdim, ucuz, hızlı, nispeten kolaydı. Kodu önceden okumamış kişiler için yapılacaklar, herkes için eğitici olabilir, ancak geliştiricinin kodunu nadiren geliştirebilir.
Coğrafi olarak dağılmışsanız, aynı görünen bir başkası ile konuşurken ekranda farklılıkları görmek oldukça kolay olacaktır. Bu değişikliklere bakan iki kişiyi kapsar. Söz konusu kodu okuyan daha büyük bir grup için, birden fazla site tek bir odada hepsinden daha zor değildir. IMHO, paylaşılan bilgisayar ekranları ve squak kutuları ile bağlantılı birden fazla oda çok iyi çalışıyor. Daha fazla site, daha fazla toplantı yönetimi gereklidir. Kolaylaştırıcı olarak bir yönetici burada kalmasını sağlayabilir. Bulmadığınız siteleri oylamaya devam etmeyi unutmayın.
Bir noktada, aynı organizasyon regresyon testi olarak kullanılan otomatik birim testine sahipti. Bu gerçekten güzeldi. Elbette platformları değiştirdik ve otomatik test geride kaldı. İnceleme olarak, iyidir Çevik Manifesto notları, ilişkiler süreç veya araçlar daha önemlidir . Ancak, bir kez inceleme yaptıktan sonra, otomatik birim testleri / regresyon testleri, iyi bir yazılım oluşturmak için bir sonraki en önemli yardımdır.
Eğer testleri "gerekliliklere dayandırabilirsen" dediğin gibi , "Harry ile karşılaştığında" dediği gibi , sahip olduğu şeye sahip olacağım!
Tüm incelemelerde, gereksinimleri karşılamak ve kodlama seviyesindeki sorunları tasarlayabilmek için bir park yerine sahip olmak gerekir . Bir şey park alanına ait olarak kabul edildikten sonra, incelemede tartışma durmalıdır.
Bazen kod incelemesinin donanım tasarımındaki şematik incelemeler gibi olması gerektiğini düşünüyorum - tamamen açık, kapsamlı, öğretici, bir sürecin sonu, sonradan inşa edilip test edileceği bir ağ geçidi. Ancak şematik incelemeler ağırdır, çünkü fiziksel nesneleri değiştirmek pahalıdır. Yazılımın mimarisi, arayüzü ve dokümantasyon incelemeleri muhtemelen ağır olmalıdır. Kod daha akışkan. Kod incelemesi daha hafif olmalıdır.
Birçok yönden, teknolojinin kültür ve beklenti ile ilgili olduğu kadar, belirli bir araçla da ilgili olduğunu düşünüyorum. Kalbi memnun eden ve akla meydan okuyan tüm " İsviçre Ailesi Robinson " / Çakmaktaşlar / McGyver doğaçlamalarını düşünün . Eşyalarımızın çalışmasını istiyoruz . Bunun tek yolu yoktur, 1960'larda AI programları tarafından bir şekilde soyutlanabilen ve otomatikleştirilebilen "zeka" dan daha fazlası yoktur .