पहली बात मैं उल्लेख करना चाहते हैं कि ब्रूस एकेल एक बहुत ही दिलचस्प Strong Typing vs Strong Testing कहा जाता है (लिंक, दुर्भाग्य से इस समय नीचे है, लेकिन उम्मीद है कि इसे जल्दी ही हो जाएगा) लेख लिखा गया है।
उनका विचार है कि जब संकलित भाषाओं के साथ काम कर, संकलक बस स्वत: परीक्षण के पहले, स्वत: कदम के रूप में काम कर रहा है है। गतिशील भाषा में जाने के दौरान, आप स्वचालित परीक्षण के पहले स्तर को खो देते हैं। लेकिन दोनों मामलों में, यह पहला, स्वचालित स्तर परीक्षण का केवल एक हिस्सा है, और यहां तक कि एक बहुत ही महत्वपूर्ण हिस्सा नहीं है।
उनका मुद्दा यह है कि यदि आप प्रोग्राम विकसित कर रहे हैं, यानी कुछ प्रकार के परीक्षण और रिग्रेशन परीक्षण कर रहे हैं, तो एक कंपाइलर की कमी केवल आपको कुछ और कुछ बुनियादी परीक्षण जोड़ने के लिए मजबूर करेगी, यही कारण है कि यह नहीं है बड़ा नुकसान।
तो मैं पहले उत्तर लगता है कि मैं, आप है, अपने परीक्षण पर ध्यान केंद्रित करने देना चाहते हैं कुछ तुम वैसे भी करना चाहिए, और इस तरह के बदलाव भी बुरी तरह से आप प्रभावित नहीं होना चाहिए।
दूसरी बात मैं उल्लेख करना चाहूंगा कि मैंने कई गतिशील भाषाओं को देखा है (उदाहरण के लिए, पायथन) में मौजूदा कोड को तोड़ने के बिना कौन सी विधियां/कक्षाएं बदलती हैं, बदलने के लिए बहुत बेहतर क्षमताएं हैं।
उदाहरण के लिए, पायथन के साथ, यदि आपकी विधि दो मानकों को स्वीकार करने के लिए उपयोग की जाती है, लेकिन अब एक तिहाई की आवश्यकता है, तो आप हमेशा मौजूदा कोड को तोड़ने के बिना एक डिफ़ॉल्ट पैरामीटर जोड़ सकते हैं, लेकिन अब आप इसका उपयोग कर सकते हैं। यह एक बहुत ही बुनियादी तकनीक है, लेकिन पायथन के मामले में (और मैं अन्य गतिशील भाषाओं को भी मानता हूं), ये तकनीकें और अधिक रोचक हो सकती हैं; चूंकि वे गतिशील हैं, आप विशिष्ट मॉड्यूल के लिए फ़ंक्शंस के कार्यान्वयन में काफी बदलाव कर सकते हैं, परिवर्तनों का अर्थ बदल सकते हैं, आदि
मैं सुझाव दूंगा कि क्लोजर की कौन सी तकनीकें सिमिलियर चीजों की अनुमति देती हैं, और निर्णय लेती हैं कि वे आवेदन करते हैं या नहीं आपकी स्थिति में
आप लोग इस से कैसे निपटते हैं? मेरे अनुभव में, सही उत्तर होगा, "बहुत अच्छा नहीं।" –