smalltalk - तरर - रिकार्डियन तुलनात्मक लागत सिद्धांत




शुरुआती बंधन बनाम देर से बाध्यकारी: तुलनात्मक लाभ और नुकसान क्या हैं? (4)

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

जावास्क्रिप्ट, jquery, jsext, actionscript, php, java, ror और asp.net के साथ वेब अनुप्रयोगों को कार्यान्वित करने के आधार पर मेरा व्यक्तिगत अनुभव (जो कि व्यापक या आधिकारिक तौर पर पर्याप्त नहीं है) देर से बाइंडिंग और ब्लोट के बीच सकारात्मक संबंध का सुझाव देते हैं कमी। शुरुआती बाध्यकारी मुझे यकीन है कि कुछ प्रकार की त्रुटियों को रोकने और रोकने में मदद करता है, लेकिन इसलिए सामान्य में स्वत: पूर्णता और एक अच्छा IDE, और अच्छी प्रोग्रामिंग प्रथाएं हैं। इसलिए मैं अपने जोखिम-परिहार की ओर से मेरे तर्कसंगत परिप्रेक्ष्य को पुनर्स्थापित करने से पहले देर से बाध्यकारी पक्ष के लिए अपने आप को पकड़ना पड़ता है।

लेकिन मेरे पास वास्तव में समझदारी नहीं है कि कंट्रोलॉफ़ को कैसे संतुलित किया जाए।


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


मुझे लगता है कि अनुचित युग्मन से बचने के लिए बेहतर तरीके / पैटर्न हैं, जैसे कि नियंत्रण के विपरीत, निर्भरता इंजेक्शन, कारखानों, ...

लेकिन, मुझे पसंद है "उपयोग करने में आसान" देर से बंधन के संस्करण स्वतंत्रता
महज प्रयोग करें

var excel = CreateObject("Excel.Application");

और देर से बाध्यकारी पता चलेगा, किस प्रकार का एक्सेल। आवेदन, और इसे कहाँ से प्राप्त करें ...


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

शुरुआती बंधन के दो मुख्य लाभ हैं सबसे पहला:

  • रनटाइम प्रदर्शन

आमतौर पर स्वीकार किया जाता है, लेकिन आम तौर पर अप्रासंगिक क्योंकि अधिकांश मामलों में समस्या पर हार्डवेयर फेंकना संभव है, जो कि सस्ता है। इसमें ज़ाहिर है, अपवाद (उदाहरण के लिए यदि आपके पास हार्डवेयर का संचालन नहीं है तो)।

शुरुआती बंधन का दूसरा लाभ:

  • विकास की आसानी

लगता है underrated बड़ी परियोजनाओं में जहां डेवलपर्स अन्य लोगों के घटक के साथ काम कर रहे हैं, आईडीई प्रारंभिक बाइंडिंग पढ़ सकते हैं और डेवलपर को सूचित करने के लिए इसका उपयोग कर सकते हैं (स्वत: पूर्णता, दस्तावेज़, आदि)। यह देर से बाध्यकारी के साथ कम व्यावहारिक है क्योंकि बाइंडिंग रनटाइम पर बनाए जाते हैं। यह अभी भी देर से बाध्यकारी भाषाओं के साथ संभव है यदि आईडीई कोड से संरचना की परिभाषा का अनुमान लगा सकता है, लेकिन जब से रनटाइम पर संरचना हमेशा बदला जा सकता है, यह इतना विश्वसनीय नहीं है।

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


संकलन के समय संकलन को संकलन के दौरान किया जाता है, जिसे प्रारंभिक बाध्यकारी कहा जाता है

गतिशील बाइंडिंग जिसमें फ़ंक्शन को निष्पादन के दौरान निष्पादन के दौरान किया जाने वाला फ़ंक्शन शामिल होता है जिसे देर से बाध्यकारी कहा जाता है