क्या खराब डिजाइन के प्रमाण में तेजी से प्रमुख संस्करण टकरा रहे हैं?


16

मैंने कुछ महीने पहले जूनियर प्रोग्रामर के रूप में नौकरी शुरू की थी। हम जिस सिस्टम पर काम कर रहे हैं, वह ~ 2 साल से उत्पादन में है। मैं सिस्टम और डिज़ाइन की भीख में शामिल नहीं था।

एक बात जो मैंने देखी है, वह यह है कि सिस्टम मेजर वर्जन पहले से ही 11.YZ फॉर्म है, जो अन्य सिस्टम और लाइब्रेरी के साथ काम करने का मेरा अनुभव है, मुझे यह याद नहीं है कि कोई प्रोडक्ट बड़े वर्जन को तेजी से उछालता है। ऐसे उत्पाद हैं जो 1.XY में वर्षों से हैं, और अभी भी विशेषताएं और बगफिक्स प्राप्त कर रहे हैं।

यह मानते हुए कि सिमेंटिक संस्करण का उपयोग ठीक से किया जाता है, क्या यह दर्शाता है कि सिस्टम खराब तरीके से डिज़ाइन किया गया है क्योंकि यह लगभग चार महीनों में प्रमुख ब्रेकिंग परिवर्तन करता है?


2
यह प्रश्न इस बात पर निर्भर करेगा कि क्या वे प्रमुख ब्रेकिंग परिवर्तन पर्याप्त लाभ (और लाभ) लाते हैं जो परिवर्तन की उच्च दर को सही ठहराते हैं।
रवांग

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

3
@amon सिस्टम का उपयोग आंतरिक रूप से सार्वजनिक मोबाइल क्लाइंट के साथ किया जाता है, जो REST- जैसे API के माध्यम से सिस्टम के साथ संचार करता है। जैसा कि मैंने उल्लेख किया है और संस्करण विपणन नहीं है, वर्जनिंग सेवर है।
user367035

संख्या मायने नहीं रखती है, लेकिन मुझे संदेह होगा कि यदि संस्करण पहचानकर्ता में कुछ प्यारा संक्षिप्त नाम शामिल हों, जैसे कि विंडोज एनटी या विंडोज एमई या एक्सपी या वास्तव में विंडोज कुछ भी।
जॉन वू

1
@ जॉनवु: सवाल विशेष रूप से संख्या के बारे में है, इसलिए, हाँ, संख्या मायने रखती है। अधिक सटीक रूप से, यह सेमी वीयर के संदर्भ में संख्या के बारे में है, जहां संख्या न केवल मायने रखती है, बल्कि इसका एक सटीक-निर्दिष्ट अर्थ भी है।
जोर्ग डब्ल्यू मित्तग

जवाबों:


14

यह मानते हुए कि सिमेंटिक संस्करण का उपयोग ठीक से किया जाता है, क्या यह दर्शाता है कि सिस्टम खराब तरीके से डिज़ाइन किया गया है क्योंकि यह लगभग चार महीनों में प्रमुख ब्रेकिंग परिवर्तन करता है?

जरुरी नहीं।

आपने टिप्पणियों में उल्लेख किया है कि यह एक आंतरिक एपीआई है। एपीआई तोड़ना बुरा है, क्योंकि आप हर किसी के कोड को तोड़ते हैं। लेकिन एक आंतरिक एपीआई के लिए "हर कोई" बस "आप" है, और आप अपने आप से इस तरह के एपीआई परिवर्तनों के समन्वय के लिए पूरी तरह से सक्षम हैं, इसलिए आमतौर पर एपीआई परिवर्तनों के साथ जुड़ा हुआ दर्द बहुत कम बदतर है।

इसके अलावा, औसत बड़े पैमाने पर भ्रामक हो सकता है: हो सकता है कि शुरुआती विकास के कुछ दिनों के दौरान उनमें 11 ब्रेकिंग एपीआई परिवर्तन हुए हों और 4 साल से स्थिर रहे हों? यदि बड़ी संख्या 0 है, तो SemVer आपको बड़ी संख्या में वृद्धि किए बिना ब्रेकिंग परिवर्तन करने की अनुमति देता है, लेकिन यह आपको बाध्य नहीं करता है। हो सकता है कि उन्होंने प्रोटोटाइप / एक्सप्लोरेटरी चरणों के दौरान भी दिन 0 से सेमी वीयर का इस्तेमाल शुरू किया हो?


5
यह उत्तर सीधे प्रश्न को संबोधित करता है। अन्य उत्तरों में से कुछ मान्य होंगे यदि ओपी के शब्दार्थ संस्करण की धारणा के लिए नहीं।
जोश

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

1

संक्षिप्त जवाब

नहीं

लंबा जवाब

"कभी-कभी एक संख्या सिर्फ एक संख्या होती है"

"पागल संस्करण", "तर्कसंगतता", "तर्क" के बारे में वर्तमान पागल दुनिया में भूल जाओ

Chrome इतनी जल्दी संस्करण की संख्या क्यों बढ़ा देता है?

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


7
ओपी ने कहा है कि वे सिमेंटिक संस्करण का उपयोग कर रहे हैं; आप इसे अनदेखा क्यों करते हैं?
जोर्ग डब्ल्यू मित्तग

-3

सिमेंटिक वर्जनिंग का उपयोग करते समय, अभी भी निर्णय लेना है कि किन बदलावों को "प्रमुख" माना गया है, और जो "मामूली" हैं। संस्करण संख्या को टक्कर देने के कई कारण हैं - या इसे टक्कर नहीं देना।

