जवाबों:
सबसे पहले, यदि आप नहीं जानते कि आपको इसकी आवश्यकता है तो यह संभव है कि आपको इसकी आवश्यकता न हो। यदि आप उन समस्याओं को नहीं पहचानते हैं जो DDD हल करती हैं तो शायद आपके पास वे समस्याएं नहीं हैं। यहां तक कि डीडीडी अधिवक्ता अक्सर इंगित करेंगे कि डीडीडी केवल बड़े (> 6 महीने) परियोजनाओं के लिए है।
यह मानते हुए कि आप अभी भी इस बिंदु पर पढ़ रहे हैं, मेरा डीडीडी इस पर है:
DDD आपके सॉफ़्टवेयर को वास्तविक-विश्व प्रणाली या प्रक्रिया का एक मॉडल बनाने की कोशिश कर रहा है। DDD का उपयोग करने के लिए, आप एक डोमेन विशेषज्ञ के साथ मिलकर काम करने के लिए होते हैं जो यह समझा सकता है कि वास्तविक-दुनिया प्रणाली कैसे काम करती है। उदाहरण के लिए, यदि आप एक ऐसी प्रणाली विकसित कर रहे हैं जो घोड़े की दौड़ पर दांव लगाने का काम करती है, तो आपका डोमेन विशेषज्ञ एक अनुभवी सट्टेबाज हो सकता है।
अपने और डोमेन विशेषज्ञ के बीच, आप एक सर्वव्यापी भाषा (यूएल) का निर्माण करते हैं , जो मूल रूप से सिस्टम का एक वैचारिक विवरण है। विचार यह है कि आपको यह लिखने में सक्षम होना चाहिए कि सिस्टम इस तरह से क्या करता है कि डोमेन विशेषज्ञ इसे पढ़ सकें और सत्यापित कर सकें कि यह सही है। हमारे सट्टेबाजी उदाहरण में, सर्वव्यापी भाषा में 'रेस', 'बेट', 'ऑड्स' आदि जैसे शब्दों की परिभाषा शामिल होगी।
यूएल द्वारा वर्णित अवधारणाएं आपके ऑब्जेक्ट-ओरिएंटेड डिज़ाइन का आधार बनेंगी। DDD आपकी वस्तुओं को कैसे इंटरैक्ट करना चाहिए, इस पर कुछ स्पष्ट मार्गदर्शन प्रदान करता है, और आपको अपनी वस्तुओं को निम्नलिखित श्रेणियों में विभाजित करने में मदद करता है:
डीडीडी भी कई पैटर्न सुझाता है:
अब, इस बिंदु पर मेरा कहना है कि यदि आपने इनमें से किसी भी चीज़ के बारे में नहीं सुना है, तो आपको किसी भी परियोजना पर डीडीडी का उपयोग करने की कोशिश नहीं करनी चाहिए, जिसकी आपके पास समय सीमा है। DDD का प्रयास करने से पहले, आपको डिज़ाइन पैटर्न और एंटरप्राइज़ डिज़ाइन पैटर्न से परिचित होना चाहिए । इनको जानने से DDD को काबू करने में काफी आसानी होती है। और, जैसा कि ऊपर उल्लेख किया गया है, इन्फोक्यू (जहां आप डीडीडी के बारे में बातचीत भी पा सकते हैं) से डीडीडी के लिए एक मुफ्त परिचय उपलब्ध है।
उदाहरण के तौर पर StackOverflow को लें। कुछ वेब प्रपत्रों को डिज़ाइन करने के बजाय, आप पहले अपने समस्या डोमेन के भीतर संस्थाओं के ऑब्जेक्ट-ओरिएंटेड मॉडलिंग करने पर ध्यान केंद्रित करते हैं, उदाहरण के लिए उपयोगकर्ता, प्रश्न, उत्तर, वोट, टिप्पणियाँ आदि। क्योंकि डिज़ाइन समस्या के विवरण से प्रेरित है। डोमेन इसे डोमेन-संचालित डिज़ाइन कहा जाता है ।
आप एरिक इवांस की किताब में अधिक पढ़ सकते हैं ।