मोनोरेपो चाहे मल्टीरेपो
सामग्री:
सारांश
समस्या
हमनी के परियोजना में तीन मुख्य श्रेणी के सॉफ्टवेयर के विकास शामिल बा:
- फ्रंट-एंड GUI
- मिडलवेयर सेवा
- बैक-एंड सर्वर
जब हमनी विकसित करेनी, हमनी के सोर्स कोड प्रबंधन (SCM) संस्करण नियंत्रण प्रणाली (VCS) git ह।
हमनी के तय करे के पड़ी कि अपना कोड के संगठित करे खातिर git कइसे इस्तेमाल करीं।
सबसे ऊपरी स्तर के चुनाव "मोनोरेपो" चाहे "पॉलीरेपो" चाहे "हाइब्रिड" के रूप में संगठित करल ह:
- मोनोरेपो के मतलब हमनी सब टुकड़ा के एक बड़ रेपो में राखेनी
- पॉलीरेपो के मतलब हमनी हर टुकड़ा के आपन रेपो में राखेनी
- हाइब्रिड के मतलब मोनोरेपो आ पॉलीरेपो के कुछ मेल
आउर जानकारी खातिर कृपया देखीं https://github.com/joelparkerhenderson/monorepo-vs-polyrepo
फैसला
मोनोरेपो जब संगठन/टीम/परियोजना अपेक्षाकृत छोट बा, आ तेज दोहराव के प्राथमिकता स्थिरता बनवले राखे से जादा बा।
पॉलीरेपो जब संगठन/टीम/परियोजना अपेक्षाकृत बड़ बा, आ स्थिरता बनवले राखे के प्राथमिकता तेज दोहराव से जादा बा।
स्थिति
तय भइल। मोनोरेपो और/चाहे पॉलीरेपो संभाले खातिर नया औजार उपलब्ध भइला पर/अगर फेर से विचार करे खातिर खुला बानी।
ब्योरा
मान्यता
हमनी जवन सब कोड विकसित कर रहल बानी ऊ एक संगठन के पेशकश खातिर बा, आम जनता खातिर ना। यानी Broker-Dealer के लक्ष्य आम जनता के स्वयंसेवी डेवलपर जइसन कुछो राखे के नइखे।
बंदिश
बंदिश https://github.com/joelparkerhenderson/monorepo-vs-polyrepo पर नीमन से दस्तावेजित बा
रुख
हमनी Google, Facebook, वगैरह के शैली में मोनोरेपो पर विचार कइनी। हमनी के लागत बा कि मोनोरेपो के कवनो भी पैमाना बढ़ावे के समस्या भविष्य में एतना दूर बा कि जब तक हमनी के ओकर जरूरत पड़ी, तब तक हमनी Google आ Facebook जइसन उहे अभ्यास के फायदा उठा सकब।
हमनी आम Git ओपन सोर्स परियोजना के शैली में पॉलीरेपो पर विचार कइनी, जइसे Google Android, Facebook React, वगैरह। हमनी के लागत बा कि ई आम जनता के भागीदारी (जइसे दुनिया के कवनो भी आदमी कोड पर काम कर सकेला) आ व्यक्तिगत उपलब्धता (जइसे परियोजना अपने आप में इस्तेमाल होला, बिना कवनो आउर टुकड़ा के) खातिर सबसे नीमन चुनाव ह।
तर्क
जब संगठन/टीम/परियोजना अपेक्षाकृत छोट बा, हमनी मोनोरेपो चुनेनी, काहेकि तेज दोहराव के प्राथमिकता स्थिरता बनवले राखे से काफी जादा बा
जब संगठन/टीम/परियोजना अपेक्षाकृत बड़ बा, हमनी पॉलीरेपो चुनेनी, काहेकि स्थिरता बनवले राखे के प्राथमिकता तेज दोहराव से काफी जादा बा।
असर
अगर CI+CD खातिर पहिले से पाइपलाइन बा, त हमनी के ओकरा के एक रेपो के भीतर कई परियोजना के परीक्षण खातिर समायोजित करे के पड़ सकेला।
मोनोरेपो खातिर पूरा बिल्ड में CI+CD जादा समय ले सकेला, काहेकि CI+CD मोनोरेपो के सब परियोजना बना सकेला।
अगर संगठन/टीम/परियोजना बढ़े, त मोनोरेपो में पैमाना बढ़ावे के समस्या होई।
मोनोरेपो के पैमाना बढ़ावे के समस्या पॉलीरेपो में बदलल बढ़त कीमती बना सकेला।
मोनोरेपो से पॉलीरेपो में बदलल एगो महत्त्वपूर्ण devops काम ह, आ एकरा के योजना बनावे, संभाले, आ प्रोग्राम करे के पड़ी।
संबंधित
संबंधित फैसला
हमनी मोनोरेपो (जइसे Google Bazel) आ पॉलीरेपो (जइसे Lyft Refactorator) संभाले खातिर संबंधित औजार के फैसला बनाइब।
संबंधित जरूरत
हमनी के CI+CD पाइपलाइन के git संगे नीमन से काम करे खातिर विकसित करे के पड़ी।
संबंधित आर्टिफैक्ट
हमनी उम्मीद करत बानी कि रेपो संगठन में प्रोविजनिंग, कॉन्फिगरेशन प्रबंधन, परीक्षण, आ अइसने devops क्षेत्र खातिर संबंधित आर्टिफैक्ट होई।
संबंधित सिद्धांत
आसानी से पलटे-लायक। अगर मोनोरेपो अभ्यास में काम ना करेला, चाहे नेतृत्व के चाहल ना ह, त पॉलीरेपो में बदलल सादा बा।
ग्राहक के प्रति जुनून। हमनी परियोजना के ग्राहक के हाथ में पहुँचावे के कदर करेनी, आ हमनी के विश्वास बा कि मोनोरेपो हमनी के पॉलीरेपो से जल्दी ओहिजा पहुँचा सकेला, आ तेज दोहरावे में भी मदद कर सकेला।
बड़ सोचीं। Google आ Facebook पॉलीरेपो के बजाय मोनोरेपो के बहुत मजबूत समर्थक हवे, काहेकि सब मूल पेशकश के एक साथ विकसित/परीक्षण/डिप्लॉय कइल जा सकेला।
टिप्पणी
इहाँ कवनो टिप्पणी जोड़ीं।