منصوبے کے بارے میں
یہ ریپوزٹری گو ایپلیکیشنز کے لیے تاریخی اور نئے پروجیکٹ لی آؤٹ پیٹرنز کا سیٹ فراہم کرتی ہے۔ یہ کوئر گو ٹیم کی طرف سے تعریف کردہ سرکاری معیار نہیں ہے، بلکہ گو ایکو سسٹم میں مشاہدہ کیے گئے رواج کو دستاویزی بنانے کے لیے ایک کمیونٹی کوشش ہے۔
لی آؤٹ اہم ڈائریکٹریز کی تعریف کرتا ہے:
- /cmd: بنیادی ایپلیکیشنز؛ ہر ذیلی ڈائریکٹری ایک ایکزیکیوٹیبل نام سے مطابقت رکھتی ہے، جس میں /internal اور /pkg سے کوڈ درآمد کرنے والے کم از کم main فنکشنز ہوتے ہیں۔
- /internal: ذاتی ایپلیکیشن اور لائبریری کوڈ جو گو کمپائلر (گو 1.4 سے) کی طرف سے بیرونی درآمدات کو روکنے کے لیے نافذ کیا جاتا ہے۔ کسی بھی سطح پر نیسٹ کیا جا سکتا ہے۔
- /pkg: بیرونی استعمال کے لیے لائبریری کوڈ۔ یہ ظاہر کرتا ہے کہ کوڈ دوسروں کے لیے درآمد کے لیے محفوظ ہے، حالانکہ /internal ذاتی پیکجز کے لیے کمپائلر سے نافذ متبادل ہے۔
- /vendor: گو ماڈیولز (go mod vendor) کے ذریعے منظم ایپلیکیشن انحصارات۔
- /api: OpenAPI/Swagger سپیسز، JSON اسکیما فائلز، پروٹوکول تعریفیں۔
- /web: سٹیٹک ویب اثاثے، سرور سائیڈ ٹیمپلیٹس، SPAs۔
- /configs: کنفیگریشن فائل ٹیمپلیٹس یا ڈیفالٹ کنفیگ۔
- /init: سسٹم 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 hooks، اثاثے، اور ویب سائٹ ڈیٹا کے لیے معاون ڈائریکٹریز۔
README واضح طور پر /src ڈائریکٹری استعمال کرنے سے منع کرتی ہے (جو جا کا رواج ہے) اور چھوٹے پروجیکٹس یا تصوراتی ثبوت کے لیے سادہ شروع کرنے (ایک main.go اور go.mod) کی سفارش کرتی ہے، اور پروجیکٹ بڑھنے کے ساتھ زیادہ ساخت اپنانے کی۔ یہ گو ماڈیولز (گو 1.14 سے پیداوار کے لیے تیار)، gofmt، اور فارمیٹنگ اور لینٹنگ کے لیے staticcheck کی سفارش کرتی ہے۔ README چینی، جاپانی، کوریائی، فرانسیسی، ہسپانوی، روسی، ہندی، بنگالی اور دیگر سمیت 18+ زبانوں میں دستیاب ہے۔
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.