सॉफ्टवेयर विकास में, डिपेंडेंसी इंजेक्शन (डीआई) मूलभूत सिद्धांतों में से एक है जो लचीले और रखरखाव योग्य एप्लिकेशन बनाने में मदद करता है। इस लेख में, हम गो-लैंग में डिपेंडेंसी इंजेक्शन के उपयोग पर चर्चा करेंगे और वायर टूल हमें निर्भरता को आसानी से कॉन्फ़िगर करने में कैसे मदद कर सकता है।
निर्भरता इंजेक्शन क्या है?
डिपेंडेंसी इंजेक्शन (डीआई) किसी एप्लिकेशन को बनाने वाले घटकों के बीच निर्भरता को प्रबंधित करने के लिए आमतौर पर इस्तेमाल किया जाने वाला सॉफ्टवेयर डिज़ाइन पैटर्न है। जब हम सॉफ़्टवेयर बनाते हैं, तो हम अक्सर अपने कोड को छोटे, अलग-अलग घटकों में तोड़ देते हैं जो कुछ कार्यक्षमता प्रदान करने के लिए एक-दूसरे के साथ बातचीत करते हैं। इन घटकों की एक-दूसरे पर निर्भरता होती है, जिन्हें निर्भरता कहा जाता है।
सबसे पहले, आइए समझें कि हमें डिपेंडेंसी इंजेक्शन का उपयोग करने की आवश्यकता क्यों है। जैसे-जैसे एप्लिकेशन बढ़ता है, निर्भरता ग्राफ तेजी से जटिल होता जाता है। इससे बोझिल आरंभीकरण हो सकता है और कोड को साफ-साफ विभाजित करना मुश्किल हो सकता है, खासकर जब कुछ निर्भरताएं कई बार उपयोग की जाती हैं। इसके अलावा, निर्भरता को मैन्युअल रूप से प्रबंधित करना समय लेने वाला और कोड में परिवर्तन करने, विभिन्न निर्भरता के साथ कार्यक्षमता का परीक्षण करने और कोड ट्रेस का पालन करने में कठिन हो सकता है।
निर्भरता इंजेक्शन हमें वस्तुओं के निर्माण के तर्क को उन वस्तुओं के उपयोग के तर्क से अलग करने की अनुमति देता है। मूल रूप से, निर्भरताएँ कंस्ट्रक्टरों या मापदंडों के माध्यम से वस्तुओं में प्रदान की जाती हैं या इंजेक्ट की जाती हैं। यह हमें ऐसे एप्लिकेशन बनाने की अनुमति देता है जो बेहतर प्रबंधित, परीक्षण करने में आसान और अधिक लचीले होते हैं।
गो-लैंग में डिपेंडेंसी इंजेक्शन का उपयोग करना
गो-लैंग, या गो, एक प्रोग्रामिंग भाषा है जिसे कुशल, सरल और रखरखाव योग्य एप्लिकेशन बनाने के लिए डिज़ाइन किया गया है। गो-लैंग में डिपेंडेंसी इंजेक्शन के लिए अंतर्निहित समर्थन है और यह वायर जैसे उपकरण प्रदान करता है जो हमें निर्भरता को आसानी से कॉन्फ़िगर करने में मदद कर सकता है।
तार का उपयोग क्यों करें?
वायर Google टीम द्वारा विकसित एक डिपेंडेंसी इंजेक्शन टूल है। यह संकलन-समय कोड प्रसंस्करण पर आधारित है, जिसका अर्थ है कि हम संकलन-समय पर निर्भरता को कॉन्फ़िगर कर सकते हैं और जटिल प्रतिबिंब का उपयोग करने से बच सकते हैं। इस अर्थ में, वायर हमें अधिक कुशल और रखरखाव योग्य कोड बनाने में मदद कर सकता है।
वायर कोड स्थैतिक विश्लेषण, चक्रीय निर्भरता का पता लगाने और संगठित निर्भरता समूहन जैसी सुविधाएँ भी प्रदान करता है। यह हमें निर्भरताओं को बेहतर ढंग से प्रबंधित करने और हमारे कोड को अधिक संरचित बनाने की अनुमति देता है।
तार स्थापित करना
वायर का उपयोग करने का पहला चरण इसे स्थापित करना है। वायर स्थापित करने के लिए, हम गो गेट कमांड का उपयोग कर सकते हैं:
github.com/google/wire पर जाएं
एक बार वायर स्थापित हो जाने के बाद, हम अपने गो-लैंग एप्लिकेशन में निर्भरता को कॉन्फ़िगर करना शुरू कर सकते हैं।
वायर के साथ निर्भरता को कॉन्फ़िगर करना
वायर का उपयोग करके निर्भरता को कॉन्फ़िगर करने के लिए, हमें अपनी प्रोजेक्ट निर्देशिका में एक वायर.गो फ़ाइल बनाने की आवश्यकता है। निर्भरता को कॉन्फ़िगर करने के लिए आवश्यक कोड उत्पन्न करने के लिए वायर द्वारा इस फ़ाइल का उपयोग किया जाएगा।
वायर का उपयोग करके निर्भरता को कॉन्फ़िगर करने के चरण यहां दिए गए हैं:
1. फ़ाइल को वायर बनाएं.go
अपनी प्रोजेक्ट निर्देशिका में वायर.गो नामक एक नई फ़ाइल बनाएं। यह फ़ाइल कॉन्फ़िगरेशन फ़ाइल होगी जिसका उपयोग वायर द्वारा किया जाएगा।
2. आयात पैकेज वायर
वायर पैकेज आयात करने के लिए वायर.गो फ़ाइल के शीर्ष पर निम्नलिखित पंक्ति जोड़ें:
आयात "github.com/google/wire"
3. निर्भरता इंजेक्शन फ़ंक्शन को परिभाषित करें
इसके बाद, हमें एक फ़ंक्शन को परिभाषित करने की आवश्यकता है जिसका उपयोग वायर द्वारा निर्भरता को इंजेक्ट करने के लिए किया जाएगा। इस फ़ंक्शन का नाम इनिशियलाइज़ होना चाहिए और उस ऑब्जेक्ट का डेटा प्रकार लौटाना चाहिए जिसमें निर्भरता इंजेक्ट की जाएगी।
उदाहरण के लिए, यदि हम struct UserService में निर्भरताएं इंजेक्ट करना चाहते हैं, तो हम InitializeUserService फ़ंक्शन को निम्नानुसार परिभाषित कर सकते हैं:
func InitializeUserService() *UserService { // Konfigurasi dependensi di sini return &UserService{} }
इनिशियलाइज़ फ़ंक्शन को परिभाषित करने के बाद, हमें निर्भरता को कॉन्फ़िगर करने के लिए आवश्यक कोड उत्पन्न करने के लिए वायर पैकेज के बिल्ड() फ़ंक्शन का उपयोग करने की आवश्यकता है।
wire.go फ़ाइल के अंत में निम्नलिखित पंक्ति जोड़ें:
func main() { wire.Build(InitializeUserService) }
5. रनिंग वायर
एक बार जब वायर.गो फ़ाइल कॉन्फ़िगर हो जाती है, तो हम आवश्यक कोड उत्पन्न करने के लिए वायर चला सकते हैं।
एक टर्मिनल या कमांड प्रॉम्प्ट खोलें, अपनी प्रोजेक्ट निर्देशिका पर जाएँ, और निम्नलिखित कमांड चलाएँ:
तार
वायर एक वायर_जेन.गो फ़ाइल उत्पन्न करेगा जिसमें निर्भरता को कॉन्फ़िगर करने के लिए आवश्यक कोड होगा।
कॉन्फ़िगर की गई निर्भरता का उपयोग करना
एक बार जब वायर वायर_जेन.गो फ़ाइल तैयार कर लेता है, तो हम कॉन्फ़िगर की गई निर्भरता का उपयोग कर सकते हैं।
निम्न उदाहरण दिखाता है कि वायर का उपयोग करके कॉन्फ़िगर की गई उपयोगकर्ता सेवा निर्भरता का उपयोग कैसे करें:
func main() { userService := InitializeUserService() // Gunakan userService di sini }
हम अपनी एप्लिकेशन आवश्यकताओं के अनुसार वायर द्वारा कॉन्फ़िगर की गई उपयोगकर्ता सेवा ऑब्जेक्ट का उपयोग कर सकते हैं।
निष्कर्ष
गो-लैंग एप्लिकेशन विकास में डिपेंडेंसी इंजेक्शन का उपयोग करने से हमें अधिक लचीले, रखरखाव योग्य और सुव्यवस्थित एप्लिकेशन बनाने में मदद मिल सकती है। वायर जैसे उपकरण हमें निर्भरता को आसानी से कॉन्फ़िगर करने और अधिक कुशल कोड उत्पन्न करने में मदद कर सकते हैं।
डिपेंडेंसी इंजेक्शन का उपयोग करके, हम वस्तुओं के निर्माण के तर्क को उन वस्तुओं के उपयोग के तर्क से अलग कर सकते हैं। यह हमें निर्भरताओं में अधिक आसानी से बदलाव करने, विभिन्न निर्भरताओं के साथ कोड का परीक्षण करने और हमारे कोड को अधिक संरचित और रखरखाव योग्य बनाने की अनुमति देता है।
इसलिए, यदि आप गो-लैंग एप्लिकेशन बना रहे हैं, तो अपनी निर्भरता को बेहतर ढंग से प्रबंधित करने के लिए डिपेंडेंसी इंजेक्शन और वायर जैसे टूल का उपयोग करने पर विचार करें। इस तरह, आप अधिक लचीले, रखरखाव योग्य और कुशल एप्लिकेशन बनाने में सक्षम होंगे।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3