आप वेब अनुप्रयोगों संस्करण चाहिए?


35

मैंने हाल ही में वेब अनुप्रयोगों के संस्करण के बारे में सहकर्मी के साथ चर्चा की है।

मुझे नहीं लगता कि आपको इसकी आवश्यकता है, और यदि आप चाहते हैं कि आपकी नवीनतम रिलीज़ की पुष्टि के लिए आपको एक पवित्रता की जाँच हो, तो मुझे लगता है कि एक तारीख (YYMMDD) शायद काफी अच्छी है।

क्या मैं आधार बंद कर रहा हूं? क्या मुझे बात याद आ रही है? क्या मुझे वेब एप्लिकेशन संस्करण संख्याओं का उपयोग करना चाहिए

जवाबों:


31

यदि आप एक से अधिक ग्राहकों के लिए एक ही वेब एप्लिकेशन को रीसेल करते हैं, तो आपको इसे बिल्कुल संस्करण बनाना चाहिए।

यदि यह एक ऐसी वेबसाइट है जो केवल एक स्थान पर स्थापित है, तो आवश्यकता कम है, लेकिन यह अभी भी चोट नहीं पहुंचा सकता है। आप समय-क्षेत्र की समस्याओं के प्रति कम संवेदनशील होंगे और ऐसे भी। लाइब्रेरी संस्करण 1.0.2.25 में एक समस्या का निदान करना 3 नवंबर, 2010 11:15 पूर्वाह्न पर लाइब्रेरी बिल्ड का शिकार करने की तुलना में बहुत अच्छा है।


2
यदि आप एक से अधिक ग्राहकों के लिए एक ही वेब एप्लिकेशन को रीसेल करते हैं, तो आपको इसे बिल्कुल संस्करण बनाना चाहिए। 100% सच!
गोपी

8
मैं सहमत नहीं हूँ। अपनी रिलीज़ को संस्करण देना हमेशा महत्वपूर्ण होता है, वेब ऐप या नहीं। यह किसी भी विकास विधि में एक मौलिक अभ्यास है (काउबॉय कोडिंग को बाहर रखा गया है)।
मार्टिन विकमन

2
@ श्री कुमार: अभी तक यहाँ खोजशब्द हैं :)
मार्टिन

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

1
@ मन्ना लीयर - यह सिर्फ मेरे लिए हुआ है कि मैंने कभी आपको डेट की बात के बारे में जवाब नहीं दिया। YYMMDD संस्करण में, आप "3 नवंबर, 2010 11:15 पूर्वाह्न" का उदाहरण 101103 के रूप में दिया जाएगा। इसलिए यह तिथि द्वारा 'संस्करणित' है।
जॉन मैकइंटायर

12

यदि आप अपने एप्लिकेशन के DLL पर संस्करण संख्या को स्वचालित कर सकते हैं, तो यह चोट नहीं पहुंचा सकता। यह आपको संस्करणों का ट्रैक रखने में मदद करेगा।

आमतौर पर, वेब ऐप केवल एक स्थान पर जारी किए जाते हैं, जहां आप इसे होस्ट कर रहे हैं, इसलिए यह उतना महत्वपूर्ण नहीं है जितना कि डेस्कटॉप एप्लिकेशन। यदि यह लागू हो, तो रोल-बैक, बग ट्रैकिंग (अर्थात यह कौन सा संस्करण है) और डेवलपर, स्टेजिंग और प्रोडक्शन सर्वर के बीच अंतर को ध्यान में रखते हुए मदद कर सकता है।

मैं इसे स्वचालित करने पर गौर करूंगा - यह इस तरह की चीज है जिसे आप एक बार सेटअप कर सकते हैं और यदि आपको इसकी आवश्यकता है तो इसका उपयोग कर सकते हैं।


प्रत्येक बिल्ड के लिए VCS टैग सहित स्वचालित। AFAIK अधिकांश बिल्ड सिस्टम इन दिनों ऐसा कर सकते हैं।
जेएनएसजी

9

आपके उपयोगकर्ता संस्करण संख्याओं के बारे में परवाह नहीं करते हैं क्योंकि उनके पास हमेशा नवीनतम और सबसे बड़ी रिलीज़ होती है, लेकिन आप इसे स्वयं (और आपकी टीम) के लिए जानते हैं कि वास्तव में क्या संस्करण लाइव चल रहा है। आखिरकार आपका विकास स्रोत लाइव कोड के साथ सिंक से बाहर हो जाता है और फिर आपको निश्चित रूप से पता होना चाहिए। इसलिए अपने svn / git ट्री में अपनी रिलीज़ लेबल करें और उस टैग के साथ वेब ऐप को चिह्नित करें।


1
पूर्ण रूप से। आप जंगली में बिना कोड के कोड को वहन नहीं कर सकते। भले ही संस्करण SVN / hg / git कमिट # हो।
पॉल नाथन

9

यदि आपके पास देव / परीक्षण के उदाहरण हैं, तो परियोजना टीम के सदस्यों के लिए यह देखना बहुत महत्वपूर्ण है कि वे किस निर्माण / संशोधन को देख रहे हैं।


4

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


4

मैं कहता हूं कि कुछ भी लेकिन एक तुच्छ वेब अनुप्रयोग के लिए, आपको इसे संस्करण देना चाहिए। यहाँ काम पर दो, थोड़ा अलग, धारणाएँ हैं:

  1. एक पूरे के रूप में आवेदन
  2. अलग-अलग फाइलें

