Birisi kullanılmayan kodu silmenin (veya saklamanın) avantajlarını açıklayabilir mi?


102

Kullanılmayan kodun projeden silinmesi gerektiğini defalarca duydum. Ancak benim için "neden?" Net değil.

Silmemek için puanlarım:

  • Kod zaten yazılmış ve çaba harcanmış
  • Kod sözdizimsel ve gerçek ortamda test edilebilir
  • İyi organize edilmişse (gruplanmış, ayrı paket, gevşek bağlanmış vb.) Sizi genel kod analizi veya yeniden düzenleme konusunda rahatsız etmez
  • Kod gelecekte kullanılabilir
  • Yazar, silindiğinde rahatsız hissedebilir

Birisi kullanılmayan kodu silmenin (veya saklamanın) avantajlarını açıklayabilir mi?


16
Açıklanan kod da bir kod tabanına ait olmamalıdır.
leppie

27
Çünkü sürüm kontrolümüz var. Kodun eski sürümlerine başvurmamız gerekirse, geçmişi gözden geçirebiliriz.
armandino

1
Btw, proje büyük olduğunda ve bazı dosyalarda 200'den fazla revizyon olduğunda sürüm kontrolüne atıfta bulunmak zor olabilir
Alex Turbin

22
@AlexStamper, araçlarınız kodunuzun geçmiş revizyonlarına kolayca bakmanıza izin vermiyorsa, çözüm kaynak kodunuza gürültü eklemek değil daha iyi araçlar elde etmek olacaktır.
utnapistim

1
Yazılım Mühendisliğinin çok benzer bir sorusu var .
davidvandebunte

Yanıtlar:


181

Kullanılmayan kodun kaldırılması için bazı nedenler şunlardır:

  • Yeni bir proje üzerinde çalışan herkes için, sadece çalışma kodunu değil, aynı zamanda kullanılmayan materyalleri de anlamaları gerekir. Bu, boşa harcanan zamandır ve kafa karışıklığı yaratır.

  • Bazen birinin yanlışlıkla 'hareketsiz' kodu içeren ve hatalara yol açabilecek bir değişiklik yapması tehlikesi vardır. Üzerinde çalıştığım projelerde olduğunu biliyorum.

  • Herhangi bir kodun sürdürülmesi idari bir yüktür. Eski yedek kodu koruyarak bu yük artar. Örneğin, ana daldaki değişiklikleri birleştirmek daha zor hale gelir çünkü üzerinde çalışılacak daha fazla kod ve hata yapma olasılığı daha fazladır.

  • Zamanla olan şey, kod tabanına gittikçe daha fazla eski kullanılmayan kodun eklenmesidir. Bu, kafa karışıklığını, olası yanlış anlaşılmaları ve idari yükü artırır.

  • Kullanılmayan kodun tekrar kullanılma ihtimali çok düşüktür. Zamanla bu yeniden kullanım olasılığı azalır. Kod kaldırılacaksa ve yeterince önemli kabul edilirse, kod dallara ayrılabilir ve belgelenebilir.

  • Bir kodlayıcının üzerinde çok çalışmış olabileceği kod hakkında sahip olabileceği herhangi bir kişisel duygu anlaşılabilir. Ancak profesyonel olmanın bir parçası, daha iyi bir iyilik için bu düşüncelerin bir kenara bırakılmasını gerektirir. Zaman hiç kimseyi ifade etmez ve çalışan bir kod tabanında tarihsel kodu korumak için yer yoktur.


26
Son zamanlarda kullanılmayan koda baktığım için (ve kullanılmadığını anlamadığım için) yaşayan boktan şeyler benden korktu. Kullanılmayan kod varoluştan çıkarılmalıdır!
leppie

1
iyi noktalar, teşekkür ederim. Meslektaşlarım da birkaçını belirtti
Alex Turbin

Mükemmel cevap. Yüksek lisans tezimde buna benzer argümanlara atıfta bulunmak istiyorum, ancak uygun bir kaynak (kitap, kağıt vb.) Bulamıyorum. Herhangi bir ipucunuz var mı?
Jonas Winkler

3
Şu anda olumsuz oylama nedenlerinizle çok ilgileneceğim.
şüpheli

1
Bir nokta daha: eski koda tekrar ihtiyaç duyulursa, günümüzde çoğu proje bir SCM kullanır ve koddan tekrar çıkarılabilir (bazen biraz arama ile, doğru, ancak cevapta açıkça belirtildiği gibi, kullanılmayan kodun olma olasılığı yaş arttıkça ihtiyaç tekrar azalır).
doğrayın

