|
1 | 1 |
|
| 2 | +## نمای کلی |
| 3 | + |
2 | 4 | این متن یک طرح اساسی برای پروژههای برنامهنویسی به زبان Go است. توجه داشته باشید که این طرح از نظر محتوا ساده است، زیرا فقط روی layout کلی تمرکز دارد و نه آنچه در داخل آن قرار دارد. همچنین ساده است هر چند که از نظر محتوی پیشرفته است ولی به جزئیات زیادی در مورد نحوه ساختاردهی بیشتر پروژه شما نمیپردازد. برای مثال، سعی نمیکند ساختار پروژهای را با چیزی مانند Clean Architecture پوشش دهد.
|
3 | 5 |
|
4 | 6 | این یک `استاندارد رسمی تعریف شده توسط تیم توسعه اصلی Go نیست`. این مجموعهای از الگوهای layout پروژههای رایج با سابقه و نوظهور در اکوسیستم Go است. برخی از این الگوها از بقیه محبوبتر هستند. همچنین دارای تعدادی بهبود کوچک همراه با چندین دایرکتوری پشتیبانی مشترک در هر برنامه واقعی به اندازه کافی بزرگ است. توجه داشته باشید که تیم اصلی Go مجموعه خوبی از دستورالعملهای عمومی در مورد ساختاردهی پروژههای Go و معنای آن برای پروژه شما هنگام وارد شدن و نصب آن ارائه میدهد. برای اطلاعات بیشتر، به صفحه [`Organizing a Go module`](https://go.dev/doc/modules/layout) در اسناد رسمی Go مراجعه کنید. این صفحه شامل الگوهای دایرکتوری داخلی و cmd (که در زیر توضیح داده شده است) و سایر اطلاعات مفید است.
|
|
62 | 64 |
|
63 | 65 | **ریشههای دایرکتوری pkg:** کد منبع قدیمی Go برای بستههای خود از pkg استفاده میکرد و سپس پروژههای مختلف Go در جامعه شروع به کپی کردن این الگو کردند (برای درک بهتر به [این](https://twitter.com/bradfitz/status/1039512487538970624) توییت Brad Fitzpatrick مراجعه کنید).
|
64 | 66 |
|
65 |
| -** /vendor** |
| 67 | + |
| 68 | +### /vendor |
| 69 | + |
66 | 70 |
|
67 | 71 | وابستگیهای برنامه (بهصورت دستی یا توسط ابزار مدیریت وابستگی مورد علاقه شما مانند ویژگی جدید [`Go Modules`](https://go.dev/wiki/Modules)داخلی مدیریت میشود). دستور `go mod vendor` دایرکتوری `vendor/` را برای شما ایجاد میکند. توجه داشته باشید که اگر از Go 1.14 استفاده نمیکنید که به صورت پیشفرض فعال است، ممکن است نیاز به اضافه کردن پرچم `-mod=vendor` به دستور go build خود داشته باشید.
|
68 | 72 |
|
@@ -158,19 +162,24 @@ Git hooks.
|
158 | 162 |
|
159 | 163 | ## Badges
|
160 | 164 |
|
161 |
| -[Go Report Card](https://goreportcard.com/) |
| 165 | + |
| 166 | + [Go Report Card](https://goreportcard.com/) |
162 | 167 | کد شما را با gofmt، go vet، gocyclo، golint، ineffassign، مجوز و غلط املایی اسکن می کند. مرجع پروژه خود را جایگزین github.com/golang-standards/project-layout کنید.
|
| 168 | + |
163 | 169 | [](https://goreportcard.com/report/github.com/golang-standards/project-layout)
|
164 | 170 |
|
165 |
| -~~[GoDoc](http://godoc.org/)~~ |
| 171 | + ~~[GoDoc](http://godoc.org/)~~ |
166 | 172 | ~~این نسخه آنلاین اسناد تولید شده GoDoc شما را ارائه میدهد. link را تغییر دهید تا به پروژه شما اشاره کند.~~
|
| 173 | + |
167 | 174 | [](http://godoc.org/github.com/golang-standards/project-layout)
|
168 | 175 |
|
169 |
| -[Pkg.go.dev](https://pkg.go.dev/) |
170 |
| -Pkg.go.dev مقصد جدیدی برای شناسایی و مستندات Go است. میتوانید با استفاده از [badge generation tool](https://pkg.go.dev/badge)آن را ایجاد کنید. |
| 176 | + [Pkg.go.dev](https://pkg.go.dev/) |
| 177 | + Pkg.go.dev مقصد جدیدی برای شناسایی و مستندات Go است. میتوانید با استفاده از [badge generation tool](https://pkg.go.dev/badge)آن را ایجاد کنید. |
| 178 | + |
171 | 179 | [](https://pkg.go.dev/github.com/golang-standards/project-layout)
|
172 | 180 |
|
173 |
| -[](https://github.com/golang-standards/project-layout/releases/latest) |
| 181 | +در مورد Release - آخرین شماره انتشار پروژه شما را نشان می دهد. لینک github را تغییر دهید تا به پروژه شما اشاره کند. |
| 182 | + |
174 | 183 |
|
175 | 184 | ## نکتهها
|
176 | 185 |
|
|
0 commit comments