2009-07-24 18 views
9

मैं व्यस्त हूं! मेरा अधिकांश समय विश्लेषणात्मक तकनीकों, या निश्चित रूप से काम का उपयोग करके खर्च किया जाता है, और जब मैं प्रोग्रामिंग मोड पर स्विच करता हूं तो मुझे कोड को जल्दी से उत्पन्न करने की आवश्यकता होती है। चूंकि, प्रयोगशाला के लिए प्राथमिक जांचकर्ता मुझे परवाह नहीं करता है अगर मैं टीडीडी या अबाकस का उपयोग कर रहा हूं, जब तक मुझे परिणाम तेजी से मिलते हैं।मैं अपने वर्कफ़्लो में एक वैज्ञानिक प्रोग्रामर/छात्र/शोधकर्ता के रूप में टीडीडी कैसे शामिल करूं?

मैंने "उदाहरण के द्वारा टीडीडी" पढ़ा है और इसे काफी उपयोगी पाया है। बाद में मैंने "रिफैक्टरिंग: मौजूदा कोड के डिजाइन में सुधार", "डिजाइन पैटर्न: पुन: प्रयोज्य ऑब्जेक्ट-ओरिएंटेड सॉफ्टवेयर के तत्व" और "विरासत संहिता के साथ प्रभावी ढंग से कार्य करना" खरीदा, लेकिन ये पुस्तक बड़ी हैं और अब उन पर कूदने की संभावनाएं चुनौतीपूर्ण हैं !

"उदाहरण के अनुसार टीडीडी" की बातचीत शैली और प्रवाह ने मेरे शेड्यूल में शामिल करना आसान बना दिया। लेकिन, मुझे नहीं पता कि इन अन्य पुस्तकों में और किस क्रम में काम करना है; ऐसा लगता है कि प्रत्येक बस उतना ही प्रासंगिक है (मैं एक तरह के डाइनिंग दार्शनिक डेडलॉक में हूं - मैं अपने प्रोग्रामिंग टूलकिट के प्रत्येक पहलू को सुधारने की प्रतीक्षा कर रहा हूं लेकिन उनकी परस्पर निर्भरता ने मुझे या तो संदर्भ स्विचिंग के लिए ग्रिडलाक्ड या खो दिया है - क्षमा करें अनुरूपता :))। जैसे मेरे पास विरासत कोड है जिसे दोबारा सुधारने और परीक्षणों के साथ कवर करने की आवश्यकता है, मुझे टीडीडी (लेकिन मैं कभी नहीं करता) का उपयोग करके आगे बढ़ने की जरूरत है, मुझे डिज़ाइन पैटर्न के साथ कोड करने की आवश्यकता है, इसलिए मैं पहियों को फिर से शुरू करना बंद कर देता हूं।

वहाँ एक अच्छा तरीका है इन आवश्यक पढ़ता बाइट आकार विखंडू में टूट और जब तक मौजूदा परियोजनाओं (व्यक्तिगत रूप से करने के लिए अपने तकनीकों को लागू करने ऐसा करने के लिए एक रास्ता है, मैं जानकारी ढीला अगर मैं इसे सही दूर लागू नहीं कर सकते)? क्या मैं एक पुस्तक पर ध्यान केंद्रित करता हूं और इसे पूरा करता हूं? क्या मुझे पहले टीडीडी की आवश्यकता है, फिर पैटर्न कौशल को दोबारा डिजाइन करना और डिजाइन करना (लेकिन 'चिकन और अंडे' इन सभी यूनिट परीक्षण पुस्तकें डिजाइन पैटर्न के बारे में बात करती हैं और रीफैक्टरिंग जैसे कि मैं उन्हें पिछड़ा और आगे जानता हूं)?

मैंने best tutorials for beginners पढ़ा है लेकिन यह समझा नहीं है कि मैं इसे व्यस्त कार्यक्रम में कैसे एकीकृत करता हूं। और, मैंने programming in a scientific environment पढ़ा लेकिन फिर से यह पता चलता है कि आप इन तकनीकों को कैसे जोड़ते हैं जब आप पहले से ही पीछे हैं।

उत्तर

2

