गो मेरे व्यक्तिगत करियर में एक महत्वपूर्ण भाषा रही है। जब मैं साउंडकास्ट में सीटीओ था तो मैंने इसके साथ एक ठोस ऑडियो विज्ञापन सर्वर और एसएसपी बनाया। गो नेटवर्किंग और समानता को इतना आसान बना देता है कि यह धोखा देने जैसा लगता है। वह सब वास्तव में अच्छे प्रदर्शन के साथ, जो हमें जो काम करना था उसके लिए बिल्कुल उपयुक्त था।
भाग 1 में, हमने सॉफ्टवेयर के निर्माण चरण के बुनियादी सिद्धांतों का अनावरण किया। इस लेख में, हम उस भाषा की मदद से इसे और अधिक प्रासंगिक बनाएंगे जिसका मेरे दिल में एक विशेष स्थान है। दरअसल, जबकि सॉफ्टवेयर निर्माण के मूल सिद्धांत सभी भाषाओं में समान हैं, प्रत्येक भाषा पारिस्थितिकी तंत्र के अपने अद्वितीय उपकरण और प्रथाएं हैं।
बिना किसी देरी के, आइए गो पर विशेष ध्यान देते हुए इनका अन्वेषण करें।
गूगल द्वारा डिज़ाइन किया गया गो, निर्माण के लिए एक अद्वितीय दृष्टिकोण अपनाता है जो सरलता और गति पर जोर देता है।
गो एक बिल्ड कमांड के साथ आता है। यह कमांड आयात पथों द्वारा नामित पैकेजों को उनकी निर्भरताओं के साथ संकलित करता है, लेकिन परिणामों को स्थापित नहीं करता है। यह एक निष्पादन योग्य फ़ाइल उत्पन्न करता है।
उदाहरण:
go build main.go
गो कंपाइलर की सबसे उपयोगी विशेषताओं में से एक उल्लेखनीय रूप से आसानी से क्रॉस-संकलन करने की क्षमता है। आपको बस वांछित प्लेटफ़ॉर्म को लक्षित करने के लिए GOOS और GOARCH पर्यावरण चर सेट करना है।
उदाहरण:
GOOS=windows GOARCH=amd64 go build main.go
यह amd64 आर्किटेक्चर के तहत विंडोज़ के लिए एक निष्पादन योग्य बनाएगा।
गो मॉड थोड़ा देर से आया क्योंकि इसे गो 1.11 के साथ पेश किया गया था, लेकिन यह एक अंतर्निहित निर्भरता प्रबंधन प्रणाली है। इससे पहले, हमें अपनी सभी गो परियोजनाओं को अपनी मशीन पर {$GOPATH} नामक एक समर्पित निर्देशिका में रखना था। हालांकि यह काम कर रहा है, गो मॉड अब हमें अधिक लचीलापन देता है, जो बहुत अच्छा है!
गो में हर चीज़ की तरह, उपयोग बहुत सीधा है।
आप बिल्ड टैग का उपयोग करके सशर्त संकलन जोड़ सकते हैं, लेकिन सबसे दिलचस्प विशेषता, मेरी राय में, यह है कि गो स्वचालित रूप से बाद के निर्माण को गति देने के लिए बिल्ड आउटपुट को कैश करता है (बेशक, यदि आवश्यक हो तो आप कैश को साफ़ कर सकते हैं)।
एंबेडिंग संसाधन
यदि आपके पास स्थिर फ़ाइलें हैं जिन्हें आप अपनी बाइनरी में शामिल करना चाहते हैं, तो आप //go:embed निर्देश का उपयोग कर सकते हैं।
जाति का पता लगाना
जब समानता की बात आती है तो गो अद्भुत है। उनके बीच संचार करने के लिए गोरआउट्स और चैनलों की प्रणाली के साथ, डेवलपर्स सॉफ्टवेयर के कार्यभार को विभिन्न कोर पर आसानी से विभाजित कर सकते हैं। लेकिन चीजों को गड़बड़ाना और "दौड़" बनाना भी आसान है।
एक डेटा रेस तब होती है जब दो गोरोइन एक ही वेरिएबल को समवर्ती रूप से एक्सेस करते हैं और कम से कम एक एक्सेस राइट होता है। विवरण के लिए द गो मेमोरी मॉडल देखें।
गो कंपाइलर आपको उन्हें ढूंढने में मदद कर सकता है!
दौड़ की स्थिति का पता लगाने के लिए दौड़ ध्वज का उपयोग करें:
go build -race main.go
प्रोफ़ाइलिंग और अनुकूलन
गो में मुझे जो मुख्य चीज़ें पसंद हैं उनमें से एक इसका प्रदर्शन है। यह भाषा कम मेहनत में ही ठोस परिणाम देती है। लेकिन यदि आप अतिरिक्त प्रयास करना चाहते हैं, तो गो इकोसिस्टम आपको आपके प्रदर्शन को मापने और आपके कोड को अनुकूलित करने के लिए कुछ वाकई बेहतरीन टूल भी देता है।
मैं विवरण में नहीं जा रहा हूं, लेकिन यदि आप विषय में गहराई से जाना चाहते हैं, तो मैं आपको इस रत्न को पढ़ने के लिए आमंत्रित करता हूं: https://www.practical-go-lessons.com/chap-34-benchmarks
कस्टम बिल्ड मोड
उदाहरण के लिए, कभी-कभी, आप सॉफ़्टवेयर नहीं बल्कि एक प्लगइन या लाइब्रेरी बना रहे होते हैं। गो टीम को आपका साथ मिल गया है। गो में, आप अपने इच्छित परिणाम प्राप्त करने के लिए बिल्डमोड को परिभाषित कर सकते हैं!
जैसा कि आप देख सकते हैं, गो अपने कंपाइलर और इकोसिस्टम में बहुत सारी सुविधाएं प्रदान करता है ताकि डेवलपर्स को गो तकनीक से अधिकतम लाभ मिल सके।
और आज के लिए बस इतना ही। मैं इस सप्ताह टाइपस्क्रिप्ट के लिए निर्माण तकनीकों का प्रदर्शन करने वाला एक और लेख जारी करूंगा, इसलिए यदि आप यह सुनिश्चित करना चाहते हैं कि इसे न चूकें तो सदस्यता लें या अनुसरण करें!
तब तक, कोडिंग का आनंद लें!
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3