निष्पक्षता में, उन्होंने उस दावे में "मज़ा" जोड़ा।
आज तक, मैं मॉडलिंग सिस्टम द्वारा "संज्ञा और क्रिया" दृष्टिकोण का उपयोग करके शुरू करता हूं, लेकिन मैंने उन वर्षों में पाया है कि टीडीडी हमें सिखाता है कि यह दृष्टिकोण गलत चीज़ पर आपका ध्यान आकर्षित करता है। इस अर्थ में, ब्लॉगर के पास एक बिंदु है। हालांकि, मुझे यकीन नहीं है कि यह हमारे दिमाग के काम करने के तरीके के बजाय गलती पर दृष्टिकोण है।
यदि आप यहां थोड़ी चुनौती का प्रयास करना चाहते हैं, तो पढ़ना बंद कर दें और अंग्रेजी भाषा का उपयोग करते हुए एकाधिकार खेल का मॉडल बनाने की कोशिश करें, फिर यहां वापस आएं।
मुझे संदेह है कि प्रलोभन तुरंत उन वस्तुओं को देखेगा जिन्हें हम बहुत कुछ करते हैं - बोर्ड, रिक्त स्थान, कार्ड, पासा, टुकड़े - के साथ बातचीत करते हैं - लेकिन यह वह जगह नहीं है जहां तर्क का बड़ा हिस्सा जाता है। इनमें से अधिकांश वस्तुएं पूरी तरह से गूंगी हैं। डेटा, यदि आप करेंगे
लेकिन जैसे ही आप परीक्षण लिखना शुरू करते हैं, आपको पता चलता है कि किसी भी खेल में कौन सी वस्तु सबसे महत्वपूर्ण है: नियम।
याद रखें कि कागज का वह छोटा सा टुकड़ा जिसे आप एक बार पढ़ते हैं जब आप पहली बार खेल पाते हैं और फिर से तब तक बातचीत नहीं करते हैं जब तक कि कोई विवाद न हो? कम्प्यूटरीकृत संस्करण उस तरह से काम नहीं करता है। हर एक खिलाड़ी जो करने की कोशिश करता है, एक कंप्यूटर नियमों से परामर्श करेगा और देखेगा कि उन्हें ऐसा करने की अनुमति है या नहीं।
जब आप इसके बारे में सोचते हैं, तो आप एक ही काम करते हैं, लेकिन क्योंकि कागज़-आधारित नियमों को पढ़ने में समय लगता है और आपके मस्तिष्क में एक वाजिब कैशिंग सिस्टम होता है, आप अपने सिर में नियमों से परामर्श करते हैं। एक कंप्यूटर शायद नियमों को फिर से पढ़ना उतना ही आसान हो सकता है - जब तक कि वे डेटाबेस में संग्रहीत नहीं होते हैं, उस स्थिति में यह उन्हें कैश भी कर सकता है।
और यही कारण है कि TDD वास्तव में ड्राइविंग डिजाइन के लिए बहुत लोकप्रिय है। क्योंकि यह आपकी विचार प्रक्रिया को सही स्थानों पर शीघ्रता से ले जाता है:
जब मुझे लगता है कि मैं अपने एकाधिकार खेल के लिए कुछ परीक्षण लिखने जा रहा हूं। मैं अपने सेट को देख सकता हूं और वस्तुओं को खोजने की कोशिश कर सकता हूं। तो, हमें ये टुकड़े मिल गए हैं। मैं उन लोगों के लिए कुछ परीक्षण लिखूंगा।
शायद मेरे पास एक बेस क्लास मोनोपॉली है और प्रत्येक प्रकार का टुकड़ा उन लोगों से प्राप्त होगा। मैं डॉगपाइ के साथ शुरू करूँगा। पहला परीक्षण ... आह। दरअसल, यहां कोई तर्क नहीं है। हां, प्रत्येक टुकड़े को अलग तरह से खींचा जाएगा, इसलिए मुझे एक डॉगड्रावर की आवश्यकता हो सकती है, लेकिन जब मैं खेल से बाहर हो रहा हूं, तो मैं स्क्रीन पर "डी" लिखना चाहता हूं। मैं अंत में UI को मसाला दूँगा।
आइए परीक्षण करने के लिए कुछ वास्तविक तर्क खोजें। इन घरों और होटलों में बहुत सारे हैं, लेकिन उन्हें परीक्षणों की आवश्यकता नहीं है। पैसा, नहीं। संपत्ति कार्ड, नहीं। और इसी तरह। यहां तक कि बोर्ड एक राज्य मशीन के अलावा कुछ भी नहीं है, इसमें कोई तर्क नहीं है।
तुम जल्दी से पाओगे कि तुम्हारे हाथ में तीन चीजें बची हैं। संभावना और सामुदायिक छाती कार्ड, पासा की एक जोड़ी और नियमों का एक सेट। ये डिजाइन और परीक्षण के लिए महत्वपूर्ण अंग होंगे।
क्या आपने देखा कि जब आप संज्ञाओं और क्रियाओं को लिखते हैं तो क्या होता है?
वास्तव में, रॉबर्ट मार्टिन के एजाइल प्रिंसिपल्स पैटर्न और प्रैक्टिस में एक महान उदाहरण है, जहां वे टीडीडी का उपयोग करके एक बॉलिंग स्कोर कार्ड ऐप को बाहर निकालने की कोशिश करते हैं और सभी प्रकार की चीजों को ढूंढते हैं जो उन्हें लगता था कि स्पष्ट कक्षाएं सिर्फ परेशान करने लायक नहीं थीं।