सुनिश्चित करें कि आपने चाचा बॉब की हाल की टिप्पणियों को TDD में डिजाइन की भूमिका के बारे में समीक्षा की है ।
डोमेन-चालित डिज़ाइन में बहुत सारे तकनीकी पैटर्न शामिल होते हैं, जो एप्लीकेशन लेयर, इन्फ्रास्ट्रक्चर लेयर, डोमेन लेयर, पर्सिस्टेंस लेयर जैसी अच्छी तरह से स्थापित परतों को परिभाषित करते हैं।
उदी दहन: "भगवान, मैं कैसे लेयरिंग से नफरत करता हूं।" वह अपनी चर्चा CQRS में इस पर चर्चा करने के लिए कुछ समय बिताते हैं - लेकिन अलग (लेयरिंग 18m30s से शुरू होता है)
मैं आपकी सजा को थोड़ा अलग तरीके से लिखूंगा; "डीडीडी यह स्वीकार करता है कि अधिकांश व्यावसायिक अनुप्रयोगों के लिए कई चिंताएं आम हैं और उन चिंताओं के समाधान के लिए अलग-अलग जीवनकाल हैं" ।
उदाहरण के लिए, डोमेन चिंताएं, एक नियम के रूप में, लचीली होने की आवश्यकता होती है - खासकर जब आप किसी विशेष व्यवसाय के लिए समाधान अनुकूलित कर रहे हों। आखिरकार, डोमेन चिंता करता है कि कंपनी कैसे व्यापार करती है, जो कहना है कि कंपनी कैसे पैसा बनाती है और जल्दी से व्यावसायिक सुधार देने में सक्षम है, यह मुफ्त राजस्व है।
दूसरी ओर, आपको शायद दृढ़ता घटक को बदलने की आवश्यकता नहीं है। अंतिम रिलीज़ पर काम करने वाला डेटाबेस समाधान भी संभवतः इस रिलीज़ पर काम करेगा।
आवेदन की चिंताएं कहीं बीच में हैं; वे स्थिर होते हैं ताकि उपयोगकर्ताओं को हर रिलीज़ के साथ एक नया ऐप सीखने की आवश्यकता न हो।
इसके अलावा, किसी भी चिंता को हल करने के लिए कई कार्यान्वयन हो सकते हैं। उदाहरण के लिए, एप्लिकेशन को अपनी वर्तमान स्थिति के केवल स्नैपशॉट की आवश्यकता हो सकती है - बस एक फ़ाइल को डिस्क पर सहेजना पर्याप्त होगा। और आपके पहले कुछ पुनरावृत्तियों में, डोमेन की सभी आवश्यकताएं भी हो सकती हैं। लेकिन अंततः एक कहानी आती है जो तदर्थ क्वेरी समर्थन के लिए कॉल करती है, और आप समझते हैं कि रिलेशनल डेटाबेस को कॉन्फ़िगर करना खरोंच से एक को लागू करने की तुलना में बहुत आसान होगा। और फिर यह एक विशेषता है जो एक ग्राफ डेटाबेस में बेहतर काम करेगा।
इस बीच, सीटीओ ऐप का एक संस्करण चाहता है जो उसके फोन पर चलता है; सीईओ सिर्फ एक आदमी से सुना है कि एपीआई प्रकाशित करना बड़ी बात है।
इसके अलावा, बिक्री टीम एक अलग मॉडल का उपयोग करती है, इसलिए हमें अलग मॉडल के साथ एक ही ऐप दें। ओह, लेकिन हम बहुत यात्रा कर रहे हैं, इसलिए हमारे संस्करण को तब काम करना होगा जब हम ऑफ़लाइन हों और बाद में सिंक करें ...
दूसरे शब्दों में, आप खाली प्लेसहोल्डर्स को लागू न करके ddd से सामरिक पैटर्न लागू करते हैं और यह मानते हैं कि वे बाद में भरे जाएंगे, लेकिन जब आप स्ट्रीम पार कर रहे होते हैं तो पहचानने के बजाय "अरे, यह मेरे डोमेन मॉडल में दृढ़ता कोड है, मुझे नहीं होना चाहिए।" अभी तक रिफैक्टिंग नहीं हुई है। ”