2009-07-09 18 views
19

मजाक मैं संसाधनों कि एक वास्तविक पाठ योजना या पथ को प्रोत्साहित करने और प्रोग्रामिंग प्रथाओं जैसे TDD और मजाक सुदृढ़ करने के लिए प्रदान करते हैं की तलाश में हूँ अच्छी प्रथाओं को लागू करने। ऐसे बहुत सारे संसाधन हैं जो उदाहरण दिखाते हैं, लेकिन मैं ऐसा कुछ ढूंढ रहा हूं जो वास्तव में प्रगति प्रदान करता है जो अवधारणाओं को को मजबूर करने के बजाय सीखने की अनुमति देता है।व्यायाम TDD के रूप में इस तरह के और

मेरा प्राथमिक लक्ष्य टीडीडी के पीछे अवधारणाओं को समझने के लिए प्रक्रिया को तेज कर रहा है और वास्तव में उन्हें लागू करने में प्रभावी हो सकता है। क्या इस तरह कोई मुफ्त संसाधन हैं?

+2

आपका प्रश्न "लागू करने" के बजाय "प्रोत्साहित" या "शिक्षित" के रूप में बेहतर वाक्यांशित किया जा सकता है। – Nat

+3

इन्हें लागू करना एक विरोधी पैटर्न है, जो पीछे हटने की संभावना है। –

+0

@Nat: अच्छी कॉल, पोस्ट संपादित करें। – ramnik

उत्तर

10

प्रोत्साहित करना एक कठिन बात है क्योंकि इसे समुद्र परिवर्तन के रूप में माना जा सकता है (काफी काफी); एक लक्ष्य के लिए इतनी प्रगति नहीं है बल्कि चीजों के लिए एक पूरी तरह से अलग दृष्टिकोण है।

सलाह की छोटी-सूची है:

  • आप कुशल बनने के लिए करने के लिए, तो आप दूसरों पथ दिखाने के लिए और व्यवस्थित करने के लिए सक्षम होना चाहिए इससे पहले कि आप दूसरों को समझा सकते हैं की जरूरत नेता होने की जरूरत है, उनकी अनिश्चितताएं

  • पहले लेखन इकाई में कुशल बनने के खुद के मौजूदा तरीकों के लिए

    • अभ्यास लेखन परीक्षण परीक्षण करती है। आप अपने सिर को बहुत सारे कोड का परीक्षण करने की कोशिश कर रहे डेस्क पर अपने सिर को हरा देंगे - ऐसा इसलिए नहीं है क्योंकि परीक्षण कठिन है या आप परीक्षण को समझ नहीं सकते; यह अधिक संभावना है क्योंकि आपका मौजूदा कोड और कोडिंग शैली बहुत टेस्टेबल नहीं है।

    • यदि आपको कठिन समय शुरू हो रहा है तो आप सबसे सरल तरीकों को ढूंढ सकते हैं और उन्हें शुरुआती बिंदु के रूप में उपयोग कर सकते हैं। बातें बात करने के लिए छोटे और अधिक हो जाता है:

  • तो कोड की testability सुधारने पर ध्यान दे आप

    • एक सबसे बड़ा टिप का उत्पादन। यह एक बड़ा परिवर्तन है - अपने आप को करने के लिए यह सबसे कठिन हिस्सा है, और दूसरों को मनाने के लिए भी कठिन है।

व्यक्तिगत तौर पर मैं पढ़ते समय बॉब मार्टिन "स्वच्छ कोड" पुस्तक मेरी "स्पष्टता के क्षण" था, एक शुरुआती अध्याय इस बारे में वार्ता करता है कि एक साफ विधि कैसी दिखाई देगी और एक उदाहरण के रूप में वह एक ~ 40 लाइन विधि लेता है जो कि मैं जो कुछ भी उत्पन्न करता हूं, वैसे ही दिखता हूं और इसे कक्षा में दोबारा दोहराता है जो कि मुश्किल से बड़ी लाइन-गिनती है लेकिन इसमें कुछ भी नहीं है लेकिन काटने के आकार के तरीके जो शायद 3-7 लाइनें हैं।

इन इटटी-बिटी विधियों को देखते हुए अचानक यह क्लिक किया गया कि यूनिट-परीक्षण कोनेस्टोन "प्रत्येक परीक्षण केवल एक चीज का परीक्षण करता है" जब आपके तरीके केवल एक चीज करते हैं तो हासिल करना सबसे आसान होता है (और 30 आंतरिक तंत्र के बिना वह एक चीज करें खेलने पर)।

