क्या DDD-Lite निर्भरता इंजेक्शन के लिए एक पैटर्न भाषा है?


17

मैं ग्रेग यंग की 7 वजहों पर डगमगा गया कि डीडीडी प्रोजेक्ट्स फेल क्यों है, जहां वह उल्लेख करता है कि वह डीडीडी-लाइट को 7:20 पर कॉल करता है।

सारांश यह है कि, वह मूल रूप से DDD से संबंधित कुछ और करने के बिना एक पैटर्न भाषाओं (संस्थाओं, रिपॉजिटरी, मूल्य ऑब्जेक्ट्स, सेवाओं, आदि) के रूप में कुछ DDD का उपयोग करता है। वह .net में 60% या अधिक डोमेन मॉडल पोस्ट करता है। DDD-Lite हैं। वह सोचता है कि डीडीडी-लाइट मूल रूप से निर्भरता इंजेक्शन के आसपास एक भाषा का निर्माण कर रहा है, जो आपको वास्तव में करने की आवश्यकता नहीं है। वह कहते हैं कि या तो डीडीडी पूरी तरह से करें या कुछ सरल करें। अन्यथा वह दावा करता है कि एक व्यक्ति अच्छे सार का निर्माण करने में इस काम को पूरा कर रहा है, लेकिन बिना किसी वास्तविक लाभ के।

मुझे स्वीकार करना चाहिए कि मैं डीडीडी के बारे में उतना नहीं जानता जितना मैं चाहूंगा, और अभी तक इसका उपयोग करने की कोशिश नहीं की है। मैंने एरिक इवान की किताब भी नहीं पढ़ी है। मुझे डिपेंडेंसी इंजेक्शन में बहुत दिलचस्पी है और कई, इस विषय पर कई किताबें और ब्लॉग एरिक इवांस के डीडीसी पुस्तक से संदर्भ और संदर्भ अवधारणाओं का उपयोग करते हैं। यह वह जगह है जहाँ मुझे DDD अवधारणाओं से अवगत कराया गया है। मैंने जो किताबें पढ़ी हैं, उनमें यह शामिल है:

  • .NET में निर्भरता इंजेक्शन
  • Microsoft .Net: एंटरप्राइज़ के लिए आर्किटेक्चर अनुप्रयोग
  • .NET में ब्राउनफील्ड अनुप्रयोग विकास

यदि कोई निर्भरता इंजेक्शन करना चाहता है, तो "डीडीडी-लाइट" करने के लिए अधिक सरल विकल्प क्या हैं? ऐसा लगता है कि मेरे लिए अच्छे सार का निर्माण करना काफी उपयोगी है, भले ही कोई "DDD-Lite" तरीके से DDD की अवधारणाओं का उपयोग कर रहा हो। (मार्क सीमन के ब्लॉग पोस्ट देखें: इंटरफेस एब्सट्रैक्शन नहीं हैं , और टुअर्ड बेहतर एब्स्ट्रैक्ट हैं )। मेरे पास एक कठिन समय है जो हर किसी पर भरोसा कर रहा है कि डिपेंडेंसी इंजेक्शन भी हो रहा है (या करने की आवश्यकता है) पूर्ण डीडीडी। क्या मैंने डीडीडी-लाइट के बारे में ग्रेग यंग के तर्क को किसी तरह गलत समझा?

जवाबों:


15

निर्भरता इंजेक्शन और डीडीडी दो अप्रिय अवधारणाएं हैं। डिपेंडेंसी इंजेक्शन करने के लिए डीडीडी करने की आवश्यकता नहीं होती है और न ही डीडीडी को डिपेंडेंसी इंजेक्शन की आवश्यकता होती है।

डीडीडी के बहुत सारे प्रोजेक्ट विफल हो जाते हैं क्योंकि वे पैटर्न चुनते हैं लेकिन डीडीडी के पीछे की प्रक्रिया की उपेक्षा करते हैं। वे व्यावसायिक नियमों को निकालने के लिए समय नहीं लेते हैं। वे डोमेन मॉडल पर और सावधान सार पर ध्यान केंद्रित नहीं करते हैं। वे एक सर्वव्यापी भाषा स्थापित नहीं करते हैं।

संक्षेप में: मुझे लगता है कि यह गलतफहमी है


4
+1 इवांस की पुस्तक में वर्णित पैटर्न अभी भी बहुत व्यापक संदर्भ में मूल्यवान हैं - जब तक कि कोई यह समझता है कि अलगाव में उन्हें लागू करना इसे डीडीडी नहीं बनाता है।
मार्क सीमन

1
हां मुझे DI का एहसास है! = DDD। @MarkSeemann, इसलिए ग्रेग के तर्क से लगता है कि लोग कह रहे हैं कि वे DDD कर रहे हैं जब वे नहीं हैं। ठीक है, मैं समझ गया लेकिन वह यह भी तर्क देता है कि डीडीडी (समुच्चय, रिपॉजिटरी, डोमेन एंटिटीज, वैल्यू ऑब्जेक्ट्स, सर्विसेज, आदि) में पाए गए सार का उपयोग करना अनावश्यक है, यदि उनका उपयोग सिर्फ एक निर्भरता इंजेक्शन वास्तुकला का समर्थन करने के लिए किया जा रहा है। यही वह हिस्सा है जो मुझे नहीं मिलता (इसमें गलत क्या है) शायद इस तरह है भूसे आदमी तर्क , ऐसी बातों का उपयोग कर के रूप में नहीं कर रहे हैं बस "निर्भरता इंजेक्शन के चारों ओर एक भाषा का निर्माण करने के लिए"।
मैट

3
ग्रेग आंशिक रूप से सही है: DDD में विशेष पैटर्न विशेष रूप से DI से संबंधित नहीं हैं। हालाँकि, मेरी पुस्तक में मैंने शब्दावली में से कुछ को उठाया, विशेष रूप से इकाई बनाम मूल्य वस्तु बनाम सेवा की परिभाषा क्योंकि यह समझना महत्वपूर्ण है कि कहाँ इंजेक्ट करना है। हालाँकि, यह शब्दावली और साथ ही रिपोजिटरी और फैक्टरी जैसे अन्य पैटर्न DDD पुस्तक की तुलना में बहुत पुराने हैं, इसलिए यह कहना कि DDD के बाहर ऐसी चीजें अनावश्यक हैं, मुझे गलत लगता है। यह इस बात पर निर्भर करता है कि आप वास्तव में DDD को कैसे परिभाषित करते हैं।
मार्क सेमैन

2

मुझे विश्वास है कि ग्रेग पूरे डीडीडी दृष्टिकोण के बजाय डोमेन-चालित डिजाइन पैटर्न का एक सबसेट अगर सरल अनुप्रयोग का उल्लेख कर रहा है। DDD-Lite शब्द का तात्पर्य पुस्तक http://www.infoq.com/minibooks/domain-driven-design-quickly से है जो DDD के नए शौक के बीच लोकप्रिय हुआ करता था, लेकिन केवल इस पर ध्यान केंद्रित करने के लिए पूरी तस्वीर याद आती है स्थानीय मॉडलिंग डिजाइन पैटर्न।

हालांकि डिपेंडेंसी इंजेक्शन एक अच्छी बात मानी जाती है, लेकिन डीडीडी और डीआई के बीच कोई मजबूत संबंध नहीं है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.