Geliştirme çalışmamda tekrarlanan bir tema, bir şirket içi eklenti mimarisinin kullanılması veya oluşturulmasıydı. Yapılandırma dosyaları (XML, .conf, vb.), Miras çerçeveleri, veritabanı bilgileri, kütüphaneler ve diğerleri gibi birçok yöne yaklaştığını gördüm. Tecrübelerime göre:
- Bir veritabanı, yapılandırma verilerinizi saklamak için harika bir yer değildir, özellikle de verilerle karışır
- Bunu bir miras hiyerarşisiyle denemek, eklentilerin kodlanabilmesi için bilgi gerektirir, yani eklenti mimarisi o kadar dinamik değildir
- Yapılandırma dosyaları basit bilgi sağlamak için iyi çalışır, ancak daha karmaşık davranışları kaldıramaz
- Kütüphaneler iyi çalışıyor gibi gözükse de, tek yönlü bağımlılıklar dikkatle oluşturulmalıdır.
Çalıştığım çeşitli mimarilerden öğrenmeye çalışırken, aynı zamanda öneriler için topluma bakıyorum. SOLID eklenti mimarisini nasıl uyguladınız? En kötü başarısızlığın neydi (ya da gördüğün en kötü başarısızlık)? Yeni bir eklenti mimarisi uygulayacak olsaydınız ne yapardınız? Hangi SDK ya da açık kaynaklı bir projede iyi bir mimariye en iyi örnek veriliyor?
Kendi başıma bulduğum birkaç örnek:
- Perl Modülü :: Perl'de bağımlılık enjeksiyonu için takılabilir ve IOC
- Bağımlılık enjeksiyonu için çeşitli Bahar çerçeveleri (Java, .NET, Python).
- Bir SO soru Java için bir liste ile (dahil Servis Sağlayıcı Arayüzleri )
- Dr. Dobbs makalesine işaret eden C ++ için bir SO sorusu
- Bir SO soru ASP.NET MVC için özel bir eklenti fikri ile ilgili
Bu örnekler çeşitli dil güçleri için geçerli gibi görünmektedir. İyi bir eklenti mimarisi mutlaka dile bağlı mı? Bir eklenti mimarisi oluşturmak veya kendi aşağıdaki modellerinde yapmak için araçlar kullanmak en iyisidir?