Geçen yıl, Bağımlılık Enjeksiyonu ve bir IOC kapsayıcısı kullanarak yeni bir sistem oluşturdum. Bu bana DI hakkında çok şey öğretti!
Ancak, kavramları ve uygun kalıpları öğrendikten sonra bile, kodu çözmek ve bir IOC kapsayıcısını eski bir uygulamaya tanıtmak için bir zorluk olduğunu düşünüyorum. Uygulama, gerçek bir uygulamanın ezici olacağı noktaya kadar büyüktür. Değer anlaşılsa ve zaman tanınsa bile. Kim böyle bir şey için zaman verdi ??
Amaç, iş mantığına birim testleri getirmektir!
Test önleyici veritabanı çağrıları ile iç içe iş mantığı.
Makaleleri okudum ve bu Los Techies makalesinde açıklanan Zavallı Adamın Bağımlılık Enjeksiyonunun tehlikelerini anlıyorum . Hiçbir şeyi gerçekten ayırmadığını anlıyorum .
Uygulamalar yeni bağımlılıklar gerektirdiğinden, sistem genelinde yeniden düzenlemeyi içerebileceğini anlıyorum. Herhangi bir boyutta yeni bir projede kullanmayı düşünmem.
Soru: o kadar Poor Man DI kullanmak iyi mi tanıtmak bir eski uygulamalara test edilebilir ve yuvarladınmı?
Buna ek olarak, Zavallı Adam'ın DI'sini gerçek Bağımlılık Enjeksiyonuna temel bir yaklaşım olarak kullanmak, ilkenin ihtiyacı ve faydaları konusunda eğitim vermenin değerli bir yolu mudur?
Bir veritabanı çağrı bağımlılığı ve soyut bir arabirimin arkasına çağrı olan bir yöntemi refactor olabilir? Basit bir şekilde bu soyutlamaya sahip olmak, bu yöntemi test edilebilir hale getirecektir, çünkü sahte bir uygulama bir yapıcı aşırı yüklenmesi yoluyla aktarılabilir.
Yol boyunca, çaba destekçileri kazandığında, proje bir IOC konteyneri uygulamak için güncellenebilir ve soyutlayıcıları alan inşaatçılar orada olacaktı.
I consider it a challenge to decouple code and introduce an IOC container into a legacy application
tabii ki öyle. Adı teknik borç. Bu nedenle, herhangi bir büyük yenilemeden önce, tercih edilen küçük ve sürekli refraktörler. Büyük tasarım kusurlarını azaltmak ve IoC'ye geçmek daha az zor olacaktır.