पिछड़े अनुकूलता वादों के साथ सिस्टम ज्यादातर अपडेट के साथ प्रमुख संस्करण संख्या को टक्कर दे सकता है, सिर्फ इसलिए कि कुछ अधिक या कम गूढ़ कोने मामले में एक पिछड़े संगतता ब्रेक है। एक ही सिस्टम लगभग 1. अनिश्चित रूप से चिपके रह सकता है, क्योंकि बहुत अधिक प्रयास पिछड़े संगतता में डाल दिया जाता है, किसी भी आश्रित प्रणाली को तोड़ने की कोशिश नहीं करता है। दोनों संस्करण क्रमांकन के दृष्टिकोण को "रूढ़िवादी" माना जा सकता है, लेकिन दोनों एक गहरी अंतर्निहित समस्या का संकेत भी हो सकते हैं।

दूसरी बार, आपके पास वास्तव में एक रिलीज़ शेड्यूल है (ग्राहकों के लिए त्रैमासिक अद्यतन सीडी के बारे में सोचें) जहां यह प्रमुख संस्करण संख्या को बदलने के लिए समझ में आता है, ताकि "संस्करण 3.4 / अक्टूबर 16" के बजाय यह सिर्फ "संस्करण 11.0" कहे। आजकल, कम अंतराल में अधिक से अधिक सॉफ्टवेयर जारी किए जाते हैं, जिससे एक विशेष संस्करण योजना से चिपके रहने के कारण रिलीज़ शेड्यूल कम हो जाता है। मैंने इसे बड़े वेयरहाउस सिस्टमों में देखा है जो आंतरिक आईटी को केवल एक दिन डाउनटाइम (आमतौर पर एक रविवार) की अनुमति देते हैं। यह दिन परिनियोजन दिवस है और हर बार एक नए प्रमुख संस्करण के साथ चिह्नित किया जाता है।

कुछ कार्यक्रमों में बाहरी निर्भरताएं होती हैं जो अत्यंत महत्वपूर्ण होती हैं, क्योंकि उपयोगकर्ता को एक ही समय में दोनों को अपडेट करना होगा। यदि आपके पास एक वर्ड-एडऑन है जो केवल वर्ड 2010 और वर्ड 2013 के लिए एक दूसरे के साथ काम करता है, तो आप एमएस-वर्ड के लिए अपने प्रमुख संस्करण संख्याओं को सिंक्रनाइज़ करना चाह सकते हैं। यहां, प्रमुख संख्याएं बहुत महत्वपूर्ण हैं, क्योंकि आपके कुछ उपयोगकर्ता आपके सामान्य अपडेट शेड्यूल के "पीछे" होंगे, क्योंकि उन्होंने वर्ड के सबसे वर्तमान संस्करण (या जो भी आप पर भरोसा कर रहे हैं: एसएपी, डायनेमिक्स) को अपडेट नहीं किया है। आदि)।

कभी-कभी, अन्य बाहरी कारक संस्करण संख्याओं को निर्धारित करते हैं। यदि आपके पास राजकोषीय सॉफ़्टवेयर है, तो कर कानून के अनुरूप वार्षिक अद्यतन हो सकते हैं (जो 1 जनवरी से लागू होगा)। इस तरह के सिस्टम में साल में एक बार ठीक होने वाले प्रमुख संस्करण होंगे - इसलिए नहीं कि यह अपडेट शेड्यूल है, बल्कि इसलिए कि यह ग्राहक के लिए अन्य महत्व का है: यदि आप अपने 2016 के करों को करते हैं, तो आपके पास बेहतर कार्यक्रम हैं जो 2016 के कर कानून में अपडेट हैं।

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


3
"सिमेंटिक वर्जनिंग का उपयोग करते समय, अभी भी निर्णय लेना है जो परिवर्तन" प्रमुख "माना जाता है, और जो" मामूली "हैं।" - नहीं, वहाँ नहीं है; यह ठीक विनिर्देश में परिभाषित किया गया है। "संस्करण संख्या को टक्कर देने के कई कारण हैं - या इसे टक्कर नहीं देना है।" - नहीं, वहाँ नहीं हैं; बड़ी संख्या को बढ़ाने के लिए एक सटीक कारण है (जो कि यह प्रश्न है), और यह कल्पना में सटीक रूप से परिभाषित किया गया है।
जोर्ग डब्ल्यू मित्तग

1
@ JörgWMittag या तो मैं इसे गलत पढ़ रहा हूं, या युक्ति विशेष रूप से कहती है जब आप संस्करण संख्याओं को टकराते हैं, लेकिन यह तब आपके बारे में कुछ नहीं कहता है जब आप MAY करते हैं।
हाज़िट

-4

संस्करण संख्याओं के अर्थ पर सहमति वास्तव में प्रमुख है ।minor.revision.buildnumber

अगर बड़ी तेजी से बढ़ता है तो यह सिर्फ डेवलपर के पास ये सभी नए विचार हो सकते हैं और वास्तव में कठिन काम करते हैं।

व्यापार जगत में हालांकि प्रमुख संस्करण संख्या में वृद्धि के अन्य कारण हो सकते हैं। पसंद

  • बिक्री कम हो रही है, ग्राहक / उपयोगकर्ता उन्नयन से पहले अगले बड़ी प्रमुख रिलीज की प्रतीक्षा कर रहे हैं।

  • अनुबंध का कहना है कि ग्राहक मामूली अपडेट के हकदार हैं। विक्रेता उन लोगों के लिए शुल्क नहीं ले सकते हैं, इसलिए कुछ मामूली सुधार एक प्रमुख उत्पाद उन्नयन के रूप में बेचा जाता है।

  • प्रतियोगी X खेल में थोड़ा लंबा रहा है इसलिए उनका प्रमुख संस्करण संख्या केवल आपकी तुलना में अधिक है। इससे ऐसा लगता है कि आप पिछड़ रहे हैं, आपको "पकड़" करना होगा।


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