31

@suspectus, kodu silme nedenlerini sunma konusunda mükemmel bir iş çıkardı; Kodu saklamak için bireysel madde işaretlerinizi ele almak istiyorum.

  • Kod zaten yazılmış ve çaba harcanmış

Ancak önceden yazılmış kod kullanımda değilse, bu yalnızca (gelecekteki) değeri olmayan maliyettir. Boşuna harcanan çabadır ve bu çabaların kullanılmayan ürününü korumak, bu çabaları doğrulamaz. Kodu saklıyoruz çünkü bu, yazarların çabalarının bir çeşit anısı olarak değil, şimdi yararlıdır.

  • Kod sözdizimsel ve gerçek ortamda test edilebilir

Üzgünüm, bununla ne demek istediğini bilmiyorum.

  • İyi organize edilmişse (gruplanmış, ayrı paket, gevşek bağlanmış vb.) Sizi genel kod analizi veya yeniden düzenleme konusunda rahatsız etmez

Kod tabanında varsa, ne kadar iyi organize edilmiş olursa olsun, bakım ve anlama yüküne katkıda bulunur. Doğru, daha az yük olacak şekilde organize edilebilir , ancak giderse, hiç bir yük olmaz.

  • Kod gelecekte kullanılabilir

Çevik okulda, YAGNI : Buna ihtiyacınız olmayacak diyoruz . Evet, muhtemelen gelecekte bir kullanımınız olabilir , ancak bugün bunu herhangi bir güvenilirlikle tahmin edebilmek için yarının ihtiyaçları hakkında yeterince bilgi sahibi olamayız. Aksini düşünmek kibirdir. Ne yapabilirsiniz yarın biliyorum: bizim kod tabanı bu karakteristikten kod dağılmasına yol açar değiştirmek kolaydır ve kullanılmayan olmak istiyorum.

  • Yazar, silindiğinde rahatsız hissedebilir

Yazar bunu aşmalı. Hepimiz yararlı olmadığı ortaya çıkan şeyler yazdık - tümüyle kullanılan bir kod gövdesine işaret edebilmek (çünkü kullanılmayan kusur silindi), söyleyebileceğiniz bir kod gövdesine göre çok daha iyidir. birkaç yöntem, "ve bu aslında kullanımda!"


17

Biraz kod alıp amacı anlamak yeterince zor değil mi, ama şimdi hangi parçaların kullanılmadığını anlamanız gerekiyor mu?


14

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);

10

Ölü kod, kodunuzu kirletiyor

Ölü kod, anlaşılabilirliği ve okunabilirliği azaltır.

En iyi kodlar her zaman yeniden kullanılır ve ölü kodlarınız varsa, yeniden kullanılabilirliği azaltır

Bir makine için değil, programcı arkadaşlarımızla etkileşim için kodlar tasarladığımız modüler kodlama yaklaşımıyla hareket ediyoruz. Kodumuzu anlamasını kolaylaştırmak için en fazla enerjiyi harcamalıyız. Makine yine de iyi olacak.

Ölü veya yorumlanmış kod, yalnızca insanların kafasını karıştıran yanlış iz işaretleri gibidir, bu nedenle ne pahasına olursa olsun kaçının.


10
  • Korku . Bu, ekibin daha fazla endişelenmesini ve daha az üretmesini sağlar. Daha fazla ölü kod eklendiğinde korku miktarı katlanarak artar. "Bu bitin kullanılıp kullanılmadığını bilmiyoruz, bu yüzden onu çıkarmaya veya dokunmaya cesaret edemiyoruz."
  • Kapsamlı değişiklikler . Sistemin her yerinde değiştirilmesi gereken bir şey ölü kodda da varsa, onu değiştirir misiniz? Kesinlikle bir yerde kullanılıp kullanılmadığını bilmek çok zor, bu yüzden her zaman bir risk. Ve herhangi bir şeyi bozmasa bile, bu değişiklikten sonra tekrar kullanılmak üzere geri alınırsa, ölü kod işe yarayacak mı?

    Kapsamlı bir değişiklikle uğraşırken, geliştiricilerin kodu içeren her yeri de kontrol etmesi gerekecektir ve ölü kod durumunda bu gereksizdir. Ve herhangi bir yerde kullanılmadığını doğrulamak zor olduğundan, kod öldüğünde bunları kontrol etmek daha uzun sürer.

  • Zihinsel yük . Bir şeyin kullanılıp kullanılmadığını ya da ölü kod için bir şey yapmanız gerekip gerekmediğini düşünmeniz gerektiğinde, beyin gücünüzün bir kısmını alır.
  • Vahşi kazı kovalar . "Foobar'ın nasıl kullanılacağına dair bir örneğe ihtiyacım var. Oh, kod tabanındaki bu yerlerde. İlk isabeti kontrol edeceğim ve bunun kullanıcı arayüzünde nerede olduğunu bulacağım. Hmm ... Hiçbir yerde bulamıyorum."
  • Şişirilmiş raporlar (ör. Kaç satır kod, sınıflar, rutinler, değişiklikler). Projenin görünürlüğünü bozar ve kod tabanının hangi bölümlerinde çalışılması gerektiğine ve gelecekteki projelerin tahminlerine karar verir.
  • Kod tabanına olan güven zayıfladı . Bu, gereksiz görevler için daha fazla zaman harcanmasına neden olabilir ve kod tabanını kullanma akışını bozar. Geliştiricilerin, kullandıkları her şeyin olması gerektiğini düşündükleri şekilde çalışıp çalışmadığını son derece dikkatli bir şekilde kontrol etmeleri gerekebilir.

