golang项目目录结构规范与最佳实践插件库golang-standards/project-layout的使用
Golang项目目录结构规范与最佳实践插件库golang-standards/project-layout的使用
概述
这是Go应用程序项目的基本布局。请注意,它在内容上是基本的,因为它只关注一般布局而不是内部内容。它也是基础性的,因为它非常高级,没有详细说明如何进一步构建项目。
目录结构说明
/cmd
项目的主要应用程序。每个应用程序的目录名称应与您希望拥有的可执行文件名称匹配(例如/cmd/myapp
)。
示例:
/cmd
/myapp
main.go
/internal
私有应用程序和库代码。这是您不希望其他人在其应用程序或库中导入的代码。
示例:
/internal
/app
/myapp
service.go
/pkg
/myprivlib
internal.go
/pkg
外部应用程序可以使用的库代码(例如/pkg/mypubliclib
)。
示例:
/pkg
/mypubliclib
public.go
/vendor
应用程序依赖项(手动管理或使用您喜欢的依赖项管理工具)。
/api
OpenAPI/Swagger规范,JSON模式文件,协议定义文件。
/web
Web应用程序特定组件:静态Web资产,服务器端模板和SPA。
/configs
配置文件模板或默认配置。
/scripts
执行各种构建、安装、分析等操作的脚本。
/build
打包和持续集成。
/deployments
IaaS、PaaS、系统和容器编排部署配置和模板。
/test
额外的外部测试应用程序和测试数据。
/docs
设计和用户文档。
/tools
项目的支持工具。
/examples
您的应用程序和/或公共库的示例。
完整示例项目结构
myproject/
├── cmd/
│ └── myapp/
│ └── main.go
├── internal/
│ ├── app/
│ │ └── myapp/
│ │ └── service.go
│ └── pkg/
│ └── myprivlib/
│ └── internal.go
├── pkg/
│ └── mypubliclib/
│ └── public.go
├── api/
│ └── openapi.yaml
├── configs/
│ └── config.yaml
├── scripts/
│ └── build.sh
├── test/
│ └── integration/
│ └── integration_test.go
├── go.mod
└── go.sum
注意事项
-
对于小型项目或学习Go,这种布局可能过于复杂。可以从简单的
main.go
文件和go.mod
开始。 -
这不是Go核心开发团队定义的官方标准,而是Go生态系统中常见的历史和新兴项目布局模式。
-
使用Go 1.14及以上版本时,建议使用Go Modules。
更多关于golang项目目录结构规范与最佳实践插件库golang-standards/project-layout的使用的实战教程也可以访问 https://www.itying.com/category-94-b0.html
1 回复