2012-07-31 18 views
11

BDD की मेरी समझ है कि एक उपयोगकर्ता कहानियों में एक प्रणाली का वर्णन और उसके बाद डेवलपर्स उन उपयोगकर्ता कहानियों लेते हैं और उन्हें जोड़ने के इरादे से एक आवेदन पत्र में बदल जाते हैं है काम प्रत्येक 'स्प्रिंट' (सॉफ्टवेयर विकास की अवधि) के साथ वास्तविक व्यापार मूल्य। नतीजा (जहां तक ​​मैं कह सकता हूं) यह है कि डोमेन मॉडल विकास प्रक्रियाओं में उपयोगकर्ता कहानियों से उभरता है। यही है, पहले 'स्प्रिंट' के बाद डोमेन मॉडल का अधिकांश डिजाइन नहीं किया गया होगा।कैसे व्यवहार प्रेरित करता है विकास (BDD) के साथ डोमेन प्रेरित डिजाइन (DDD)

DDD की मेरी समझ है कि सॉफ्टवेयर विकास, एक पूर्ण डोमेन मॉडल के संदर्भ में जारी है एक एक उभरती यद्यपि। डीडीडी में मॉडल बदलने की उम्मीद है, लेकिन फिर भी यह हर समय 'पूर्ण' है।

यह दो दृष्टिकोणों के बीच एक मौलिक अंतर प्रतीत होता है। लोगों ने इसे कैसे संभाला है?

उत्तर

17

बीडीडी अच्छी तरह से किया गया एक "पूर्ण" मॉडल का उत्पादन करता है। एक कारण है कि डैन नॉर्थ, जो व्यक्ति बीडीडी के साथ आया था, अपने ब्लॉग "embracing uncertainty" पर कॉल करता है। जाना जाता है, ज्ञेय और अज्ञेय:

मैं इसे उपयोगी इन दिनों चीजों के तीन प्रकार है कि हम विश्लेषण कर सकते हैं के बारे में सोच पाते हैं। में प्रवेश करने, उदाहरण के लिए यह अच्छी तरह से समझ रहा है -

ज्ञात सामान सरल है।। हमें परिदृश्यों से बात करने की ज़रूरत नहीं है।

ज्ञेय सामान आमतौर पर डोमेन से संबंधित है, या कुछ है कि पहले किया गया है। यह बीडीडी करने के लिए एक शानदार जगह है, क्योंकि यह व्यवसाय के हस्तांतरण में मदद करता है - डोमेन मॉडल सहित - व्यवसाय से लेकर डेवलपर्स तक। परिदृश्यों के माध्यम से बात करना बेहतर कहानियों को समझने का एक शानदार तरीका है। यह उन परिदृश्यों को ढूंढने में भी हमारी सहायता कर सकता है जिन्हें हमने याद किया है। क्रिस मैट्स, जो विश्लेषक हैं, जिन्होंने "दिए गए, कब, फिर" में "दिए गए" को "मॉडल को तोड़ने" में मदद की। उन्होंने वास्तव में किसी भी ऐसे व्यक्ति के लिए पुरस्कार प्रदान किए जो एक ऐसे परिदृश्य के साथ आ सकता था जो उसके मॉडल में शामिल नहीं था, जिसे वह परिभाषित करने और परिशोधित करने के लिए परिदृश्यों का उपयोग करता है।

अनजान सामान भी है। ऐसा तब होता है जब भी हम किसी नए काम पर काम कर रहे होते हैं, या कुछ ऐसा जो हमने पहले कभी नहीं किया है, या ऐसा कुछ जिसमें कोई विशेषज्ञता नहीं है। आप बता सकते हैं कि क्या आप इस जगह पर हैं क्योंकि व्यवसायिक लोग आश्चर्यचकित प्रतिक्रिया देना शुरू कर देंगे जब आप उन परिदृश्यों के साथ आते हैं जिनके बारे में उन्होंने सोचा नहीं है। इन स्थानों पर बीडीडी वास्तव में एक शानदार तरीका है, लेकिन इस बिंदु पर आप संभवतः परिदृश्यों को कम करने की कोशिश करना बंद कर देना चाहते हैं और बस कुछ करने का प्रयास करें और इसके बजाय प्रतिक्रिया प्राप्त करें। आपका डोमेन मॉडल, और आपकी उपयोगकर्ता कहानियां, और आपके परिदृश्य, धीरे-धीरे उभरेंगे (see the complex domain in the Cynefin model)।

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

DDD, के संबंध में जब हम BDD के साथ यह कर हम डोमेन मॉडल के उन भागों कि परिदृश्यों हम काम कर रहे के लिए प्रासंगिक हैं पर ध्यान केंद्रित करने, हालांकि हम बड़े डोमेन का एक विचार हो सकता है करते हैं कुल मिलाकर मॉडल। यदि आप बीडीडी के साथ Feature Injection का उपयोग कर रहे हैं तो आप पहले से ही सिस्टम की अधिकांश क्षमताओं, विशेष रूप से नए लोगों के माध्यम से बात करेंगे, इसलिए आपको पता होगा कि डोमेन में किस तरह की चीजें हैं। विकास और अन्य सभी नियम अभी भी लागू होते हैं। डोमेन भाषा लाने में मदद करने वाले परिदृश्यों के आसपास वार्तालापों के साथ बीडीडी और डीडीडी वास्तव में वास्तव में अच्छी तरह से काम करते हैं। वे मूल रूप से अलग नहीं हैं, लेकिन पूरी तरह से सहायक और संगत हैं।

कृपया the answer I gave to this similar question भी पढ़ें, जिसमें दान उत्तर का एक वीडियो है और मैं इस विषय के बारे में बात कर रहा हूं।

+0

धन्यवाद लिज़, और धन्यवाद के बीच की कड़ी को समझाने के लिए दोनों सरल और काफी समृद्ध है: मैं कड़ी यहाँ संक्षेप में प्रस्तुत करने की कोशिश की। – david004

+1

मेरी खुशी। किसी और के इच्छुक होने पर बीडीडी ट्यूटोरियल स्लाइड्स का लिंक यहां दिया गया है: http://www.slideshare.net/lunivore/behavior-driven-development-11754474 – Lunivore

+0

बहुत अच्छी तरह उत्तर दिया गया। –

2

मैं उपयोगकर्ता कहानियां, डीडीडी और बीडीडी शामिल करूंगा क्योंकि वे एक-दूसरे के बहुत आश्रित हैं। http://christophelecoent.wordpress.com/2013/06/17/how-to-link-user-stories-ddd-and-bdd/

मुझे आशा है कि इस तस्वीर SlideShare पर स्लाइड के लिए इन "अवधारणाओं"