मुझे DDD के लिए कुछ अच्छे उदाहरण कहां मिलेंगे? [बन्द है]


390

मैं डोमेन ड्रिवेन डिज़ाइन के बारे में सीख रहा हूँ, हालाँकि कुछ व्यावहारिक मुद्दे हैं जो मुझे भ्रमित कर रहे हैं कि मुझे लगता है कि कुछ अच्छे नमूने देखने से स्पष्ट हो सकता है।

क्या किसी को कुछ अच्छे वर्किंग कोड सैंपल के बारे में पता है जो बेसिक DDD कॉन्सेप्ट की मॉडलिंग का अच्छा काम करता है?

में विशेष रूप से रुचि रखते हैं

  • एक इलस्ट्रेटिव डोमेन मॉडल
  • डेटा संग्रह स्थान
  • डोमेन / अनुप्रयोग सेवाओं का उपयोग
  • मूल्य वस्तुओं
  • अलग-अलग जड़ें

42
IHMO इस तरह की बहस से बहुत मदद मिलेगी। कभी-कभी एक साधारण सवाल से ज्यादा। उदाहरण के लिए, हम इसे एक प्रश्न में बदल सकते हैं: "मुझे DDD के लिए कुछ अच्छे उदाहरण कहां मिलेंगे?" और यह प्रश्नोत्तर प्रारूप के साथ काम करता है।
जिज्मो

1
मुझे वॉन वर्नोन की किताब से "फुर्तीली प्रबंधन परियोजना" का उदाहरण मिला है। यह आपके द्वारा गणना किए जाने वाले भवन ब्लॉकों के व्यावहारिक कार्यान्वयन को दिखाता है, साथ ही साथ विभिन्न बंधे हुए संदर्भों से निपटने के लिए, आप यहां कोड पा सकते हैं: github.com/VaughnVernon/IDDD_Samples
Mehdi।

1
मैं इस उदाहरण की सिफारिश करूंगा: github.com/vkhorikov/DddInAction
व्लादिमीर

1
: आप यहाँ देख सकते हैं dzone.com/storage/assets/...
Chaklader Asfak Arefe

जवाबों:


199

DDD नमूनों के साथ कठिनाई यह है कि वे अक्सर बहुत विशिष्ट डोमेन होते हैं और परिणामी प्रणाली का तकनीकी कार्यान्वयन हमेशा उन डिज़ाइन निर्णयों और संक्रमणों को नहीं दिखाता है जो डोमेन मॉडलिंग में किए गए थे, जो वास्तव में DDD के मूल में है। DDD प्रक्रिया के बारे में कोड की तुलना में बहुत अधिक है। (जैसा कि कुछ कहते हैं, सबसे अच्छा DDD नमूना पुस्तक ही है!)

उस ने कहा, एक अच्छी तरह से टिप्पणी की गई नमूना ऐप को कम से कम इन निर्णयों को प्रकट करना चाहिए और आपको इसे लागू करने के लिए उपयोग किए जाने वाले तकनीकी पैटर्न के साथ अपने डोमेन मॉडल के मिलान के संदर्भ में कुछ दिशा देनी चाहिए।

आपने यह निर्दिष्ट नहीं किया है कि आप किस भाषा का उपयोग कर रहे हैं, लेकिन मैं आपको कुछ अलग भाषाओं में कुछ दूँगा:

DDDSample - एक जावा नमूना जो अपनी पुस्तक में एरिक इवांस के उदाहरणों को दर्शाता है । यह अच्छी तरह से टिप्पणी की गई है और अलग-अलग बंधे हुए संदर्भों (यानी, प्रस्तुति परत) के साथ विभिन्न समस्याओं को हल करने के विभिन्न तरीकों को दिखाती है। इस पर सक्रिय रूप से काम किया जा रहा है, इसलिए इसे अपडेट के लिए नियमित रूप से जांचें।

dddps - टिम मैककार्थी का नमूना C # ऐप उनकी पुस्तक के लिए, .NET डोमेन-चालित डिज़ाइन C # के साथ

S # arp Architecture - एक व्यावहारिक C # उदाहरण, एक वास्तविक डोमेन समस्या की कमी के कारण शायद "शुद्ध" एक DDD दृष्टिकोण नहीं है, लेकिन फिर भी एक अच्छा स्वच्छ दृष्टिकोण है।

