"टॉप-डाउन" already used in computing to describe an analysis technique है। मैं इसके बजाय "बाहर-इन" शब्द का उपयोग करने का सुझाव देता हूं।
बाहरी-बाहर बीडीडी से एक शब्द है, जिसमें हम मानते हैं कि अक्सर सिस्टम में एकाधिक उपयोगकर्ता इंटरफेस होते हैं। उपयोगकर्ता अन्य सिस्टम और साथ ही लोग भी हो सकते हैं। एक बीडीडी दृष्टिकोण एक टीडीडी दृष्टिकोण के समान है; यह आपकी मदद कर सकता है ताकि मैं संक्षेप में इसका वर्णन करूंगा।
बीडीडी में हम एक परिदृश्य से शुरू होते हैं - आमतौर पर सिस्टम का उपयोग कर उपयोगकर्ता का एक साधारण उदाहरण। परिदृश्यों के आसपास वार्तालाप हमें यह जानने में मदद करते हैं कि सिस्टम को वास्तव में करना चाहिए। हम एक उपयोगकर्ता इंटरफ़ेस लिखते हैं, और यदि हम चाहते हैं तो हम उस उपयोगकर्ता इंटरफ़ेस के विरुद्ध परिदृश्य स्वचालित कर सकते हैं।
जब हम उपयोगकर्ता इंटरफ़ेस लिखते हैं, तो हम इसे जितना संभव हो उतना पतला रखते हैं। यूजर इंटरफेस एक और वर्ग का उपयोग करेगा - एक नियंत्रक, व्यूमोडेल इत्यादि - जिसके लिए हम एक एपीआई परिभाषित कर सकते हैं।
इस चरण में, एपीआई या तो खाली कक्षा या एक (प्रोग्राम) इंटरफेस होगा। अब हम उदाहरण लिख सकते हैं कि उपयोगकर्ता इंटरफ़ेस इस नियंत्रक का उपयोग कैसे कर सकता है, और यह दिखाता है कि नियंत्रक मूल्य कैसे प्रदान करता है।
उदाहरण नियंत्रक की ज़िम्मेदारी का दायरा भी दिखाते हैं, और यह कैसे अन्य श्रेणियों जैसे रिपोजिटरी, सेवाओं इत्यादि को अपनी जिम्मेदारियों को दर्शाता है। हम उस प्रतिनिधिमंडल को मॉक्स का उपयोग करके व्यक्त कर सकते हैं। हम उदाहरण के लिए (यूनिट परीक्षण) काम करने के लिए उस कक्षा को लिखते हैं। हम अपने सिस्टम-स्तरीय परिदृश्य को पास करने के लिए केवल पर्याप्त उदाहरण लिखते हैं।
मुझे लगता है कि मॉक किए गए उदाहरणों को फिर से काम करना आम बात है क्योंकि मोक्स के इंटरफेस केवल पहले अनुमानित होते हैं, फिर वर्ग के रूप में पूरी तरह से उभरते हैं। इससे हमें इंटरफेस या एपीआई की अगली परत को परिभाषित करने में मदद मिलेगी, जिसके लिए हम अधिक उदाहरणों का वर्णन करते हैं, और तब तक जब तक कोई और मोज़े की आवश्यकता नहीं होती है और पहला परिदृश्य गुजरता है।
जैसा कि हम अधिक परिदृश्यों का वर्णन करते हैं, हम कक्षाओं में अलग-अलग व्यवहार करते हैं और हम डुप्लिकेशंस को हटाने के लिए प्रतिक्रिया दे सकते हैं जहां विभिन्न परिदृश्य और उपयोगकर्ता इंटरफेस को समान व्यवहार की आवश्यकता होती है।
इसे बाहर-बाहर फैशन में करके हम जितनी जल्दी हो सके एपीआई के बारे में अधिक जानकारी प्राप्त कर सकते हैं, और जितनी जल्दी हो सके उन एपीआई को फिर से काम कर सकते हैं। यह Real Options (never commit early unless you know why के सिद्धांतों के साथ फिट बैठता है)। हम ऐसा कुछ भी नहीं बनाते जिसे हम उपयोग नहीं करते हैं, और एपीआई स्वयं को उपयोगिता के लिए डिज़ाइन किए गए हैं - लेखन की आसानी के बजाय। यह कोड प्रोग्रामिंग भाषा से अधिक डोमेन भाषा का उपयोग करके अधिक प्राकृतिक शैली में लिखा जाता है, जिससे इसे और अधिक पठनीय बना दिया जाता है। चूंकि कोड लिखे जाने से 10x अधिक पढ़ा जाता है, यह भी इसे बनाए रखने में मदद करता है।
इसी कारण से, मैं नीचे-नीचे के बुद्धिमान अनुमान के बजाय बाहरी दृष्टिकोण का उपयोग करता हूं। मेरा अनुभव यह है कि इसका परिणाम सरल, अधिक दृढ़ता से decoupled, अधिक पठनीय और अधिक रखरखाव कोड में होता है।
क्या आपके पास कोई उच्च स्तरीय परीक्षण मामले हैं, यदि पास हो जाए तो पुष्टि होगी कि आवेदन काम कर रहा है और समस्या हल हो गई है? यह साबित करने के लिए कुछ है कि पूरी चीज काम करती है (यूआई को निश्चित रूप से बाहर रखना)। (मैं भी एक टीडीडी नौसिखिया हूँ।) –
मेरे पास कोई उच्च स्तरीय परीक्षण के मामले नहीं हैं, और शायद यही गुम है। केवल सवाल यह है कि: इस तरह का एक उच्च स्तरीय परीक्षण कैसा दिखता है? एप्लिकेशन केवल कंसोल में टेक्स्ट बनाता है। क्या मुझे ज़ोर देना चाहिए कि वहां क्या लिखा जा रहा है? – Chris
जब आप "एकीकरण" कहते हैं, तो इसका मतलब यह नहीं है कि आप परीक्षण करना चाहते हैं कि वस्तुओं का तारों का सही होना सही है, लेकिन सभी वर्ग एक साथ अपेक्षित काम करते हैं। अब, ज्यादातर लोग अनुशंसा करते हैं कि आपके पास कुछ परीक्षण मामले हो सकते हैं जो आपको बताते हैं कि क्या आप काम के साथ हैं। मुख्य कार्य में आपके पास वास्तव में एक परीक्षण है, क्योंकि मार्कस ने बताया, एक सकारात्मक परीक्षण। परीक्षण विधियों में लिखे जाने वाले अंतिम तरीके, मुख्य विधियां, आप देख सकते हैं। मेरा सुझाव है कि आप स्वीकृति परीक्षण देखें। यह पुस्तक आपके लिए दिलचस्प हो सकती है: http://www.growing-object-oriented-software.com/ –