Kod zaten yazılmış ve çaba harcanmış
Ayrıca gereksizdir. Onu herhangi bir şey için kullanmazsanız, ne yaptığına veya ne kadar çaba sarf edildiğine bakılmaksızın (tanım gereği) işe yaramaz.
Kod sözdizimsel ve gerçek ortamda test edilebilir
İşe yaramazsa, üzerinde testler yaptırsanız bile yine de yararsızdır. Kod işe yaramazsa, testler de işe yaramaz olmalıdır (bu yüzden yorumlanmış kodu orada tutmak belirsizlik yaratır - testleri tutuyor musunuz? Yorumlanan kodun müşteri koduna sahipseniz, müşteri kodunu da yorumluyor musunuz? )
İyi organize edilmişse (gruplanmış, ayrı paket, gevşek bağlanmış vb.) Sizi genel kod analizi veya yeniden düzenleme konusunda rahatsız etmez
Öyle değil. Tüm araçlarınız (kaynak kontrolü, statik analiz, dokümantasyon çıkarıcı, derleyici vb.) Daha yavaş çalışacaktır çünkü daha fazla veriyi işlemeleri gerekir (ve bu verilerin daha büyük veya daha küçük bir kısmı gürültüdür).
Kod edilirse değil diğer taraftan iyi organize, bu olacak karışıklık statik analizi, üstlenmeden ve herhangi diğerleri kadar.
Araç girişlerinize gürültü getiriyor ve bununla doğru şekilde başa çıkmalarını umuyorsunuz.
Statik analiz aracınız bir yorum / kod oranı hesaplarsa ne olur? Düne kadar (veya kod ne zaman yorumlansa) alakalı olan bir şeyle bunu mahvettiniz.
En önemlisi, yorumlanmış kod blokları, bakım ve daha fazla geliştirme için kodun anlaşılmasında gecikmelere neden olur ve bu tür gecikmeler neredeyse her zaman çok maliyetli olur. Kendinize şunu sorun: Bir işlevin uygulanmasını anlamanız gerekiyorsa, neye bakmayı tercih ederdiniz? iki satır açık kod mu, yoksa iki satır kod ve artık gerçek olmayan yirmi altı yorum mu?
Kod gelecekte kullanılabilir
Öyleyse, bunu ekibinizin tercih ettiği SCM'de bulacaksınız.
Yetkili bir SCM kullanıyorsanız ve ölü kodu saklamak için ona güveniyorsanız (kaynağı karıştırmak yerine), yalnızca bu kodu kimin sildiğini (commit yazarı) değil, hangi nedenle (commit mesajı) ve başka hangi onunla birlikte değişiklikler yapıldı (bu commit için farkların geri kalanı).
Yazar, silindiğinde rahatsız hissedebilir
Yani?
Siz (varsayıyorum), "X'in duygularını incitmeden nasıl yapılacağını bildiğiniz en iyi yazılım" değil, nasıl yapılacağını bildiğiniz en iyi yazılımı yapmak için para alan bütün bir geliştirici ekibisiniz.
Bu, programlamanın bir parçası, yazılan kodların çoğu sonuçta atılacak; Örneğin, Joel Spolsky bir noktada şirketi için yazılı kodun yaklaşık% 2'sinin üretim gördüğünü söyledi.
Geliştiricilerin egosunu kod tabanının kalitesine öncelik verirseniz, ürününüzün kalitesinden ödün verirsiniz, çünkü ... tam olarak ne? Geliştirici arkadaşlarınızın olgunlaşmamışlığını korumak mı? Meslektaşlarınızın gerçekçi olmayan beklentilerini korumak mı?
Düzenleme: Kaynakta yorumlanmış kodu bırakmak için geçerli bir neden gördüm ve bu çok özel bir durum: kod tuhaf / sezgisel olmayan bir biçimde yazıldığında ve onu yeniden yazmanın temiz bir yolu olmadığında gerçekten ince bir nedenden dolayı çalışmak. Bu aynı zamanda, yalnızca sorunu düzeltmek için tekrarlanan bir girişimde bulunulduktan sonra ve aynı kusuru her yeniden ortaya koyduğunda uygulanmalıdır. Böyle bir durumda, yorumlanmış sezgisel kodu bir yorum olarak eklemeli ve neden çalışmadığını açıklamalısınız (böylece gelecekteki geliştiriciler aynı değişikliği tekrar denemeyecektir):
// note by <author>: the X parameter here should normally
// be a reference:
// void teleport(dinosaur& X);
// but that would require that we raise another dinosaur and
// kill it every twelve hours
// as such, the parameter is passed by value
void teleport(dinosaur X);