हमेशा टीडीडी डिज़ाइन या अपफ्रंट डिज़ाइन को अधिक करने का जोखिम होता है। तो जवाब यह है कि यह निर्भर करता है। मैं उपयोगकर्ता की कहानी/स्वीकृति परीक्षण से शुरू करना पसंद करता हूं जो कि मेरे परीक्षणों को उत्पादन में सहायता करने की आवश्यकता का आधार है। मैंने इसे स्थापित करने के बाद ही, मैंने विस्तृत यूनिट परीक्षण टीडीडी-शैली लिखना शुरू किया। यदि आपके द्वारा किया जाने वाला एकमात्र डिज़ाइन और सोच टीडीडी के माध्यम से है, तो आप बहुत नीचे के दृष्टिकोण का जोखिम उठाते हैं, जो आपको इकाइयों और कक्षाओं को अलगाव में उत्कृष्ट प्रदान कर सकता है, लेकिन जब आप उन्हें उपयोगकर्ता की कहानी में एकीकृत करने का प्रयास करते हैं तो आप कार्य को पूरा करते हैं यह सब गलत करकर आश्चर्यचकित हो सकता है। इस पर अधिक प्रेरणा के लिए, BDD देखें।
A great "debate" about this has been recorded रॉबर्ट सी मार्टिन और जेम्स कोप्लिएन के बीच, जहां पूर्व एक टीडीडी वकील है और बाद वाले ने कहा है कि यह एक प्रणाली के डिजाइन को खंडित करता है। , हम सभी की जरूरत है
"एक लग रहा है के बारे में '99 कि वास्तुकला अप्रासंगिक है के बाद से चंचल समुदाय में हुई है, हम वास्तुकला करने की ज़रूरत नहीं है: यह वही है रॉबर्ट TDD और डिजाइन के बारे में कहा है ऐसा करने के लिए परीक्षण की एक बहुत लिखने और कहानियों में से बहुत करते हैं और कर त्वरित पुनरावृत्तियों और कोड ही जादुई इकट्ठा करेंगे, और यह हमेशा गया घोड़ा बकवास। मैं भी के सबसे लगता है मूल चंचल समर्थकों हैं सहमत हैं कि एक सभ्यता थी।"
जेम्स Coplien कहा गया है कि केवल TDD से अपने डिजाइन ड्राइविंग एक महान जोखिम है:
" परियोजनाओं जाना बातें हम एक बहुत देखते हैं, परियोजनाओं की एक बहुत में से एक है, है कि दक्षिण में उनके तीसरे स्प्रिंट और पर वे दुर्घटनाग्रस्त हो जाते हैं क्योंकि वे आगे नहीं जा सकते हैं, क्योंकि ने स्वयं को आर्किटेक्चरल रूप से घेर लिया है। और अगर आप इस वजह रिफैक्टरिंग वर्ग श्रेणियों में हो गया है से बाहर अपना रास्ता refactor कर सकते हैं नहीं , वर्ग पदानुक्रम भर में, और तुम अब एक ही कार्यक्षमता होने के बारे में किसी भी आश्वासन हो सकता है। "
इसके अलावा वह अगर आप परीक्षण के रूप में वास्तुकला ड्राइव करने के लिए अपने अग्रिम ज्ञान का उपयोग कर की तुलना में चलाई एक बैंक खाते शायद इस तरह दिखाई देंगे एक महान उदाहरण देता है:
"मुझे याद है जब मैं केंट ओ के साथ बात कर रहा था एनसी, शुरुआती दिनों में जब वह टीडीडी का प्रस्ताव दे रहा था, और यह यागनी के अर्थ में था और कर रहा था, तो सबसे आसान चीज जो संभवतः काम कर सकती थी, और वह कहता है: 'ठीक है। आइए बैंक खाता, एक बचत खाता बनाएं। ' बचत खाता क्या है? यह नंबर है और आप पर जोड़ सकते हैं और आप संख्या से घटा सकते हैं। तो एक बचत खाता क्या है, कैलकुलेटर है। आइए कैलकुलेटर बनाएं, और हम दिखा सकते हैं कि आप को शेष राशि से शेष और घटा सकते हैं। यह सबसे आसान बात है जो संभवतः काम कर सकती है, सब कुछ अन्य इसका विकास है।
आप एक असली बैंकिंग प्रणाली करते हैं, एक बचत खाते भी एक वस्तु नहीं है और आपको लगता है कि एक से सही वास्तुकला के लिए अपने तरीका refactor करने के लिए नहीं जा रहे हैं। क्या एक बचत खाते है, एक प्रक्रिया है कि जमा और ब्याज समारोहों और पैसे की अन्य बदलाव की एक यात्रा डेटाबेस लेनदेन की एक लेखापरीक्षा निशान से अधिक करता है, है। यह बचत खाते कुछ पैसे कहीं एक बैंक पर शेल्फ पर बैठा है की तरह नहीं है, यहां तक कि उपयोगकर्ता परिप्रेक्ष्य है कि, और यद्यपि आप सिर्फ जानना चाहता देखते हैं कि इन अपेक्षाकृत जटिल संरचनाओं नींव में मिल गया है टैक्स लोगों और एक्ट्यूरीज़ और इन सभी अन्य लोगों, का समर्थन करने के लिए एक बैंकिंग सिस्टम का उपयोग करने के लिए आप वृद्धिशील तरीके से नहीं पहुंच सकते हैं। खैर, आप कर सकते हैं क्योंकि निश्चित रूप से बैंकिंग उद्योग 40 वर्षों के बाद इस पर आया है। आप खुद को 40 साल देना चाहते हैं? यह नहीं चुस्त है। "
यहां दिलचस्प बात यह है कि दोनों TDD प्रस्तावक और TDD प्रतिपक्षी कह रहे हैं कि आप सामने डिजाइन की जरूरत है।
यदि आपके पास समय है, तो वीडियो देखें। यह दो अत्यधिक प्रभावशाली विशेषज्ञों के बीच एक महान चर्चा है, और यह केवल 22 मिनट लंबा है।
ढांचे पर निर्भर करने के बारे में क्या है जो परीक्षण अनुकूल होने के लिए डिज़ाइन नहीं किए गए थे? (उनमें से अधिकतर मुझे लगता है) विरासत कोड का उल्लेख नहीं करना है। मुझे टीडीडी पसंद है और इसे खुद का अभ्यास करें, लेकिन मुझे यह सुनिश्चित करने के लिए टेबल के कोने पर त्वरित आरेख की आवश्यकता मिलती है कि मुझे यह सब ठीक मिला – Jean
विरासत कोड के लिए, यह पूरी तरह से एक पूरी तरह से अलग कहानी है। : डी –
कुछ बुनियादी डिजाइन करने की निहित आवश्यकता है ... आपको अपने पहले परीक्षण लिखने में सक्षम होने की आवश्यकता है। चिंता डिजाइन अप फ्रंट प्रति के खिलाफ नहीं है, यह विशिष्ट सुविधाओं/कार्यों के लिए सर्वोत्तम डिज़ाइन पर पहुंचने से पहले सामने के बड़े डिजाइन के बारे में है। –