उत्पादन कोड में एक गलत फ़ंक्शन से कैसे निपटें?


28

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

पहली बात यह है कि मन में स्प्रिंग्स को सही नाम के साथ फ़ंक्शन के दूसरे संस्करण को जोड़ना है और अगले रिलीज के लिए पहले संस्करण में एक पदावनति चेतावनी जोड़ना है।

तीन प्रश्न:

  1. क्या ऊपर दिए गए दृष्टिकोण का कोई अनपेक्षित परिणाम हो सकता है?
  2. क्या इस तरह की समस्या के लिए एक मानक दृष्टिकोण है?
  3. किसी भी पदावनति की चेतावनी को कब तक छोड़ दिया जाना चाहिए?

1
यह एक स्थिति है (भले ही बहुत लगातार एक नहीं है) जिसमें एक स्थिर भाषा एक गतिशील की तुलना में बहुत अधिक मजबूत है: एक संकलक यह जांच कर सकता है कि क्या आपका बदला हुआ फ़ंक्शन पहले से मौजूद है।
जियोर्जियो

7
देखना भी HTTP रेफ़रर [वैसा]
AakashM

2
मैं अपाचे के mod_speling को भी इंगित करता हूं , लेकिन यह जानबूझकर किया गया हो सकता है।
मोनिका iamnotmaynard

1
@ आकाश: मुझे यह पसंद है कि कैसे विकिपीडिया लेख अब गलत और सही वर्तनी दोनों का उपयोग करता है उस पृष्ठ पर (भले ही ऑब्जेक्ट का उल्लेख हो, शब्द नहीं), गलत वर्तनी वाले संस्करण के अधिक प्रचलित होने के कारण!
मार्टिज़न पीटर्स

http_refererइसके बारे में एक और अच्छी बात है - "इसकी तरह जब मैंने रेफर फ़ील्ड किया था। मुझे अपनी पसंद की वर्तनी के लिए दु: ख के अलावा कुछ नहीं मिला। मैं अब ओईडी में वर्तनी को ठीक करने का प्रयास कर रहा हूं क्योंकि मेरी वर्तनी कई अरब मिनट एक मिनट में उपयोग की जाती है। उनकी तुलना में। ” - फिलिप हैलम-बेकर
जेमी बुल

जवाबों:


29

सबसे पहले और सबसे महत्वपूर्ण, नीति अनुचर पर निर्भर करती है।

मुझे लगता है कि आपका सवाल दिलचस्प है, लेकिन ज्यादातर राय-आधारित है।

मेरी व्यक्तिगत राय में आपका दृष्टिकोण ध्वनि है - फ़ंक्शन का नाम बदलें और गलत तरीके से किए गए विरूपण साक्ष्य के रूप में गलत वर्तनी वाले संस्करण को छोड़ दें, सही पर पुनर्निर्देशित करें।

क्या ऊपर दिए गए दृष्टिकोण का कोई अनपेक्षित परिणाम हो सकता है?

यह कोड को तोड़ सकता है। अगर कोई गलत वर्तनी को बर्दाश्त नहीं कर सका और अपने नाम का बदला हुआ संस्करण लागू किया। लाइब्रेरी को अपडेट करने के बाद नाम क्लैश होगा।

क्या इस तरह की समस्या के लिए एक मानक दृष्टिकोण है?

लाइब्रेरी लिखते समय वर्तनी की गलतियाँ न करें;)

किसी भी पदावनति की चेतावनी को कब तक छोड़ दिया जाना चाहिए?

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

यह तब होता है जब कुछ - न्यायोचित - पिछड़ी अनुकूलता को तोड़ना सहनीय होता है, और यह पुस्तकालय के उपयोगकर्ताओं पर निर्भर करता है कि वे यह सुनिश्चित करें कि उनका कोड अभी भी ठीक है।

बस इसे चैंज में इंगित करना सुनिश्चित करें: दोस्तों, यदि आप उपयोग करते हैं, तो dummy_fuctionइसे dummy_functionहर जगह बदलें और आप जाने के लिए अच्छे हैं।

यदि लाइब्रेरी को संस्करणित नहीं किया गया है, जैसा कि हो सकता है - यह संस्करण को शुरू करने के लिए एक अच्छा मामला बनाता है।


1
सुन कर अच्छा लगा। लाइब्रेरी संस्करणित है, इसलिए संस्करण नियंत्रण के लिए दृष्टिकोण अच्छा लगता है। यह वास्तव में अपनी आईडीई है इसलिए गलत वर्तनी वाले संस्करण को कोड पूरा करने वाले टूल से छिपाया जा सकता है जो इसे उपयोग करने वाले नए उपयोगकर्ताओं को रोकना चाहिए। अगर मैं आपको Q2 के जवाब के लिए एक और +1 दे सकता था!
जेमी बुल

2
यह वह दृष्टिकोण है जो मैंने अन्य सॉफ़्टवेयर में भी देखा है। मैं अपने द्वारा विकसित सॉफ्टवेयर के एक टुकड़े के लिए एक 3 पार्टी एपीआई का उपयोग करता हूं, और उनके एपीआई में एक गेटर विधि होती है जिसमें एक टाइपो होता है। समस्या का नाम बदलकर, और पुराने (गलत) वर्तनी के साथ एक डमी विधि का निर्माण करके समस्या को ठीक किया गया था, जिसे केवल सही संस्करण कहा जाता है। डमी विधि में कोई दस्तावेज नहीं है, इसके अलावा यह बताया गया है कि यह पदावनत है और सही संस्करण का लिंक है। किसी पिछड़ेपन की अनुकूलता को तोड़ने से बचने के लिए यह विधि अब वर्षों से चली आ रही है।
कार्ल निकोल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.