Ekibimde, resmi kod incelemeleri yapmıyoruz. Çift programlama ve dönen çiftlerin sıklıkla yeterli olduğunu düşünüyoruz.
Resmi kod incelemeleri yapmayı düşünmeli miyiz? Avantajları neler olurdu?
Ekibimde, resmi kod incelemeleri yapmıyoruz. Çift programlama ve dönen çiftlerin sıklıkla yeterli olduğunu düşünüyoruz.
Resmi kod incelemeleri yapmayı düşünmeli miyiz? Avantajları neler olurdu?
Yanıtlar:
Kod incelemelerini biraz farklı yapıyoruz (belki).
Tüm programcıları bir araya getiriyoruz (her Cuma) ve bir hafta içinde neler yaptığımıza bakıyoruz. Ardından, yapılan / devam eden her projenin en az bir veya birkaç kişiye sahip olması için hangi projeleri incelemek istediğimizi seçtik. Sonra bir saat içinde yapılan değişikliklere bakarız, hataları araştırırız, diğer projelerin nasıl çalıştığını vb. ve kodu FIXME ile spam olarak gönderir). Sonuçta genellikle bizim için (10 programcı) yaklaşık 2 saat sürer.
Profesyoneller:
Bahsettiğim gibi çift programlamaya karşı sahip olduğum şey (bu sadece benim kişisel görüşüm), ekip birlikte ne kadar uzun süre çalışırsa o kadar hızlı olur.
Umarım düşünce için yiyecek getirir. İyi şanslar.
Bu ücretsiz kitabı okumak isteyebilirsiniz:
http://smartbear.com/best-kept-secrets-of-peer-code-review/
Elbette, itmeleri gereken bir ürünleri var, ama orada hala birçok yararlı bilgi var.
Ayrıca çift programlamanın aynı avantajlardan bazılarını nasıl sağladığını tartışırlar, bu nedenle çift programlama yapıyorsanız kod incelemesine ihtiyacınız olmayabilir.
Ortamınızda inceleme konusunda fazla deneyimim yok. Burada çok fazla çift programlama yapmıyoruz, takımdaki yazılım bilgisini yaymak için kod incelemeleri yapıyoruz, hataları ortaya çıkarmak için başka bir çift gözümüz var ve yazılımın kodlama yönergelerimize yapışıp yapışmadığını kontrol etmek için resmi bir noktaya sahibiz .
İlk 2 nokta, çift programlama tarafından oldukça iyi bir şekilde kapsanır, üçüncüsü çifte çok bağımlıdır ve resmi bir kod incelemesinden daha iyi olabilir.
Resmi kod incelemeleri yapmalı mısınız?
Hızlı bir not olarak, eşleştirilmiş programlama konusunda çok az deneyime sahibim, ancak incelemelerin bu yöntemlerle çelişeceğine inanmıyorum.
Kod incelemelerinin iki biçimini tanıtacağım:
Akran kodu yorumları
Eşleştirilmiş programlama sizin için çalışıyor olsa bile , kod üzerinde başka bir göz seti almak asla acıtmaz. Bunun faydaları:
Akran kod incelemeleri (benim dünyamda) her gönderilmeden önce yapılır . Eşleştirilmiş programlama dünyasında bu nasıl oluyor, emin değilim.
Grup kodu incelemeleri
Bunlar akran kodu incelemelerinden daha az sıklıkta gerçekleşir. Genellikle gayri resmi bir kod incelemesi için grubumu (ya da grubumun bir alt bölümünü) bir toplantı odasında çekin. Genellikle takımda rastgele bir kişi tarafından yazılan bazı kodları seçerdim, tercihen sıfırdan yazılmış kod - yeniden düzenlenmiş kod yeni kod gibi sorunları ortaya çıkarmaz.
Herkesin bu incelemelerin kullanım amaçlı olmadığını ve performansı yansıtmak için kullanılmadığını bildiklerinden emin olun . Sadece takım kodlama standartlarınızın takip edilmesini sağlamak ve herkesin daha iyi mühendis olmasına yardımcı olmak ve böylece ekibe (ve daha fazla kariyer büyümesine vb.) Yardımcı olmak - ve bunun incelemelerin gerçek amacı olduğundan emin olmak . Birisi farklı bir şeyden şüphelenirse, bunlar korkulur ve daha az üretken olur.
Ben kodu gayri resmi olarak geçmesi, odada herkes sahip olabilir farklı çözümler veya karşılaştıkları mantık kusurları işaret izin. Bu, orada oturan bir lidere, herkese nasıl kod yazmaları gerektiğini söyleyen bir grup tartışmasından ibarettir.
Bu iki yöntemi kullanmanın mühendislerin ilerleme oranını artırdığını ve hata sayılarını önemli ölçüde düşürdüğünü buldum :)
Pratikte hiç çift programlama yapmadım (sadece bunu umuyordum), bu yüzden iki uygulamayı doğrudan karşılaştıramıyorum. Ancak, resmi kod incelemeleri ile deneyimlerimi söyleyebilirim.
Eski bir kod üzerinde daha önceki bir projede resmi kod incelemelerine öncülük ederdim. Proje tam bir karmaşa içindeydi ve yönetim, kargaşayı düzene sokma umuduyla herhangi bir girişimi memnuniyetle karşıladı. O zaman resmi kod incelemesinin iyi bir fikir olduğunu düşündüm. Biz hatalar buldunuz ve taze yazılmış kod kalitesinin eski kodunkinden daha iyi olduğunu gördük. Bunu kanıtlamak için istatistikler, hata sayıları vb. Topladım.
Haftada ortalama 3-5 seans olmak üzere bir seans yaptık. Her seans kişi başına yaklaşık 3-4 saat sürdü (hazırlık dahil) ve 200-300 satır kod (LOC) * gözden geçirildi. Bu hızda, 6 aydan uzun bir süre boyunca, yaklaşık 50 bin üzerinden 5 bin LOC'u incelemeyi başardık.
Geçmişe baktığımda bunun çok maliyetli olduğunu hissediyorum. Bu hızda, eski kod tabanının tamamını incelemek 5 yılımızı alacaktı. Haftada birden fazla seans geçiren OTOH, kaynakları gelişimden uzaklaştırırdı. Tabii ki, eski kodlu tipik ikilem budur. Ancak tüm yeni yazılan kodların resmi olarak gözden geçirilmesi bile çok zaman alacak ve gelişimi önemli ölçüde yavaşlatacaktır.
Benim sonucum, resmi kod incelemelerinin en iyi kodun en kritik kısımlarına odaklanan yeni yazılmış kod üzerinde yapılmasıdır. Geri kalanı, muhtemelen çift programlama yoluyla, daha gayri resmi bir şekilde daha iyi ele alınmaktadır. Bu sadece şu anki düşüncem, değişebilir. Kod inceleme gurusu ya da başka bir şey olduğunu iddia etmiyorum.
* Bu resmi kod incelemelerinin normal hızıdır.
Tipik kod inceleme oranları, saatte yaklaşık 150 satırlık koddur. Kritik yazılımlar (güvenlik açısından kritik gömülü yazılımlar gibi) için saatte birkaç yüz satırdan fazla kodun incelenmesi ve gözden geçirilmesi hata bulmak için çok hızlı olabilir.
Vikipedi'den alıntı (benim tarafımdan vurgu).
Temel neden kodu incelemeleri vardır, çünkü izole edilmiş programcıların kodlarını karşılamaları ve tartışmaları ve standartlarına uygun olup olmadığını kontrol etmeleri gerekir.
Herhangi bir kalite probleminden bahsetmiyorsunuz, bu yüzden ekibiniz zaten çift programlama yoluyla yeterli kod incelemeleri yapıyor gibi görünüyor. Müthiş!
Doğru şekilde yapılan çift programlama, resmi kod incelemelerini gereksiz kılar . Ancak birkaç hafta deneyin ve nasıl çalıştığını görün, ancak herhangi bir gelişme fark etmeyeceğinizden şüpheleniyorum.
Kod incelemelerinin yorucu, pahalı bir süreç olduğunu ve hafife alınacak bir şey olmadığını unutmayın. Temelde projenizde maliyetli ve her şeyi yavaşlatan bir devir teslimi sunar . Daha sonra sorun bulmaya çalışmak yerine, kodun ilk başta doğru olduğundan emin olmak çok daha iyidir.
Olabilir. Kod incelemeleri zaman alır. Yalnızca, incelemenin aldığı zaman sürecin başka bir noktasında kaydedilmişse faydalıdır. Kod incelemelerinden ne gibi tasarruflar bekliyorsunuz? Kod incelemeleriyle önlenebilecek zorluklar mı yaşıyorsunuz?
Çift programlama yapıyorsanız, bir kod inceleme ihtiyacı önemli ölçüde azalır, ancak kesinlikle bir akran incelemesinden faydalanırsınız. Bunun faydalı olabilmesi için ikili üyelerden daha kıdemli ve deneyimli bir kişi tarafından yapılması gerekir.
Avantajları nelerdir? Bunu yapmama risklerini düşünürseniz daha iyi olur.
Ben insanlar kod inceleme zaman kaybı olduğunu söyledi eğlenerek. Evet, zaman alıyor. Belki kodda herhangi bir değişiklik üretmeyecektir, ancak bu boşa harcandığı anlamına gelmez. Bu, yangın sisteminizi düzenli olarak kontrol etmeniz gerekmediğini söylemek gibidir, çünkü zaman kaybıdır.
Benim için kod incelemelerinin ana avantajı, insanların daha iyi kod yazmasını sağlamasıdır.
Kodunuzun okunup inceleneceğini bilmek, okunabilirlik ve kodunuzun "doğru" olması konusunda daha bilinçli olmanızı sağlar. Kodun doğrudan depoya gittiğini ve hata düzeltmedikçe başka hiç kimse bunu okumadığını bildiğinizde, kullanımları değiştiğinde alan adlarını yeniden çarpanlarına ayırmamak gibi kullanılmasına izin vermez ve kullanılmadığı takdirde kullanılmayan yöntemleri bırakır vb. içine geri çarpar.