Kod tabanının bir kısmının kullanılmadığını biliyorsanız son derece değerlidir , çünkü o zaman onu kaldırabilirsiniz. Kalmasına izin verirseniz, gelecekte gerçekten kullanılmadığından emin olmak zor veya neredeyse imkansız olabilir. Örneğin, kodu şaşırtıcı şekillerde kullanan bazı şeyler: yansıtma, dizelerden birleştirilmiş rutinleri dinamik olarak çağırma, eval, çerçeve sihri .

Ancak, gelecekte kodun kullanılma olasılığı yüksekse, sürüm kontrol sistemi yerine diğer kodun hemen yanında yer alması daha kolaydır. Bir süre sonra kodun sahip olduğu hiçbir kelimeyi hatırlamayabilirsiniz, bu nedenle kodu VCS'nin bağırsaklarından bulmak çok zor olabilir. Ancak ölü kodun nadiren var olmasına izin verirdim ve o zaman bile kodu yorumlardım.


4
  • Kullanılmayan kod, hem okumanız hem de kodunuzu genel olarak tarayan her şey için daha büyük bir arama alanıdır. Örneğin, bir derleyici, IDE, dosyada bulma, hata ayıklama, statik analiz, gözden geçirilecek daha fazlası, dosya dahil etme, VCS'den teslim alma, vb. Bu, bu işlemleri yavaşlatır ve önemli gürültüler ekler.
  • Kullanılmayan kod her zaman ölü kod değildir. Bazı durumlarda uygulanabilir. Bu, yalnızca hatalar ve performans sorunları için bir vektör sunmakla kalmaz, aynı zamanda bir güvenlik sorunu da olabilir. Performans açısından bu, daha büyük indirmeler gibi beklenmedik şekillerde kendini ifade edebilir.
  • Kullanılmayan kod, kullanılmayan kodu harekete geçirir. Bir işlev çağrısını silerseniz ve daha sonra hala gerekli olup olmadığını görmek için bu işlevin kullanımlarını ararsanız, önceki kullanılmamış koddan bir eşleşme görebilir ve onu saklayabileceğinizi varsayabilirsiniz. Ne kadar çok kullanılmayan koda sahip olursanız, kodun kullanılmamış olup olmadığını belirlemektir.
  • Kullanılmayan kod hala çoğu zaman bakıma ihtiyaç duyuyor. Diyelim ki A ve B C'ye bağlı. Bunlardan B kullanılmıyor. C'yi değiştirirsiniz ve sonra B'yi derlemeyeceksiniz çünkü C'deki bir yapıdan B'nin gerekli olduğu bir üye kaldırdınız, şimdi B'yi düzeltmeniz veya derlemeden aktif olarak kaldırmanız gerekir. Sadece kaldırmalıydın.

Bu liste basit görünebilir, ancak bunların her biri, tüm geliştirme süreci boyunca sinerji oluşturan sürükleme ekleyerek yüzlerce farklı şekilde ortaya çıkar. Verimsizlik genellikle doğrudan ve matematiksel bir şekilde kanıtlanabilir veya gösterilebilir.

Puanlarınıza yanıt olarak ...

  • Kod zaten yazılmış ve çaba harcanmış

Ancak çoğu zaman muhafaza edilmelidir. Ayrıca dosyada bulma gibi şeylerde de görünecektir.

  • Kod sözdizimsel ve gerçek ortamda test edilebilir

