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