मैं गो का उपयोग करके एक नई परियोजना पर काम कर रहा हूं, और हम सभी गो के लिए नए हैं। हम मानक गो निर्देशिका संरचना का अनुसरण कर रहे हैं, और सभी कोड के अंतर्गत हैं
$ GOPATH / src / github.com / companyname / ProjectName
जो एक गिट रिपॉजिटरी की जड़ भी है
मानक अनुशंसित पथ लेआउट थोड़ा अजीब लगता है, खासकर अगर हम एक बहु-भाषा परियोजना पर काम कर रहे हैं, उदाहरण के लिए गो आधारित आराम / http बैकएंड, और एचटीएमएल / जावास्क्रिप्ट फ्रंट-एंड। उस स्थिति में मैं शायद अपनी परियोजना संरचना इस तरह देखना चाहूंगा:
/
doc/
src/
server/
main.go
module1/
module.go
client/
index.html
Makefile
लेकिन क्या वास्तव में GOPATH के अंदर कोड रखना आवश्यक है?
एक प्रयास के रूप में मैंने एक छोटा कार्यक्रम बनाया जहां स्रोत कोड GOPATH के बाहर था। मैं आसानी से प्रोजेक्ट को पैकेज में विभाजित कर सकता था, इसलिए main
पैकेज का उपयोग करके फ़ोल्डर foo
में पैकेज को संदर्भित कर सकता था ।foo/
import "./foo"
जहाँ तक मैं देख सकता हूँ, दो चीजें हैं जो मुझे नापसंद हैं:
- अन्य कोड इस कोड को आयात नहीं कर सकते। यह कोई समस्या नहीं है क्योंकि हम विशेष रूप से कंपनी के लिए एक सेवा का निर्माण कर रहे हैं।
- मैं
go install
इसे स्थापित करने के लिए उपयोग नहीं कर सकता । यह कोई समस्या नहीं है। बिल्ड पाइपलाइन उपकरण को स्थापित करता है।
हालाँकि यह बिल्ड सर्वर को अपने कार्यक्षेत्र को GOPATH के अंदर स्थित नहीं होने देता है
क्या ऐसा दृष्टिकोण हतोत्साहित करता है? यदि हां, तो क्यों?
क्या मेरे द्वारा सूचीबद्ध दो की तुलना में अन्य नकारात्मक दुष्प्रभाव हैं?
ध्यान रखें कि यह कंपनी के लिए एक निजी परियोजना है, न कि सार्वजनिक ओपन सोर्स कोड।
GOPATH से वास्तविक परियोजना का परीक्षण करना आकर्षक लगता है, लेकिन जब आप शू चरण पर होते हैं तो नियमों को तोड़ने में सावधानी बरतनी चाहिए