स्थिति के बावजूद, मेरा मानना ​​है कि फाइलों में व्यक्तिगत संस्करण (या संशोधन) संख्या होनी चाहिए। आदर्श रूप से, यह आपके संस्करण नियंत्रण प्रणाली द्वारा स्वचालित रूप से संभाला जाएगा। जैसा कि यह दूसरों द्वारा कहा गया है, इसकी तिथि और समय की तुलना में फ़ाइल के संस्करण संख्या को संदर्भित करना आसान है।

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


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

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


4

आपको अपने बिल्ड सर्वर से बिल्ड आईडी के साथ अपना वेब एप्लिकेशन संस्करणित करना चाहिए और उस आईडी को सभी बग रिपोर्ट में संलग्न करना चाहिए।

यह आपको समय पर वापस जाने की अनुमति देगा यदि आपको पुराने संस्करण पर रिपोर्ट किए गए बग को ठीक करना है जो वर्तमान में उत्पादन में मौजूद नहीं है।


1

आपके प्रश्न से यह स्पष्ट है कि आपके पास एक साधारण वेब एप्लिकेशन है

  • केवल एक वेब GUI द्वारा पहुँचा जा सकता है और वेब (-service) एपीआई द्वारा नहीं । आप उपयोगकर्ताओं को एक एपीआई आप उपयोग कर आवेदन तक पहुँचने है, तो जरूरत है यह संस्करण के लिए। यदि आप एपीआई को बदलकर ग्राहकों को तोड़ते हैं, तो आपको उसी समय एपीआई के विभिन्न संस्करण को बनाए रखने की आवश्यकता होती है।

  • उस समय केवल एक उदाहरण चल रहा था । यहां तक ​​कि अगर आपके पास केवल वेब लड़का है, अगर आपके पास अधिक इंस्टॉलेशन है, तो आपको यह जानना होगा कि कौन सा ग्राहक कौन सा संस्करण चला रहा है।

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


सहमत, एक बिना पढ़ा हुआ वेब एप बनाना ऐसी घोर अक्षमता है जिस पर ज्यादातर लोग भरोसा नहीं करते। और हाँ, मैं ऐप के एक उदाहरण के बारे में बात कर रहा हूं।
जॉन मैकइंटायर

तीसरे बिंदु पर भी विचार करें, जो अभी भी एकल-आवृत्ति अनुप्रयोगों के लिए मान्य है।
OGrandeDiEnne

मैंने पढ़ा है कि और जब यह निश्चित रूप से महत्वपूर्ण और मुश्किल है, तो मुझे यकीन नहीं है कि यह एक संस्करण है। क्या यह तैनाती का मुद्दा नहीं है? KWIM?
जॉन मैकइंटायर

हां और ना। (यह एक लंबे समय से पहले था, लेकिन मुझे लगता है ..) मुद्दा यह था कि अगर आपको अपने कोड को संस्करणित करने की आवश्यकता है तो आपको डीबी संरचना के रूप में अच्छी तरह से संस्करण की आवश्यकता होगी।
OGrandeDiEnne

0
  • केवल सीमित इंस्टॉल बेस के साथ आंतरिक उपयोग?
  • या जंगल में कई संस्करणों के लिए उत्तरदायी है?

हमारे पास केवल पूर्व है इसलिए केवल संन्यास पोस्ट रिलीज के लिए संस्करण संख्या का उपयोग करें। हमें एक ही समय में उपयोग में कई संस्करणों को ट्रैक करने की आवश्यकता नहीं है।


0

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

उस सम्मेलन का उपयोग करने से, वेब ऐप को एक निश्चित समय में फिर से बनाना संभव होगा।

मेरी राय में, चूंकि वेबपेज इन दिनों दोनों पक्षों, सर्वर और क्लाइंट पर डायनेमिक भाषाओं का उपयोग करके बनाए गए हैं, इसलिए अपडेट किए गए वेब ऐप को फिर से लोड करने का कोई कारण नहीं होना चाहिए जब तक कि उपयोगकर्ता ब्राउज़र को पुनरारंभ नहीं करता है या मैन्युअल रूप से पृष्ठ को फिर से लोड नहीं करता है।

वेब एप्लिकेशन में केवल अपडेट किए गए भागों या मॉड्यूल को आवेदन की समग्र स्थिति को प्रभावित किए बिना फिर से लोड किया जाना चाहिए।

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


0

हां, आपको इसे संस्करण देना चाहिए! और आपके संशोधन नियंत्रण प्रणाली में एक टैग होना चाहिए (जैसे तोड़फोड़, गिट, पारा, आदि) जो संस्करण संख्या से मेल खाता है।

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


0

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

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

यदि आप अपनी साइट का संस्करण बना रहे हैं, तो आप अपने बिल्ड के सभी css संदर्भों को mysite.css? V = 1234 में बदल सकते हैं, जो आपको भविष्य की समाप्ति की तारीख रखने देगा और भविष्य के परिवर्तनों की चिंता नहीं करेगा जैसा कि अगले बिल्ड में है? 'mysite.css होगा? v = 1235।


0

हाँ तुम्हें करना चाहिए। वितरण कारणों से अन्य उत्तरों के द्वारा यहां बताया गया है।

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


0

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

एकल-होस्ट किए गए प्रोजेक्ट के लिए यह कड़ाई से आवश्यक नहीं है, क्योंकि यदि कोई प्रश्न उठता है तो आप हमेशा होस्ट को देख सकते हैं और पुष्टि कर सकते हैं कि वास्तव में क्या चल रहा है। हालांकि, यह एक तरह से अच्छा है, क्योंकि यह एक या दो बार काम आ सकता है। यह वास्तव में आपके ऊपर है कि आप सोचते हैं कि यह उपयोगी होगा या नहीं।

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

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