फ़ाइल नाम के एक भाग के रूप में संस्करण संख्या


15

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

मुझे संदेह है कि ये संख्याएं किसी प्रकार के संस्करण नियंत्रण के लिए हैं, लेकिन यह स्पष्ट नहीं है कि उनका उपयोग कब और कैसे किया जाता है।

  • फ़ाइल नाम में संस्करण संख्याओं के लिए पेशेवरों और विपक्ष क्या हैं?
  • क्या सॉफ्टवेयर या भाषाओं के क्षेत्र में फ़ाइल नाम में संस्करण संख्या का उपयोग करने की वास्तविक सहमति है, और किन क्षेत्रों / भाषाओं में नहीं है? यदि हां, तो क्या इसके लिए कोई राशन है?

3
सबसे बड़ा फायदा यह है कि इससे पहले कि आप उनके लिए तैयार हों आप ब्रेकिंग परिवर्तन सुनिश्चित नहीं कर सकते हैं
शाफ़्ट फ्रीक

@ratchetfreak जब आप तैयार नहीं होते हैं तो आप अपडेट नहीं करते हैं। क्या आप?
आरा

2
@sawa मान लीजिए jQuery.com/jquery.js नवीनतम संस्करण का URL है और आपके कोड को संदर्भित करता है। यदि jQuery एक कट्टरपंथी अद्यतन प्रकाशित करेगा तो क्या होगा? बेशक, आप अपनी खुद की स्थानीय प्रति से लिंक करेंगे, लेकिन मुझे लगता है कि यही है कि शाफ़्ट फ्रीक का मतलब क्या है
11684

@ 11684 मैं देख रहा हूं, मुझे मिल गया है।
आरा

1
मैं यह बताना चाहूंगा कि jquery के उदाहरण में, कि Google और cdnjs.com दोनों CDN होस्ट किए गए संस्करणों ने फ़ाइल नाम के बजाय निर्देशिका ट्री में संस्करण को रखा था। (Jquery.com और Microsoft दोनों से jquery CDN फ़ाइल नाम में संस्करण है।)
ब्रायन एस

जवाबों:


24
  1. यह आपके द्वारा आवश्यक संस्करण को निर्दिष्ट करने के लिए समझ में आता है। व्यवहार जिस पर आप भरोसा कर सकते हैं वह बदल सकता है, इसलिए नया हमेशा बेहतर नहीं होता है। पहले, परीक्षण करें कि क्या लाइब्रेरी का नया संस्करण आपके लिए काम करता है। फिर, स्पष्ट रूप से अपडेट करें।

  2. वेब संसाधनों के मामले में, संस्करण का फ़ाइल नाम होना कैशिंग के संदर्भ में महत्वपूर्ण है । स्थिर संसाधनों के लिए जैसे jquery.jsआप पुनः प्राप्त करने से पहले बहुत लंबा कैश समय चाहते हैं। हालाँकि, एक अपडेट के दौरान आप चाहते हैं कि आपका कोड नए संस्करण का तुरंत उपयोग करें , बजाय इसके कि ग्राहक अगले दिन या उसके दौरान नए संस्करण पर स्विच करें। जैसा foo-1.2.3.jsकि एक अलग संसाधन है foo-1.2.4.js, कोई कैश रास्ते में नहीं मिलेगा।


1
+1, हालाँकि मुझे लगता है कि यह उत्तर थोड़ा-सा एकल-धारित है। वास्तव में ऐसी स्थितियां हैं जहां "कोई संस्करण संख्या" बेहतर विकल्प नहीं हो सकती है। नीचे मेरा जवाब देखें।
डॉक ब्राउन

3

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

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

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

और यदि आप खुद एक पुस्तकालय विक्रेता हैं, तो आपको डिफ़ॉल्ट रूप से संस्करण संख्या को शामिल करना चाहिए, लेकिन उस परिवाद के उपयोगकर्ता को स्वयं के लिए निर्णय लेने दें यदि वह उस संख्या को रखता है या उसे दूर करता है।


हाँ। तुम सही हो। मैं आपके पहले दो मामलों का उल्लेख कर रहा था।
आरा

1
@ सावा: ध्यान दें कि आपका उदाहरण था jquery, जिसके लिए अमोन का वेब कैशिंग तर्क है। मेरे उत्तर के पीछे तर्क विभिन्न स्थितियों की व्याख्या करना था जहां "कोई संस्करण संख्या" बेहतर विकल्प नहीं हो सकती है।
Doc Brown
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.