बड़ी परियोजना लेआउट: कई उप-परियोजनाओं पर नई सुविधा जोड़ना


13

मैं जानना चाहता हूं कि संस्करण नियंत्रण प्रबंधन प्रणाली के साथ कई घटकों के साथ एक बड़ी परियोजना का प्रबंधन कैसे किया जाए।

मेरी वर्तमान परियोजना में 4 प्रमुख भाग हैं।

  1. वेब
  2. सर्वर
  3. व्यवस्थापक कंसोल
  4. मंच।

वेब और सर्वर भाग 2 पुस्तकालयों का उपयोग करता है जो मैंने लिखा था। कुल में 5 git रिपॉजिटरी और 1 मर्करी रिपॉजिटरी हैं। प्रोजेक्ट बिल्ड स्क्रिप्ट प्लेटफ़ॉर्म रिपॉजिटरी में है। यह पूरी बिल्डिंग प्रक्रिया को स्वचालित करता है।

समस्या यह है कि जब मैं एक नया फीचर जोड़ता हूं जो कई घटकों को प्रभावित करता है तो मुझे प्रत्येक प्रभावित रेपो के लिए शाखा बनानी होगी। सुविधा लागू करें। इसे वापस मर्ज करें। मेरी आंत की भावना "कुछ गलत है"।

तो क्या मुझे एकल रेपो बनाना चाहिए और सभी घटकों को वहां रखना चाहिए? मुझे लगता है कि उस मामले में शाखा लगाना आसान होगा। या मैं अभी वही करता हूं जो अभी कर रहा हूं। उस मामले में मैं प्रत्येक रिपॉजिटरी पर शाखा बनाने की इस समस्या को कैसे हल करूं?


क्या आप साझा पुस्तकालयों (रूबी रत्नों, पायथन अंडे, जावा बीन्स, आदि) में अपनी कार्यक्षमता को यथासंभव रखने के लिए फिर से व्यवस्था कर सकते हैं, और फिर पुस्तकालयों से प्रत्येक तत्व को "रचना" करने के विचार के साथ भागों को इकट्ठा कर सकते हैं?
नार्फाटनर

सर्वर घटक पर एक नया प्रोटोकॉल समर्थन जोड़ने पर विचार करें। हमें इसके लिए वेब में भी उचित इंटरैक्शन कंट्रोल (बटन, फ़ील्ड आदि) जोड़ना होगा। इस समस्या
Shiplu Mokaddim

1
ऐसा लगता है कि यह "पुल" पैटर्न के अनुरूप है; आप उससे प्रेरणा ले सकते हैं।
Narfanator

उन सभी पर शासन करने के लिए एक भंडार
स्टीवन ए। लोव

जवाबों:


8

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

इसका हल यह है कि आप इसके भीतर कोड के युग्मन के आधार पर अपनी रिपॉजिटरी संरचना को परिभाषित करें: यदि प्रोजेक्ट कंपोनेंट केवल प्रोजेक्ट कंपोनेंट B के साथ स्थिर इंटरफेस को साझा करता है, तो उन्हें अलग रिपॉजिटरी में रखा जा सकता है। अन्यथा, उन्हें एक ही भंडार में सह-स्थित होना चाहिए। एक अधिक दानेदार रिपॉजिटरी लेआउट एक बेहतर तथ्य प्रणाली प्रणाली को प्रतिबिंबित करेगा।


2

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

लेकिन आपके विशेष मामले में, ऐसा लगता है कि आपके रिपॉजिटरी आपके कोड को प्रभावी ढंग से समूहीकृत नहीं कर रहे हैं। यदि एक रिपॉजिटरी में कोड में परिवर्तन करने के लिए दूसरों को बदलाव की आवश्यकता होती है (एक तरफ हटना) तो या तो आपका युग्मन बहुत तंग है या रिपॉजिटरी को पुनर्गठित किया जाना चाहिए।

यदि सभी रिपॉजिटरी वास्तव में एक ही परियोजना का हिस्सा हैं (वे अकेले नहीं खड़े हो सकते हैं) तो शायद आपके पास केवल 1 रिपॉजिटरी होनी चाहिए। (या शायद 2: मुख्य परियोजना और एक सामान्य / मानकीकृत कार्यक्षमता के लिए।)

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