क्या आप इसका उपयोग करते हैं या इसी तरह की गिट ब्रांचिंग वर्कफ़्लो?
हम काम पर एक समान वर्कफ़्लो का उपयोग करते हैं, लेकिन थोड़ा कम जटिल है। हालाँकि यह इस वर्कफ़्लो से बहुत प्रेरित है, क्योंकि मैंने इस लेख को कई बार पढ़ा है। मैं भी अपने डेस्क के पास रंगों में मुद्रित शाखाओं वाले मॉडल की pdf है :)
क्या आप इसे एक उत्पादक दृष्टिकोण मानते हैं?
उत्पादक। आप उत्पादकता को कैसे परिभाषित करते हैं? वैसे, मेरे दिमाग में हर समय उच्च गुणवत्ता का होना, कम से कम कोशिश करना और बेहतर गुणवत्ता हासिल करना सबसे महत्वपूर्ण है। लगातार प्रक्रिया में सुधार करना आदि। यदि आप गुणवत्ता कोड का उत्पादन कर सकते हैं, तो उत्पादकता से लाभ होगा। तो सवाल वास्तव में है: क्या यह सॉफ्टवेयर की गुणवत्ता में सुधार करता है? और उस पर मेरा जवाब निश्चित रूप से हाँ है।
मैं इस प्रकार की शाखामिलन मॉडल से सबसे ज्यादा प्यार करता हूं, वह यह है कि यह गुणवत्ता की विभिन्न परतों में शाखाओं का परिचय देती है। तस्वीर में दाईं ओर अधिक, उच्च स्थिरता और उच्च गुणवत्ता। मास्टर ब्रांच पवित्र है और इस पर सभी कमिटमेंट को सॉफ्टवेयर के स्थिर संस्करणों के रूप में माना जाना चाहिए। जितना अधिक आप बाईं ओर जाते हैं, उतना अधिक प्रयोगात्मक और कम स्थिरता आपको मिलती है।
जैसे ही आप नई सुविधाओं और बग फिक्स का परीक्षण करते हैं, आप धीरे-धीरे उन्हें बाएं से दाएं स्थानांतरित कर सकते हैं और इस प्रकार उच्च गुणवत्ता के साथ कोड में स्थानांतरित कर सकते हैं जब आप जानते हैं कि कोड उन गुणवत्ता आवश्यकताओं को पूरा करता है जो आप कोड की मांग करते हैं। ठीक है, कम से कम सिद्धांत में, चूंकि आप 100% तक सब कुछ नहीं परख सकते हैं और यह सुनिश्चित करने के लिए जानते हैं कि कोड में कोई बग नहीं है, क्योंकि यह हमेशा बग होगा। लेकिन यह आपको एक उच्च आत्मविश्वास रखने में सक्षम बनाता है।
एक प्रोग्रामर के रूप में अधिक कुछ नहीं चूसता है, एक ऐसी प्रणाली में काम करने की तुलना में जहां किसी को कोड में विश्वास नहीं है, क्योंकि वे जानते हैं कि यह सिर्फ चूसता है और इसमें कीड़े का एक भार होता है।
क्या आप इस दृष्टिकोण के साथ कोई दोष देखते हैं? किसी भी संभावित नकारात्मक पक्ष?
अपने शाखा मॉडल के माध्यम से सोचना महत्वपूर्ण है ताकि यह आपके संगठन की आवश्यकताओं के साथ अच्छी तरह से फिट हो। सिर्फ इसलिए कि यह मॉडल कुछ लोगों के लिए अच्छा काम करता है, जरूरी नहीं कि यह दूसरे के लिए इष्टतम या वांछनीय हो।
इस मामले में भी हमेशा व्यापार बंद होते हैं। एक व्यापार बंद शाखाओं की संख्या बनाम जटिलता है। बहुत सी विभिन्न प्रकार की शाखाएँ शुरू करके, आप वर्कफ़्लो की जटिलता को बढ़ाते हैं। उदाहरण के लिए यह गलत हो सकता है कि हमेशा लोगों को एक नई सुविधा शाखा बनाने के लिए मजबूर किया जाए, जब वे कोड की कुछ पंक्तियों को बदलकर एक साधारण बग को ठीक करने का प्रयास कर रहे हों।
हम सभी जानते हैं कि बग्स हल करने के लिए कम या ज्यादा जटिल हैं। इसलिए, जब एक तुच्छ बग खोजा जाता है, तो आप अतिरिक्त ओवरहेड से छुटकारा पाने के लिए जटिलता और प्रशासन में कटौती करना चाहते हैं और बस लोगों को सीधे मास्टर या शाखा विकसित करने के लिए प्रतिबद्ध करते हैं। लेकिन जैसे-जैसे आपके सुधारों की प्रकृति और अधिक जटिल होती जाती है, यह उनके लिए नई शाखाएँ बनाने के लिए अतिरिक्त ओवरहेड के लायक है। खासकर यदि आप इसके आकार और लंबाई के बारे में अनिश्चित हैं या यदि आप और अन्य डेवलपर्स के बीच सहयोग में सुधार करना चाहते हैं।
यदि आपके पास एक बेहतर दृष्टिकोण है, तो क्या आप इसे साझा करने, या इसके बारे में एक लेख या चर्चा के लिए लिंक प्रदान करने का मन करेंगे?
यह कोई संदेह नहीं है कि एक अच्छा दृष्टिकोण है और यह ज्यादातर मामलों में फिट हो सकता है क्योंकि हम में से अधिकांश के पास समान विकास प्रक्रियाएं हैं, लेकिन यह सभी के लिए उपयुक्त नहीं हो सकता है। मैं आपसे दृढ़तापूर्वक यह सोचने का आग्रह करता हूं कि आप अपने कोड को अभी कैसे संभालते हैं, और एक शाखा मॉडल बनाने की कोशिश करें जो आपके पास पहले से ही फिट बैठता है।
सबसे महत्वपूर्ण बात यह है कि शुरुआत गित से करें और बाकी स्वाभाविक रूप से पालन करेंगे। सरल शुरू करें और धीरे-धीरे सुधार करें! रचनात्मक बनो!
चियर्स