Kod Tekrarlama ilkesini çok ileriye götürdüğünüzü düşünüyorum. Kod Tekrarlamadan kaçınma noktasını düşünün. Mesele, mantıkta bir değişiklik olduğunda kontrol edilmesi gereken kod miktarını azaltmak ve açıkça benzer şekilde amaçlanmış blokları çarpanlarına ayırarak anlamayı arttırmaktır.
Tekrardan kaçınmak için çarpanlara ayırmanın düşüşleri, paylaşılan bloklardan birinin değişmesi gerektiğinde, şimdi daha karmaşık bir mirasa veya standart ve standart dışı uygulama arasında bir geçişe ihtiyaç duymanızdır.
Bu nedenle , bu bloklardan biri için bile , bu ortaklığın çarpanlarına ayrılarak elde edilen anlama faydalarına karşı mantık değiştirme olasılığını dikkatlice tartın . Bir uygulama diğerlerinden ayrılırsa, kodu tekrarlayarak çok daha iyi olabilirsiniz.
Bu tekrarlanan kodu korurken, daha karmaşık hale geldikçe ve sorun alanınız daha tanımlandıkça, tekrarlanan, şimdi daha karmaşık ancak aynı zamanda daha tanımlanmış bölümleri hesaba katmanın daha uygun olduğunu görebilirsiniz .
Tekrarlayan gibi görünen bir şeyin çarpanlara ayırmaya değer olup olmadığını görene kadar genellikle metin düzenleyiciyi aynı tutmaya çalışırım. Sadece tekrarı koruyorum, ancak daha sonra eşleşmesini metinsel olarak kolay tutarak o bloğun geleceğine bakıyorum.
Çoğu zaman, aynılık ve olası faktoring, gerçek, kaprisli, iş kuralları ve oldukça bağımlı, genellikle keyfi mantık gibi dağılmaya başlar; birkaç yaygın veritabanı uygulamasının tuhaflıklarıyla uğraşmak gibi (ANSI_NULLS veya bazıları akla gelen) eklenir; saf mantık gibi görünen şeyleri bükülmüş bir karmaşaya zorlamak , endüstrinin durumunun karmaşasıyla karşı karşıya kaldığında makul, savunulabilir karar mantığı sağlamaya çalışmak .
Bana öyle geliyor ki, insanlar faktoring yapmaya çalıştığınız şeyi hesaba katmaya çalışırsa, Do1Then2If2False Do1IfTrueDo2 gibi değersiz yapılardan oluşan bir kütüphanemiz olacaktı.
Daha karmaşık ve daha açık bir şekilde, bloğun onu çarpanlara ayırma emriyle değişmeyeceği daha açık ve net olmalıdır.
Bu bir yazılım . Geri dönebilir ve şu anda aynı olan birkaç bloğu düzenleyebilirsiniz. 5 dakika sürecek. Ve sadece boşalarak ve iyi, RSI karşıtı bir klavyeye sahip olduğunuzdan emin olarak, boşa harcanan faktoringi ve daha sonra saatlerce boşa harcanan miras ve anahtarlama geliştirmesini kaydedebilirsiniz.