Bununla ne demek istediğinden emin değilim. Sanırım sonuncusuyla aynı. Kodun zaten test edildiğini ve temizlenmesi yeniden test edilmesi gerektiği anlamına gelebilir. Bu, genellikle buna değer bir maliyettir çünkü zamanın% 90'ını ödeyecektir ve üretime geçmeden önce temizlenmesini önlemek için. Neredeyse tüm kodun iki yinelemesi vardır, çalışmasını sağlayın, temizleyin. Nedeni, iki kez test edilmek zorunda çünkü birinin son adımı atlaması. Kodunuzu ispatlamak için çok pahalıysanız, diff'i okuyun, test edin (büyük olasılıkla çok sayıda kullanılmayan kodla karışıksa), vb. O zaman bu başka bir problemdir.

  • İyi organize edilmişse (gruplanmış, ayrı paket, gevşek bağlanmış vb.) Sizi genel kod analizi veya yeniden düzenleme konusunda rahatsız etmez

Kodunuz yine de böyle olmalıdır, ancak bu sorunu yalnızca orta düzeyde azaltır. Bir şeyin organize olması gerektiği halde kirli olması gerektiğini duymak en garip argümandır. Kodu modüler tutmaya ve bağımlılıkları azaltmaya çalışmak normaldir, ancak aynı zamanda yeniden kullanılabilir kod da istersiniz ve tüm modülleriniz bir ada ise, muhtemelen KURU olmamışsınızdır. Kendinizi, hiçbir şey yapmayan ancak kullanılmayan dağınık kod sorununu azaltan aşırı ayrıştırma yaparken de bulabilirsiniz.

  • Kod gelecekte kullanılabilir

Bir çok insan yazılı koda değer verir. Eğer şimdi kullanılmazsa, ağırlıksızdır ve gerçekte bu yola girdiğinizde genellikle kullanılmayan kodun sadece bir kısmı kullanılan kod haline gelir. Muhtemelen kullanılmayan kodun kodun kullanılması veya kullanılması olası değildir. Yeniden kullanılma olasılığı en yüksek olan kod, zaten bir şeyler yapan kullanılan koddur.

Daha kötüsü, kullanılmayan kodun bir amacı olmamasıdır. Birisi geldiğinde ve kullanılmayan kodu etkileyecek bir şeyi değiştirmek zorunda kaldığında, bu kullanılmayan kodun amacı olmadan ne yapması gerektiğini anlamaya çalışırken orada oturup şaşıracaklar.

Kod çok fazla çaba gerektirdiğinden, başlangıçta insanların böyle hissetmesi kolaydır. Ancak akıcı bir şekilde konuşulduğunda ve buna alıştıktan sonra kod bisiklet sürmek gibi olur. Böyle bir kod parçasını yazmanın maliyeti, onu sürünerek sürdürmenin maliyetini düşürdükçe göreceksiniz.

  • Yazar, silindiğinde rahatsız hissedebilir

Yazarın sorunu bu. Bir yandan, başkalarının uğraşmak zorunda kalacağı bir sürü kullanılmamış kod bırakmak bencilliktir. Öte yandan, bir yazar duygularını kod kalitesinin üzerine koyuyorsa, muhtemelen kodlamamalıdır. Bununla yola çıkarsınız, kodlarını kırıldığında düzeltemezsiniz çünkü bu onların duygularını incitir. Birinin koda iyi olduğu için değil, onun olduğu için bağlanması iyiye işaret değildir. Bir yazar, kodunun temizlenmesinden mutlu olmalıdır. Bu, birinin sizin için çöpünüzü çıkarıp çöp kutusuna atması gibidir.

Biri benim için bunu yapsaydı ayın üstesinden gelirdim. Bu duyguların üstesinden gelmeyi kolaylaştıran şey, bir başkasının bunu yapmasını beklemek yerine, kendin yapmayı denemektir. Yaptığınız bir kodu yinelemeli olarak yeniden yazmaya devam edin, daha iyi performans gösterin, kısa ve öz, daha az fazlalık ve daha esnek, ancak her seferinde daha az kodla. Kod miktarı konusunda kendinizi iyi hissetmemeye çalışın, ancak ne kadar az kodla başarabileceğinize bakın. Bu, seviye atlamak için öğütme işlemidir ve bunu yaptığınızda tüm kodunuz iyi bir seviyede çıkacaktır, bu yüzden sık sık seviyelendirilmesi gerekmeyecektir.


