Legacy, çalışmak yerine değiştirmek istediğiniz herhangi bir kod anlamına gelir . Programcıların çoğunun mevcut koda karşı tutumu göz önüne alındığında, bu, şu anda aktif olarak yazdıklarınız dışında (ve dondurulmuş bir tasarıma kod yazmanız gereken büyük bir projede, hatta yazdıklarınızda bile) an da dahil edilebilir).
- "Oldukça" vurgusu, bu eski kodu iletmeyi amaçlar, ayrıca istemeseniz bile onunla çalışmanızın zorlaştığı anlamına gelir. Vurgulamanın yine de yeterli olduğundan emin değilim. Bunun nedenleri değişebilir. Bazıları gerçekten değiştiremeyecek kadar büyük ve karmaşık. Diğerleri, diğer sistemlere arayüzdür. Yine de diğerleri politika ve kişilikleri tarafından yönlendiriliyor (örneğin, kod korkunç, ama kabin bebek şaşırtıcıydı).
- Ben yeterince vurguladı olmayabilir başka nokta kodu kalitesi ederken olmasıdır edebilir ve çoğu zaman hatta özellikle önemli bir - bir faktör olabilir (hiç değilse), nadiren tek faktördür.
- Tek belirleyici faktör olarak ünite testlerini yapan insanların , eşinin bir blok ötede bıraktığı küpeye karşı sokak lambası altında görünen adam gibi olduklarını düşünüyorum . Işık daha iyi olabilir, ama yine de yanlış yere bakıyorsun. Kool-Aid'i içmeden önce düşünün .
- (Sonuç olarak 3.) Bana göre bazı insanlar olayların gerçekte oldukları gibi olmalarını nasıl diledikleri hakkında konuşuyorlar. Eğer John Conways ' Hayat Oyunu bir için Apple IIc Plus'ın mirası değil o yere kadar yeniden uygulanması kolay olduğunu yeterince küçük ve basit, çünkü bu kadar. Şimdiye kadar yazılmış en mükemmel birim testi, tek bir iota'nın değişmesine neden olmaz .
Son nokta, genellikle doğru olduğunu düşündüğüm diğer iki noktaya yol açıyor.
İlk olarak, kod gerçekten olması gerekmese bile, genellikle eski olarak korunur. Daha yüksek seviyedeki yöneticiler, genellikle bir sistemin yeniden uygulanmasının, başlangıçtaki uygulamanın maliyetinden daha fazla veya daha pahalı olacağını, bunun da nadiren doğru olacağını varsaymaktadır.
İkincisi, birim testleri iki ucu keskin bir kılıçtır. Uygulamadaki yerel değişikliklerin gerçekten önemli olduğunu düşünmeyi çok kolaylaştırıyorlar. Daha büyük bir sistemde önemli iyileştirmeler yapmak için, sık sık (genellikle?), Birim testlerin çoğunun (çoğu değilse) alakasız hale geldiği genel tasarımın yeterince değişmesi gerekir. Ne yazık ki, birim testlerin varlığı ve yaptıkları tutum gerçekten gerekli olan değişiklikleri görmezden gelmeyi çok kolaylaştırabilir.
Belki de bunun bir örneği yardımcı olacaktır: Bir programın harika ünite testine sahip bir UI kütüphanesi ve bu kütüphaneyi kullanan birkaç program olduğunu varsayalım . Üst yönetimdeki birileri "web etkin" in önemli olduğuna ikna olur (ve sadece tartışma uğruna, bu durumda aslında bu konuda haklı olduğunu varsayalım). Dikkatli bir gözden geçirme sonrasında, orta düzey yöneticiler, mevcut birim testlerinin, tüm orijinal giriş validasyonunu korurken, yerel işletim sisteminin pencereleme kabiliyeti ile görüntülenen bir kullanıcı arayüzünden, HTML / CSS / AJAX aracılığıyla uzaktan gösterilmesine geçmek için yeterli olduğunu tespit etti.
Bu harika değil mi? Birim testinin ne kadar faydalı olabileceğini gösterir. Tüm UI'nin tüm uygulamasını değiştirdik, ancak görünümün, hissin ve işlevselliğin neredeyse tutarlı kalmasını sağladık ve veri bütünlüğünü sağlamak için tüm kullanıcı girişlerinin doğrulandığından emin olduk. Birim testi günü kurtardı!
Ya da değil! Bu harika, son derece esnek, dikkatlice test edilmiş UI kütüphanesi, bu program için kullanıcıları ile pazarındaki web tabanlı bir UI'nin tamamen üzerinde çalışılacak yanlış bir şey olduğu gerçeğini körleştirmiştir. Gerçekte ihtiyaç duyulan şey , RESTful arayüze sahip bir web servisidir ve kendine ait hiçbir kullanıcı arayüzü yoktur .
Şimdi, ünite testlerinin insanların kendi pazarlarını anlama veya gerçekten gerekli olduğunu anlama yeteneklerini ortadan kaldırmadığı kesinlikle doğrudur. Aynı zamanda, çekiçler ve çivilerle ilgili eski çizgi neredeyse akla sıçramaktadır. Eğer sadece zaman daha da kötü olabilir var çekiç, ancak sahip çok bu çekiç ile tecrübe ve birçok farklı durumlarda inanılmaz derecede iyi çalışır gerçekten kaliteli bir çekiç olduğunu biliyorum. Bu kadar çok durumda pek çok konuda iyi olması gerçeği, eldeki iş için tamamen yanlış bir araç olduğunun farkına varmayı bile zorlaştırıyor.