इस प्रोजेक्ट के बारे में
इस रिपॉजिटरी में Go ऐप्लिकेशनों के लिए कुछ सामान्य इतिहासिक और आधुनिक प्रोजेक्ट लेआउट पैटर्न दिए गए हैं। यह स्पष्ट रूप से कोर Go टीम द्वारा परिभाषित आधिकारिक मानक नहीं है, बल्कि Go इकोसिस्टम में देखी गई परंपराओं को दस्तावेज़ करने के लिए एक सामुदायिक प्रयास है।
लेआउट प्रमुख निर्देशिकाओं को परिभाषित करता है:
- /cmd: मुख्य ऐप्लिकेशन; प्रत्येक सबडायरेक्टरी एक एक्जीक्यूटेबल नाम से मिलकर बना होता है, जिसमें न्यूनतम main फ़ंक्शन होते हैं जो /internal और /pkg से कोड आयात करते हैं।
- /internal: निजी ऐप्लिकेशन और लाइब्रेरी कोड जिसे Go कंपाइलर द्वारा ही (Go 1.4 से) बाहरी आयात से रोकने के लिए लागू किया गया है। किसी भी स्तर पर नेस्ट किया जा सकता है।
- /pkg: बाहरी उपयोग के लिए लाइब्रेरी कोड। यह दर्शाता है कि कोड दूसरों के लिए आयात करने के लिए सुरक्षित है, हालांकि /internal निजी पैकेज के लिए कंपाइलर-लागू विकल्प है।
- /vendor: Go Modules के माध्यम से प्रबंधित ऐप्लिकेशन निर्भरताएं (go mod vendor)।
- /api: OpenAPI/Swagger स्पेस, JSON स्क्रीमा फ़ाइलें, प्रोटोकॉल परिभाषाएं।
- /web: स्टैटिक वेब संपत्तियां, सर्वर-साइड टेम्पलेट, SPAs।
- /configs: कॉन्फ़िगरेशन फ़ाइल टेम्पलेट या डिफ़ॉल्ट कॉन्फ़िग।
- /init: सिस्टम इनिट (systemd, upstart, sysv) और प्रोसेस मैनेजर कॉन्फ़िग।
- /scripts: बिल्ड, इंस्टॉल, विश्लेषण स्क्रिप्ट्स ताकि रूट Makefile सरल रहे।
- /build: पैकेजिंग (AMI, Docker, deb, rpm) और CI कॉन्फ़िग।
- /deployments: IaaS/PaaS, कंटെയनर ऑर्केस्ट्रेशन डेप्लॉयमेंट कॉन्फ़िग (docker-compose, kubernetes/helm, terraform)।
- /test: अतिरिक्त बाहरी टेस्ट ऐप्स और टेस्ट डेटा।
- /docs, /tools, /examples, /third_party, /githooks, /assets, /website: दस्तावेज़ीकरण, टूल, उदाहरण, बाहरी सहायक, git हुक्स, संपत्तियों और वेबसाइट डेटा के लिए सहायक निर्देशिकाएं।
README में स्पष्ट रूप से /src निर्देशिका का उपयोग करने से मना किया गया है (यह Java परंपरा है) और छोटी परियोजनाओं या Proof of Concept के लिए सरल शुरुआत (एक main.go और go.mod) की सलाह दी गई है, और परियोजना बढ़ने पर अधिक संरचना अपनाने की सिफारिश की गई है। README में Go Modules (Go 1.14 से उत्पादन-तैयार), gofmt, और staticcheck को फॉर्मेटिंग और लैंटिंग के लिए अनुशंसित किया गया है। README चीनी, जापानी, कोरियन, फ्रेंच, स्पैनिश, रूसी, हिंदी, बंगाली सहित 18+ भाषाओं में उपलब्ध है।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.