3

Her şeyden önce, projelerinizi yönetmek için her zaman bir kaynak kontrol aracı kullanmalısınız ve bu nedenle, kaldırılan kodu almak için her zaman kaynak kontrolünü kullanarak geri dönebileceğinizden, kullanılmayan kodu kaldırmak iyi bir uygulamadır. Benim için kullanılmayan kodu kaldırmanın nedeni, yalnızca kodun kullanılmadığını bilen kişinin bunu bilmesidir, takımdaki başka biri bu kodla karşılaşacak ve ne yaptığını ve tüm uygulamaya nasıl uyduğunu anlamaya çalışacaktır. o kadar çabadan sonra hayal kırıklığına uğrayacak ve kod hiç kullanılmayacak :)


3

Bu tartışma birkaç yıl öncesine ait, ama ben yeni karşılaştım ...

Bahsedilen görmediğim bir şey, kullanılmayan kodu kaldırmak için yapılması gereken iştir. Çoğu durumda, kullanılmayan kodu kaldırma zamanı ve çabası doğası gereği önemsiz değildir, ayrıca yeniden düzenlenen sistemi test etmek ve belgelemek için tipik olarak ek maliyetler vardır. Karar sürecinde dikkate alınması gereken başka bir şey.


2

Sanırım iki durumunuz olabilir: - uygulama kodu: kullanılmadıysa, belki zaman içinde test edilmemiş ve kullanılmamışsa, belki bir "dahili kod deposuna" geçebilirsiniz - API kodu: bir kitaplık yazıyorsanız, o zaman IMHO sürdürmek için daha iyi bir seçim, ancak aktif geliştirme sürecinizde


2

Kodun kullanılmadığından emin misiniz?

Hala derlenen kodu kontrol etmek yeterli değildir. C ++ 'da, derleyici hatası almayacağınız gibi "kullanılmayan" örtük olarak tanımlanmış bir yöntemi kaldırırsanız operator=, sınıf sessizce (potansiyel olarak yanlış) bir varsayılan uygulama kullanmaya başlayacaktır. Java veya C #'da kod yansıtma yoluyla kullanılabilir. Nesne yönelimli dillerde, kalıtım bir rol oynayabilir (artık temel sınıf çağrılabilir). Hemen hemen her dilde, başka bir aşırı yüklenmiş işlev devralmış olabilir.

Sadece kullanılmadığını değil, sürüm kontrolünde kodun yaşını da kontrol edin. Kullanılmamış gibi görünen ancak henüz işlenmiş ve aslında başka bir geliştiricinin projesinin ilk adımı olan bir kod gördüm.

Kullanılmayan kodu agresif bir şekilde kaldırın

Kodu korumak için ödeme yaparsınız:

  • Bozuk yapıların düzeltilmesi (mühendislik süresi). Son zamanlarda, #includekullanılmayan koda yeni bir aşırı yük getiren karmaşık bir değişim zinciri yaşadık ve düzinelerce geliştiriciden oluşan bir ekipteki her mühendis için makul büyüklükte bir baş ağrısına yol açtı.
  • Testlerle ilgili makine kaynaklarında (kendi kendini sınayan sürekli derlemelere sahip olduğunuz varsayılarak). Ekibim kısa süre önce en yavaş testlerimize baktı ve birçoğu başka türlü kullanılmayan kodun üstündeydi. Yerel olarak veya sürekli entegrasyonun bir parçası olarak testler yürüten mühendisler, kullanılmayan kod üzerinde testler beklemektedir.
  • Okunabilirlik açısından (mühendislik zamanı tekrar). Başlık dosyalarınız bir API'yi temsil eder. Kimsenin kullanmak istemeyeceği ancak herkesin okuması gereken işlevler içeriyorsa, kodunuzun öğrenme eğrisi çok daha zordur.
  • Kod aramalarında (mühendislik zamanı tekrar). Evinizi, sabit sürücünüzü veya Google Drive'ı temizler miydiniz? Bir etki alanında ne kadar çok arama yaparsanız, yanlış pozitiflerden kaçınmak için alakalı içeriğe sahip olması (veya bir web arama motoru gibi daha gelişmiş arama kullanırsınız) için o kadar önemlidir.

Ortalama bir geliştiricinin yazdığı tüm kodun beş yıllık bir ufukta kullanılmadığını söyleyebilirim, bu nedenle bu etkinlik asla durmaz. Bunun sen olmasına izin verme; sadece yüksek kalitede ve kesinlikle gerekli kodu yazın.

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.