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

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