अच्छी बात यह है कि आप तुरंत अपने निष्कर्षों को लागू करना शुरू कर सकते हैं; रास्ते में छोटे तरीकों और छोटे वर्गों और परीक्षण लिखने का अभ्यास करें। आप शायद धीमे हो जाएंगे, और कुछ स्नैग काफी जल्दी हिट करेंगे, लेकिन पहले कुछ महीनों में आपको सही दिशा में इंगित करने में मदद मिलेगी।

2

एक चीज जिसने मैंने काम किया, मुझे टीडीडी की सराहना करने में मदद मिली NHibernate and the Unit of Work Pattern। हालांकि यह NHibernate और .NET के लिए विशिष्ट है, लेकिन मुझे जिस तरह से व्यवस्थित किया गया था उसे पसंद आया। टीडीडी का उपयोग करके, आप कुछ विकसित करते हैं (एक यूनिटफॉर्क) जो वास्तव में कुछ सरल "यह एक नकली दिखता है" उदाहरण के बजाय उपयोगी है।

मैं वास्तविक अवधारणा के लिए उपयोग करने के लिए इसे एक अवधारणा कैसे सीखता हूं। मेरा सुझाव है कि आप लेख की संरचना पर नज़र डालें और देखें कि यह आपके द्वारा की जा रही चीज़ों के अनुरूप है या नहीं।

5

आप उपस्थित कोशिश कर सकते (या एक होस्टिंग अगर वहाँ आप के पास कोई भी है!) एक coding dojo

मैं ऐसे ही एक अभ्यास में भाग लिया और यह मजेदार सीखने TDD था।

3

पुस्तकें हमेशा एक अच्छा संसाधन होती हैं - भले ही मुफ़्त नहीं हो - वे अच्छे समय के संसाधनों की तलाश में आपके समय के लायक हो सकते हैं - उन पुस्तकों की लागत के लिए।

"Test driven development by example" केंट बेक द्वारा।

"Test Driven Development in Microsoft .NET" जेम्स डब्ल्यू Newkirk और अलेक्सई ए Vorontsov द्वारा

इस सूची में जोड़ने के लिए स्वतंत्र महसूस कृपया

+0

"यह अच्छा है, लेकिन इसे पढ़ा नहीं है" में जोड़ने के लिए; "माइक्रोस्कोप .NET में टेस्ट संचालित विकास" ठोस होना चाहिए - यदि आप निश्चित रूप से .NET के साथ काम कर रहे हैं – STW

2

गीक्स मैट्रिक्स के लिए काम कर में उत्कृष्ट रहे हैं, चाहे वे या नहीं उनके लिए अच्छा कर रहे हैं!

आप इसका उपयोग अपने लाभ के लिए कर सकते हैं। एक सीआई सर्वर स्थापित करें और जब भी कोड कवरेज 50 प्रतिशत से नीचे गिर जाए तो निर्माण में असफल हो जाएं। उन्हें बताएं कि सीमा 90 डिग्री तक हर महीने 10 प्रतिशत बढ़ेगी। आप शायद कुछ प्रतिबद्ध हुक का उपयोग कर सकते हैं जिससे कि वे शुरू करने के लिए कोड जांच सकें लेकिन मैंने कभी यह कोशिश नहीं की है।

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

यह केवल यह सुनिश्चित करेगा कि वे अपने कोड का परीक्षण कर रहे हैं, न कि वे अपने कोड का परीक्षण कर रहे हैं, न ही वे पहले परीक्षण लिख रहे हैं या नहीं। हालांकि, यह उनकी दैनिक विकास प्रक्रिया में परीक्षण को शामिल करने के लिए दृढ़ता से प्रोत्साहित करना (या मजबूर करना) है।

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

1

किसी को अनुभव के साथ ढूंढें और उनसे बात करें। यदि कोई स्थानीय डेवलपर समूह नहीं है, तो एक शुरू करें।

आपको चीजों को शुरू करने के लिए बहुत दूर धक्का देने का प्रयास करना चाहिए, और फिर सीखना चाहिए कि कब पीछे हटना है। उदाहरण के लिए, पूरी मॉक चीज तब शुरू हुई जब किसी ने पूछा "क्या होगा यदि हम बिना किसी गेटर्स के प्रोग्राम करते हैं"।

अंत में, "परीक्षणों को सुनें" सीखें। जब परीक्षण भयानक लगते हैं, तो विचार करें कि यह कोड है जो गलती है, न कि आपकी परीक्षण तकनीक।

संबंधित मुद्दे