Back to the roots toward true continuity (part one)

इस लेख में, मैं आपको बताना चाहता हूं कि CI क्या है, कितने लोग मानते हैं कि सत्य निरंतर एकीकरण है, और CI क्या नहीं है। साथ ही, इसे बेहतर समझने के लिए मैं आपको कुछ उदाहरण दूंगा।

CI क्या है?

यह अधिकांश उद्यमों और व्यक्तियों के लिए एक आम बात है … और यह सच निरंतर एकता की परिभाषा नहीं है, मजाक के लिए क्षमा करें।

सच्चा निरंतर एकीकरण क्या है?

खैर, सच्ची निरंतर एकता “बस” है न कि कुछ प्रकार की “जेनकिंस” ट्रैविस | Go TeamCity “जो परियोजना के गिट रिपॉजिटरी को प्रदूषित करता है, इसे संकलित करता है और विरूपण साक्ष्य के खिलाफ परीक्षणों का एक समूह चलाता है। वास्तव में, यह CI का एक कम दिलचस्प हिस्सा है जो एक तकनीक (जेनकिंस) नहीं है, लेकिन ग्रैडी बूच एक चुस्त अभ्यास है। द्वारा बनाया और अपनाया और चरम प्रोग्रामिंग पद्धति द्वारा निर्धारित किया जाता है।

के बारे में (जो इकाई परीक्षण के एक ठोस उपयोग में लागू किया गया है)।

CI के साथ सॉफ्टवेयर दिन में कई बार बनाया जाता है (आदर्श रूप से हर कुछ घंटों में), हर बार एक डेवलपर कोड को मेनलाइन में एकीकृत करता है (जो अक्सर होना चाहिए) “एकीकरण सीआई से बचने के लिए” इस “एकीकरण नरक” को कोड को जितनी जल्दी हो सके से रोकता है। और टीम के सदस्यों को यह देखने के लिए मजबूर करता है कि नए कोड के बारे में साझा निर्णय लेने के लिए अन्य डेवलपर्स क्या कर रहे हैं।

कार्यप्रणाली बताती है कि टीम का प्रत्येक सदस्य अधिक से अधिक बार सुर्खियों को एकीकृत करता है। एक CI सर्वर मेनलाइन के अंतिम स्रोतों से एक कलाकृति बनाएगा और सभी ज्ञात परीक्षणों को पास करेगा। यदि विफलता होती है, तो सीआई बिल्ड के राज्य (RED) टीम के सभी सदस्यों को चेतावनी देगा। टीम की अधिकतम प्राथमिकता बिल्ड को उसके डिफ़ॉल्ट मान (GREEN) में रखना है।

CI क्या नहीं है?

एक बार जब हमने महसूस किया कि CI सर्वर के केवल सरल उपयोग से अधिक है, जिसे हम बता सकते हैं:

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

दोनों सुविधा शाखाओं और पुल अनुरोधों में कहा गया है कि काम को मास्टर (सीआई सर्वर द्वारा निगरानी) की तुलना में किसी अन्य शाखा में किया जाना चाहिए, लंबे चक्रों को मास्टर में विलय करने से पहले। ऐसा होता है।

सुविधा शाखाएं और पुल अनुरोध टीम कार्य / शाखा पर रिफ्लेक्टर से बचने के लिए टीम संसाधन / कार्य योजना पर गहराई से भरोसा करते हैं जो थ्रेड “एकीकरण नरक” को काटते हुए किसी अन्य कार्य (शाखा) के विकास को प्रभावित करता है।

ठीक है… .लेकिन रुकिए! मुझे एक सुविधा शाखा की आवश्यकता है! 

फ़ीचर शाखाएँ अंत उत्पाद से शाखा के माध्यम से कार्य-में-प्रगति सुविधा को अलग करती हैं (कोड की एक अलग प्रतिलिपि में रहती है), सुविधा को कोड के बाकी हिस्सों से अलग करने के लिए टॉगल का उपयोग करके .. कोड!

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

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

ठीक है, हम सच्चे निरंतर एकीकरण के इस पहले भाग के अंत में आते हैं। हमने पुनः पता लगाया है कि निरंतर एकीकरण एक सीआई सर्वर का उपयोग करके “न केवल” है, बल्कि दृढ़ता और अनुशासन के साथ एक अभ्यास को अपनाना है। दूसरे भाग में, हम GOOD CI फ्लो कैसे करें के बारे में बात करेंगे।

Back to the roots toward true continuity (part one)

Leave a Reply