यह एक साधारण प्रश्न है। क्या कोड के 2 संस्करण या एक होना बेहतर है? एक इंजीनियरिंग संस्करण होगा जो कि बहुत सारी कार्यक्षमता के साथ वी एंड वी परीक्षण नहीं किया गया है, दूसरा एक स्ट्रिप-डाउन ग्राहक संस्करण है जो अत्यधिक विनियमित और अत्यधिक परीक्षण किया गया है।

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

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

इस समस्या का सामान्य समाधान क्या है? क्या कोई सीमा है जिसके लिए आप तय करते हैं कि यह दो संस्करणों में तोड़ने का समय है? या क्या मुझे और भी गहन संगठनात्मक तकनीकों को सीखना चाहिए? मैं पहले से ही सॉफ्टवेयर के लिए सर्वोत्तम संगठनात्मक युक्तियों का पालन करने और ओओपी सर्वोत्तम प्रथाओं का पालन करने की पूरी कोशिश करता हूं।

अभी तक, मैं कहूंगा कि मेरा कोड आधार लगभग 50% ग्राहक सॉफ़्टवेयर और 50% इंजीनियरिंग कार्यक्षमता है। हालाँकि, मुझे सॉफ़्टवेयर में जोड़ने के लिए अभी एक नई (बड़ी) इंजीनियरिंग/विनिर्माण परियोजना मिली है।

किसी भी अनुभव की सराहना की जाएगी।

0
Charles Curt 10 सितंबर 2019, 00:37

1 उत्तर

सबसे बढ़िया उत्तर

टीएल; डीआर: इसे विभाजित करें।


आप उन मॉडलों में से किसी एक का उपयोग कर सकते हैं जिनका आपने उल्लेख किया है। यह इस बारे में है कि आप इसे भविष्य में कैसे विकसित होते हुए देखते हैं और इसे वर्तमान में कैसे स्थापित किया जाता है।

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

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

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

1
maniSidhu98 9 सितंबर 2019, 22:35