एपीआई के बिना कार्यक्रमों के लिए शब्दार्थ संस्करण कैसे लागू होता है


42

में http://semver.org/ -which मेरी धारणा में versioning- में यह जब एक परिवर्तन यह है कि टूट जाता है / संशोधित एपीआई शुरू की है मुख्य संस्करण संख्या में वृद्धि करने की सिफारिश की है सबसे व्यापक रूप से इस्तेमाल सम्मेलन हो रहा है।

हालांकि इस दिशानिर्देश को लागू करने के लिए मैं दो संबंधित परिदृश्य देख रहा हूं:

  1. यदि मेरा कोड किसी भी एपीआई की पेशकश नहीं करता है तो क्या होगा? मुझे अपना कोड कैसे बनाना चाहिए?
  2. क्या होगा यदि मेरा कोड अपने विकास के देर चरण में एपीआई की पेशकश करना शुरू कर दे?

7
युक्ति 1 का बिंदु 1: शब्दार्थ संस्करण का उपयोग कर सॉफ्टवेयर सार्वजनिक एपीआई घोषित करना चाहिए। यह एपीआई कोड में ही घोषित किया जा सकता है या प्रलेखन में कड़ाई से मौजूद है। हालांकि यह किया जाता है, यह सटीक और व्यापक होना चाहिए। इसलिए मुझे लगता है कि उत्तर आप तकनीकी रूप से सेमी वीयर का उपयोग नहीं कर रहे हैं तो यह पूरी तरह से आप पर निर्भर है।
एंट पी।

इस लेख को जांचें जो उन ऐप्स के लिए एक अच्छा समाधान प्रस्तावित करता है जो किसी भी एपीआई की पेशकश नहीं करते हैं, जैसे डेस्कटॉप ऐप्स: softwareengineering.stackexchange.com/a/357887/269082
ferit

जवाबों:


48

सेवर ज्यादातर लाइब्रेरियों और पैकेजों को इस तरीके से जोड़ने के बारे में चिंतित होता है जो निर्भरता नरक से बचता है, यह विभिन्न अवतारों में होता है। हालांकि, सेमेवर के पीछे के विचार को सभी प्रकार के कार्यक्रमों तक बढ़ाया जा सकता है - किसी भी कोड के पास किसी प्रकार का उपयोगकर्ता इंटरफ़ेस है, या यह बहुत बेकार है।

  • प्रोग्रामिंग लाइब्रेरी या वेब सेवा में एक एपीआई होता है।
  • उपभोक्ता सॉफ़्टवेयर में GUI हो सकता है।
  • कमांड लाइन कार्यक्रमों में स्विच और विकल्प का एक सेट होता है।
  • कॉन्फ़िगरेशन फ़ाइलें भी एक उपयोगकर्ता इंटरफ़ेस हैं।

उपभोक्ता सॉफ्टवेयर के उदाहरण का उपयोग करना, जैसे कि वर्ड प्रोसेसर:

  • जब आप बग फिक्स शिप करते हैं तो पैच नंबर बढ़ाते हैं, जैसे: " निश्चित बग जहां एप्लिकेशन हमेशा मंगलवार को 00:00 बजे क्रैश होता है "।
  • नई सुविधा जोड़ते समय मामूली संस्करण संख्या बढ़ाएँ, जैसे: " रेखांकित पाठ के लिए अतिरिक्त समर्थन "।
  • जब आप उपयोगकर्ता इंटरफ़ेस को ओवरहाल करते हैं, या सभी इंटर्न को फिर से लिखते हैं, तो प्रमुख संस्करण को बढ़ाएँ। जैसे: “ टूलबार बहुत अधिक स्क्रीन एस्टेट का उपयोग करते हैं। यूआई अब केवल स्पर्श इशारों के माध्यम से प्रदान किया जाता है ”- ऐसा परिवर्तन मौजूदा वर्कफ़्लो को तोड़ देगा।

हालाँकि, कई समस्याएं जो सेमर हल करने की कोशिश करता है, निर्भरता प्रबंधन के क्षेत्र के बाहर मौजूद नहीं है। उपभोक्ता अनुप्रयोगों में, संस्करण न केवल एक संस्करण है, बल्कि एक विपणन संपत्ति भी है।

  • फ़ायरफ़ॉक्स और क्रोम नए संस्करणों को तुलनात्मक रूप से अक्सर जारी करते हैं, और प्रत्येक रिलीज़ पर उनके प्रमुख संस्करण की संख्या बढ़ाते हैं। यह हास्यास्पद रूप से उच्च संस्करण संख्याओं में परिणत होता है (दोनों वर्तमान में उनके 30 के दशक में हैं)। एक उच्च संस्करण संख्या वाला ब्राउज़र बस एक कम संस्करण संख्या वाले ब्राउज़र से बेहतर होना चाहिए?

  • ऐप्पल के ऑपरेटिंग सिस्टम ओएस एक्स का प्रमुख संस्करण संख्या नाम का हिस्सा बन गया है (रोमन अंकों में एक्स 10 है), मामूली संस्करण संख्या को प्रभावी प्रमुख संस्करण संख्या बनाता है।

  • Ubuntu ऑपरेटिंग सिस्टम एक year.month.patchlevel संस्करण योजना का उपयोग करता है। इससे यह याद रखना आसान हो जाता है कि आपका OS कितना पुराना है, लेकिन यह पता लगाना अधिक कठिन है कि कौन से संस्करण संगत हैं, और प्रत्येक संस्करण के लिए कितने समय तक रहता है।

  • लिनक्स कर्नेल ने 2.6.39 से 3.0.0 तक संस्करण संख्या को टक्कर दी, क्योंकि यह 39थोड़ा बड़ा हो रहा था, और लिनक्स की 20 वीं वर्षगांठ मनाने के लिए।

  • डोनाल्ड नथ का पौराणिक टीएक्स टाइपसेटिंग सिस्टम एक संस्करण संख्या का उपयोग करता है, जो कि संस्करण 3 के रूप में, प्रत्येक रिलीज में एक और अंक जोड़कर digit में कनवर्ट करता है: 3.14159265…। यह दर्शाता है कि कैसे सिस्टम पूर्णता के करीब हो रहा है। इसी तरह, मेटाफ़ॉन्ट सिस्टम : 2.7182818… में परिवर्तित हो जाता है ।

तो, सेमर द्वारा कई अनुप्रयोगों को अच्छी तरह से सेवा नहीं दी जाती है। एक वर्जनिंग स्कीम चुनें जो आपके उपयोगकर्ताओं के लिए अच्छी हो (परवाह किए बिना कि ये उपयोगकर्ता साथी प्रोग्रामर या उपभोक्ता हैं), और इसे लगातार बनाए रखें।


1
Microsoft विकास उपकरण द्वारा निर्मित बहुत सारे सॉफ़्टवेयर में ABCD प्रारूप होता है, जहाँ AB "सामान्य" प्रमुख / लघु संस्करण संख्याएँ होती हैं, और जब सॉफ़्टवेयर का निर्माण होता है, तो CD दिनांक / समय को एन्कोड करता है।
MZB

मुझे π संस्करण प्रणाली के शब्दार्थ से प्यार है।
ओगियर शेल्विस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.