आपके द्वारा किए गए कार्यों के विवरण को देखते हुए, मैं पहली बार धारणा पर सवाल पूछने के साथ शुरू करूंगा। मुझे आपके कार्यक्रमों की जटिलता के बारे में कुछ भी पता नहीं है, लेकिन यदि आपके कोडिंग में गणना उत्पन्न करने में सख्ती से शामिल है और यह "स्क्रिप्ट-स्तर" का प्रकार है, जिसका अर्थ है कि कोड के दिए गए टुकड़े के लिए आप इसे आसानी से फेंक सकते हैं और इसे रखने के रूप में इसे फिर से लिखें, फिर इनमें से बहुत सी तकनीकें अधिक हैं। मुझे लगता है कि टीडीडी (शायद एक जोड़ा संस्करण जो कि एकीकरण परीक्षण में जोड़ता है) हमेशा मूल्यवान होगा, लेकिन इससे परे, जरूरी नहीं है।

यदि आप वास्तव में सॉफ्टवेयर सिस्टम तैयार कर रहे हैं (और कम से कम आप जो कुछ भी कर रहे हैं, वह भी योग्य हो सकता है, भले ही यह सब कुछ न हो, उदाहरण के लिए डेटाबेस मॉडल, इनपुट स्क्रीन, परिणाम वितरण) तो मैं पढ़ूंगा शुरू करने के लिए इन पुस्तकों में से पर्याप्त है, और शुरुआत करने वालों के लिए हर समय सही नहीं करने के बारे में चिंता न करें, बस सुनिश्चित करें कि आप हर हफ्ते मापनीय प्रगति कर रहे हैं।

वैसे, डिज़ाइन पैटर्न इस तरह की समस्याओं को हल करने के बारे में पढ़ने के लिए उपयोगी हो सकते हैं, लेकिन किसी अन्य चीज़ के बजाय "उनका उपयोग करके डिज़ाइन" न करें। आपका डिज़ाइन अपने आप पर अच्छा नहीं हो सकता है, लेकिन पैटर्न असली दुनिया के डिज़ाइन से आते हैं, न कि दूसरी तरफ। तो आप निश्चित रूप से अधिक ऑब्जेक्ट उन्मुख समाधान देख सकते हैं कि आप क्या कर सकते हैं, लेकिन इस बारे में चिंता न करें कि आप क्या कर रहे हैं, एक डिज़ाइन पैटर्न फिट बैठता है। सुनिश्चित करें कि आप जो कर रहे हैं वह अपने स्वयं के नियमों पर अच्छी रखरखाव योग्य डिज़ाइन है, और पैटर्न उस से बहेंगे।

+0

+1 - सहमत 100% – Paul

+1

खुद एक शोध प्रयोगशाला के लिए सॉफ़्टवेयर लिखना, मैं कह सकता हूं कि यह सुरक्षित धारणा नहीं है कि "इसे जल्दी करें" रवैया एक संकेत है कि सॉफ़्टवेयर का दायरा छोटा है या "स्क्रिप्ट स्तरीय"। सिद्धांत वैज्ञानिक शोधकर्ता अक्सर अपने शोध के लिए बनाए गए सॉफ़्टवेयर को अंत के साधन के रूप में देखते हैं और उत्पादित गुणवत्ता की गुणवत्ता पर ध्यान नहीं देते हैं, केवल इसका अंतिम परिणाम होता है। मॉड्यूलर कार्यान्वयन की कमी के चलते परियोजनाओं में छोटे-छोटे प्रयासों के साथ-साथ परियोजनाओं में डुप्लीकेट प्रयासों के दबाव के कारण अक्सर खराब सॉफ्टवेयर डिज़ाइन का परिणाम होता है। –

+0

+1 @ मार्क, हाँ, कोड काफी जटिल है और आसानी से मैटलैब या मैथमैटिका जैसे वातावरण में पूरा नहीं किया जा सकता है। इसलिए, मुझे कोड का पुन: उपयोग करना शुरू करना होगा (जिसके लिए मुझे रिफैक्टर की आवश्यकता होगी) .. – bias

1

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

समय के लिए, हालांकि: टीडीडी सबकुछ। यह आपको जल्द ही समय बचाएगा जिसे आपने कल्पना की थी, और आप उस समय को और अधिक बेहतर तकनीक सीखने में डाल सकते हैं।

1

मैं रिफैक्टरिंग पुस्तक से शुरू करूंगा (क्योंकि आपने विरासत कोड में घुसपैठ का उल्लेख किया है) और एक समय में इसे एक घंटे पढ़ने की कोशिश करें। फिर अगली बार जब आप प्रोग्रामिंग कर रहे हों, तो आप जो भी पढ़ते हैं उसे लागू करने के तरीकों की तलाश करें।

एक बार जब आप ऐसा महसूस करना शुरू कर देते हैं कि आप कुछ समय खाली कर रहे हैं, तो अन्य पुस्तकें देखें। मैं आपके कौशल में सुधार के लिए कोड पूर्ण करने की भी सिफारिश करता हूं।

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

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