मैंने कई गो परियोजनाओं का अध्ययन किया है और इसमें काफी भिन्नता है। आप यह बता सकते हैं कि C से कौन आ रहा है और कौन जावा से आ रहा है, पूर्व के रूप में एक main
पैकेज में प्रोजेक्ट रूट डायरेक्टरी में सब कुछ के बारे में है , और बाद वाला सब कुछ एक src
डायरेक्टरी में रखता है । हालांकि न तो इष्टतम है। प्रत्येक के परिणाम हैं क्योंकि वे आयात पथों को प्रभावित करते हैं और दूसरे उन्हें कैसे पुन: उपयोग कर सकते हैं।
सर्वोत्तम परिणाम प्राप्त करने के लिए मैंने निम्नलिखित दृष्टिकोण पर काम किया है।
myproj/
main/
mypack.go
mypack.go
कहाँ mypack.go
है package mypack
और main/mypack.go
है (जाहिर है) package main
।
यदि आपको अतिरिक्त समर्थन फ़ाइलों की आवश्यकता है तो आपके पास दो विकल्प हैं। या तो उन सभी को रूट डायरेक्टरी में रखें, या एक उपनिर्देशिका में निजी समर्थन फाइलें डालें lib
। उदाहरण के लिए
myproj/
main/
mypack.go
myextras/
someextra.go
mypack.go
mysupport.go
या
myproj.org/
lib/
mysupport.go
myextras/
someextra.go
main/
mypack.go
mypage.go
फ़ाइलों को केवल एक lib
निर्देशिका में रखा जाए, यदि वे किसी अन्य परियोजना द्वारा आयात किए जाने का इरादा नहीं रखते हैं। दूसरे शब्दों में, यदि वे निजी सहायता फाइलें हैं। lib
निजी इंटरफेस से अलग सार्वजनिक होने के पीछे यही विचार है।
इस तरह से काम करना आपको myproj.org/mypack
अन्य परियोजनाओं में कोड का पुन: उपयोग करने के लिए एक अच्छा आयात मार्ग देगा । आप का उपयोग करते हैं lib
तो आंतरिक समर्थन फ़ाइलों, एक आयात रास्ता है कि इस बात का संकेत है होगा myproj.org/lib/mysupport
।
परियोजना का निर्माण करते समय main/mypack
, उदाहरण के लिए , उपयोग करें go build main/mypack
। यदि आपके पास एक से अधिक निष्पादन योग्य हैं, तो आप main
अलग प्रोजेक्ट बनाने के बिना भी उन्हें अलग कर सकते हैं । जैसे main/myfoo/myfoo.go
और main/mybar/mybar.go
।