मुख्य कारण आप निजी तरीकों के ठेके लागू करना चाहते हैं आप स्थिर विश्लेषण का लाभ उठा रहे हैं है। आप अक्सर कोड लिखेंगे जो आपके निजी तरीकों के बारे में अंतर्निहित मान्यताओं को बनाता है (उदाहरण के लिए यह विधि कभी शून्य नहीं होती है) और स्थैतिक समर्थक इसे आपको इंगित करेंगे। फिर आप या तो अपनी सार्वजनिक विधि के शरीर में धारणा डाल सकते हैं या आप इसे निजी विधि पर अनुबंध के रूप में जोड़ सकते हैं। उत्तरार्द्ध आमतौर पर क्लीनर होता है, क्योंकि यह आपको उस निजी विधि के कई प्रयोगों के दौरान अनुबंध द्वारा निहित धारणा का पुन: उपयोग करने की अनुमति देता है।
व्यक्तिगत रूप से, मैंने कोड अनुबंधों को छोड़ दिया है जब तक कि इसे और अधिक परिपक्व होने का मौका न मिले। वाक्यविन्यास अजीब है (हमें वास्तव में विशेष रूप से गैर-शून्य मानकों के लिए एक साधारण प्रतिनिधित्व की आवश्यकता है) और आप जटिल प्रणालियों को स्थिर रूप से साबित करने की कोशिश कर रहे कई गियरेशन के माध्यम से जा सकते हैं। यह एक बहुत अच्छा विचार है, हालांकि, मुझे लगता है कि यह केवल समय का मामला है जब तक परिष्कृत स्थैतिक विश्लेषण के लिए उचित अनुबंध समर्थन को .NET (वास्तविक सीआईएल मेटाडाटा) में बेक किया जाता है, सी # में मूल भाषा समर्थन के साथ, एक अजीब विस्तार के रूप में बोल्ट किए जाने के बजाय ।
एक और तरफ यह है कि मुझे लगता है कि निजी और सार्वजनिक तरीकों सहित, ऊपर से नीचे तक छोटे आवेदनों के लिए अनुबंध लागू करने की प्रक्रिया के माध्यम से जाना बहुत मूल्यवान है। जैसे ही आप सबकुछ साबित करने की प्रक्रिया के माध्यम से काम करते हैं, यह आपको बहुत सारी अंतर्निहित धारणाओं को प्रकट करता है जो आप हर दिन इसे महसूस किए बिना भी करते हैं। आप अक्सर उन विफलताओं के मामलों को भी खोजते हैं जिन्हें आपने कभी नहीं सोचा था, क्योंकि जब आप कॉन्ट्रैक्ट डिज़ाइन करते हैं तो उन मानसिकताओं को हाइलाइट करते हैं जहां आप धारणाएं बना रहे हैं और आपको यह विचार करने के लिए प्रोत्साहित करते हैं कि आपकी धारणाओं का कभी-कभी उल्लंघन किया जा सकता है या नहीं। मेरे पास दिन-प्रतिदिन की नौकरियों पर ऐसा करने का समय निर्धारित नहीं है, लेकिन मैंने निश्चित रूप से उस अवधि से बहुत कुछ सीखा जहां मैंने कोड अनुबंधों के साथ प्रयोग किया था।
स्रोत
2013-06-11 20:30:18
धन्यवाद, यह बहुत उपयोगी है। –