मेरे विकास कार्यों में एक दोहराई जाने वाली थीम इन-हाउस प्लग-इन आर्किटेक्चर का उपयोग या निर्माण है। मैंने इसे कई तरीकों से देखा है - कॉन्फ़िगरेशन फ़ाइलें (XML, .conf, और इसी तरह), इनहेरिटेंस फ्रेमवर्क, डेटाबेस जानकारी, लाइब्रेरीज़ और अन्य। मेरे अनुभव में:
- डेटाबेस आपके कॉन्फ़िगरेशन जानकारी को संग्रहीत करने के लिए एक शानदार जगह नहीं है, विशेष रूप से डेटा के साथ सह-मेलिंग
- एक वंशानुगत पदानुक्रम के साथ इसे स्वीकार करने के लिए प्लग-इन के बारे में ज्ञान होना आवश्यक है, जिसका अर्थ है कि प्लग-इन आर्किटेक्चर यह सब गतिशील नहीं है
- कॉन्फ़िगरेशन फ़ाइलें सरल जानकारी प्रदान करने के लिए अच्छी तरह से काम करती हैं, लेकिन अधिक जटिल व्यवहारों को संभाल नहीं सकती हैं
- लाइब्रेरी अच्छी तरह से काम करने लगती हैं, लेकिन एकतरफा निर्भरता को सावधानीपूर्वक बनाना पड़ता है।
जैसा कि मैंने विभिन्न आर्किटेक्चर से सीखना चाहा है, जिनके साथ मैंने काम किया है, मैं सुझाव के लिए समुदाय को भी देख रहा हूं। आपने SOLID प्लग-इन आर्किटेक्चर को कैसे लागू किया है? आपकी सबसे बुरी विफलता (या आपके द्वारा देखी गई सबसे बुरी विफलता) क्या थी? यदि आप नए प्लग-इन आर्किटेक्चर को लागू करने जा रहे हैं तो आप क्या करेंगे? एसडीके या ओपन सोर्स प्रोजेक्ट जो आपने साथ काम किया है, एक अच्छी वास्तुकला का सबसे अच्छा उदाहरण है?
कुछ उदाहरण जो मैं अपने दम पर पा रहा हूँ:
- पर्ल का मॉड्यूल :: पर्ल में निर्भरता इंजेक्शन के लिए प्लग और आईओसी
- निर्भरता इंजेक्शन के लिए विभिन्न स्प्रिंग फ्रेमवर्क (जावा, .NET, पायथन)।
- जावा के लिए एक सूची के साथ एक SO प्रश्न ( सेवा प्रदाता इंटरफेस सहित )
- डॉ। डॉब्स लेख की ओर इशारा करते हुए C ++ के लिए एक SO प्रश्न
- ASP.NET MVC के लिए एक विशिष्ट प्लगइन विचार के बारे में एक SO प्रश्न
ये उदाहरण विभिन्न भाषा शक्तियों के लिए प्रतीत होते हैं। क्या एक अच्छा प्लगइन आर्किटेक्चर जरूरी भाषा से बंधा है? क्या प्लगइन आर्किटेक्चर बनाने के लिए टूल का उपयोग करना सबसे अच्छा है, या इसे अपने निम्नलिखित मॉडल पर करना है?