2010-03-22 11 views
10

क्या कोई भी डोमेन संचालित डिजाइन से तकनीकों का उपयोग कर रहा है? मैंने हाल ही में एक ही नाम की एरिक इवांस पुस्तक को पढ़ा है (ठीक है, इसमें से अधिकांश!) और किसी भी परियोजना से (विशेष रूप से सी #/सी ++ में) इसे लागू करने वाले किसी भी व्यक्ति से सुनने में रुचि होगीडोमेन संचालित डिजाइन कार्यान्वित

मैं इस सवाल का खुला समाप्त हो गया के रूप में मैं यथासंभव अधिक से अधिक टिप्पणियां देखना चाहते हैं रखा है, लेकिन मैं विशेष रूप से कुछ प्रश्न हैं:

1 - भाषा का समर्थन करता है, तो प्रकार असली 'मूल्य प्रकार' होना चाहिए मूल्य ? जैसे सी #

2 में एक struct वहाँ सी # करता है कि स्पष्ट भाषा और मॉडल के बीच सहयोग में किसी भी सुविधा है (उदाहरण के लिए, यह एक इकाई है, यह एक समग्र आदि है)

उत्तर

6

हाँ! मैं अपनी परियोजनाओं में डीडीडी का उपयोग करता हूं (लेकिन I'm biased!)

याद रखें कि डोमेन संचालित डिजाइन दिशानिर्देश प्रदान करता है, सख्त जवाब नहीं। यह प्रयोग करने के बाद ही है कि आप समझेंगे कि कौन से पहलू आपकी विशिष्ट परियोजना के लिए काम करते हैं।

आपके प्रश्नों का रैंप:

1 - आप structs इस्तेमाल कर सकते हैं - लेकिन वहाँ तकनीकी बाधाओं है कि उन्हें का उपयोग कर आप को रोकने के हो सकता है। उदाहरण के लिए, आपके पास ऐसी संस्थाएं हो सकती हैं जो हजारों मूल्य वस्तुओं का संदर्भ देती हैं जो समान मूल्यों के होते हैं। इस मामले में, फ्लाईवेट ऑब्जेक्ट मेमोरी उपयोग रखने के लिए ऑब्जेक्ट का उपयोग करना बेहतर हो सकता है।

2 - मैं इंटरफेस (उदा।IEntity, IValueObject, IAggregateRoot, ISpecification)। जेनेरिक और LINQ तकनीकी चिंताओं में सहायता करने में मदद कर सकते हैं, लेकिन डिज़ाइन परिप्रेक्ष्य से कम सहायक होते हैं।

मैंने एक [मुफ्त .NET लाइब्रेरी] [2] विशेष रूप से डीडीडी पर केंद्रित किया है, जो विचार/प्रेरणा से मिल सकता है। [इसके बारे में यहां और पढ़ें।] [3] (परियोजना मर चुकी है)

मुझे वास्तव में दिलचस्पी है हालांकि: क्या आपको लगता है कि डीडीडी के कौन से पहलू आपको लाभान्वित करेंगे? "डोमेन संचालित" पहलू, या कार्यान्वयन पहलुओं?

+2

मैं अपने पुस्तकालय में रुचि होता है, लेकिन लिंक मर चुका है ... – Kjellski

+0

मेरे लिए एक ही, लिंक अभी भी मृत – mfeineis

+0

क्षमा करें लोग है, लेकिन परियोजना के लिए मौत हो चुकी है कुछ समय। –

3

1: निर्भर करता है । सी # में वैल्यू टाइप परमाणु पिमेटिव्स (इंट, बाइट इत्यादि) के लिए हैं। यदि आपके पास ऐसा कुछ है - यह समझ में आता है। यदि आपका मान प्रकार बड़ा है, नहीं।

2: नहीं। आम तौर पर यह एक भाषा सुविधा नहीं है।

मैं अगले पढ़ने के रूप में सुझाव देता हूं: स्कॉट अंबालर का "बिल्डिंग ऑब्जेक्ट एप्लीकेशन वर्क वर्क"।

2

1 - भाषा का समर्थन करता है, तो मूल्य प्रकार वास्तविक होना चाहिए 'मान प्रकार'?

मुझे लगता है कि इसका उत्तर आपके आवेदन के भीतर उपयोग और अन्य कारकों पर निर्भर करेगा, लेकिन जिस पैटर्न को आप शायद खोज रहे हैं वह "डेटा ट्रांसफर ऑब्जेक्ट" है जिसमें गुण, गेटर्स और सेटर्स हैं, लेकिन कुछ भी नहीं । यह या तो एक संरचना या वस्तु हो सकती है, और ऑब्जेक्ट्स शायद स्मृति प्रबंधन के मुद्दों को सरल बना देंगे, खासकर मुक्केबाजी के संबंध में।

2- वहाँ सी # करता है कि स्पष्ट भाषा और मॉडल के बीच सहयोग में किसी भी सुविधा है (उदाहरण के लिए, यह एक इकाई है, यह एक समग्र आदि है)

मैं जाना होगा नामकरण सम्मेलनों के साथ, उदाहरण के लिए, "ग्राहक एंटीटी", "ऑर्डरएग्रेगेट", आदि

अच्छा प्रश्न; मैं प्रतिक्रियाओं को देखने की उम्मीद कर रहा हूं।

1

1 - यदि भाषा का समर्थन करता है तो मूल्य प्रकार वास्तविक 'मूल्य प्रकार' होना चाहिए? जैसे सी # में एक struct

"मान ऑब्जेक्ट" की DDD धारणा और की "मान प्रकार" (सी # में structs) CLR धारणा के बीच भ्रमित हो न करें। पूर्व को डिजाइन के साथ करना है, और उत्तरार्द्ध निम्न स्तर के कार्यान्वयन विचार है कि वास्तव में किसी और चीज की तुलना में स्मृति प्रबंधन के साथ और अधिक करना है।

2 - वहाँ सी # करता है कि स्पष्ट भाषा और मॉडल के बीच सहयोग में किसी भी सुविधा है

(उदाहरण के लिए, यह एक इकाई है, यह एक समग्र आदि है) जब संस्थाओं बनाम निपटने मूल्य, हां। हमने पाया है कि सी # में रीडोनली का उपयोग डीडीडी में वैल्यू ऑब्जेक्ट्स को लागू करने के लिए बहुत उपयोगी है। हम Pluralsight पर बड़े पैमाने पर डीडीडी को गले लगा रहे हैं, और मैं समय-समय पर Pluralsight ब्लॉग पर ब्लॉग करता हूं। वास्तव में मैंने इस सप्ताह के अंत में बाहर जाने के लिए रीडोनली और डीडीडी के बारे में दो ब्लॉग प्रविष्टियां निर्धारित की हैं।

[1] http://blog.pluralsight.com/tag/ddd/

संबंधित मुद्दे