इन सभी सैंपल ऐप्स के साथ, एसवीएन / जो भी वास्तव में सोच और प्रौद्योगिकी पैटर्न का विचार प्राप्त करना चाहते हैं, उन्हें नियमित रूप से अपडेट किया जाना चाहिए, नवीनतम ट्रंक संस्करणों की जांच करना सबसे अच्छा है।


2
जैसा कि मूल प्रश्न टिप्पणी में @Mehdi का उल्लेख किया गया है आपको वॉन वर्नोन से अद्भुत उदाहरण जोड़ना चाहिए। यह अब तक मैंने देखे गए DDD पैटर्न का सबसे अच्छा कार्यान्वयन है: github.com/VaughnVernon/IDDD_Samples
सिल्वेन लेकोय

मुझे पता है कि यह पुराना है, लेकिन इसका उदाहरण dddpsवास्तव में पूरी तरह से एनीमिक और ओओपी के लिए काउंटर प्रतीत होता है। डोमेन ऑब्जेक्ट्स में से किसी में भी कोई व्यवहार नहीं है, और सेवा परत वर्ग मूल रूप से रिपॉजिटरी के लिए 1: 1 प्रतिनिधि है। मुझे यकीन नहीं है कि इसे डीडीडी का "अच्छा" उदाहरण माना जाना चाहिए? मैं अभी भी अपने आप को सीख रहा हूं, लेकिन S # arp आर्किटेक्चर में नमूने DDD सीखने वालों के लिए एक बेहतर उदाहरण प्रतीत होते हैं क्योंकि यह राज्य और व्यवहार दोनों को शामिल करता है, जो कि अच्छा OOP डिज़ाइन है।
डेविड एंडरसन

अब आपको वॉन के वर्नोन के उत्कृष्ट नमूने को डोमेन ड्रिवेन डिज़ाइन (IDDD) के लेखक के रूप में जोड़ना चाहिए: github.com/VaughnVernon/IDDD_Samples
सिल्वेन लेकोयेन

23

प्रति स्रोत परियोजनाएं नहीं, लेकिन मैंने Parleys.com पर ठोकर खाई, जिसमें कुछ अच्छे वीडियो हैं जो DDD को अच्छी तरह से कवर करते हैं (फ्लैश की आवश्यकता है:)

मैंने इन्हें लगभग गैर-मौजूद डीडीडी उदाहरणों की तुलना में अधिक उपयोगी पाया जो वर्तमान में उपलब्ध हैं।


लिंक काम नहीं कर रहा
12

14

एरिक इवांस द्वारा डोमेन-संचालित डिज़ाइन बुक से .NET डीडीडी नमूना यहां पाया जा सकता है: http://dddsamplenet.codeplex.com

चीयर्स,

जकुब जी


11

की जाँच करें परियोजना सिल्क । यह न केवल DDD बल्कि अन्य अत्याधुनिक पैटर्न प्रदर्शित करता है। यह किसी भी वेब डेवलपर के लिए एक उत्कृष्ट संसाधन है। MSDN पर प्रोजेक्ट का पूर्ण अवलोकन पाया जा सकता है ।


स्रोत कोड अब उपलब्ध नहीं है :(
Dherik

7

डोमेन संचालित डिज़ाइन के आधार पर यह एक अच्छा उदाहरण है और बताता है कि अलग डोमेन परत होना क्यों महत्वपूर्ण है।
Microsoft स्पैन - DDD N लेयर आर्किटेक्चर


1
मैं इसे वोट नहीं कर सकता, लेकिन आयेंडे के ब्लॉग पर जाकर देख सकता हूं कि उन्हें क्यों लगता है कि यह एक अच्छा उदाहरण नहीं है। ayende.com/blog/19457/…
क्रिस

1
आपके द्वारा प्रदान किया गया लिंक काम नहीं करता, संदेश त्रुटि: 'प्रोजेक्ट' microsoftnlayerapp 'नहीं मिला'
उमर AMEZOUG


5

कोड कैम्प सर्वर , जेफरी पलेर्मो का नमूना कोड ASP.NET MVC इन एक्शन पुस्तक के लिए । जबकि पुस्तक प्रेजेंटेशन लेयर पर केंद्रित है, डीडीडी का उपयोग करके एप्लिकेशन को मॉडलिंग किया जाता है।

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