项目结构

/
├── app   
│   ├── common
│   │    ├── adapter
│   │    ├── api
│   │    ├── dao
│   │    ├── service
│   │    ├── model
│   │    ├── ...
│   ├── system
│   │    ├── api
│   │    ├── dao
│   │    ├── service
│   │    ├── model
│   │    ├── router
│   │    ├── ...
│   └── other
├── boot
├── config
├── docker
├── document
├── i18n
├── library
├── packed
├── public
├── plugins
├── router
├── template
├── vendor
├── Dockerfile
├── go.mod
└── main.go
目录/文件名称 说明 描述
app 业务逻辑层 所有的业务逻辑存放目录。
- api 业务接口 接收/解析用户输入参数的入口/接口层。
- model 数据模型 数据管理层,仅用于操作管理数据,如数据库操作。
- service 逻辑封装 业务逻辑封装层,实现特定的业务需求,可供不同的包调用。
boot 初始化包 用于项目初始化参数设置,往往作为main.go中第一个被import的包。
config 配置管理 所有的配置文件存放目录。
docker 镜像文件 Docker镜像相关依赖文件,脚本文件等等。
document 项目文档 Documentation项目文档,如: 设计文档、帮助文档等等。
i18n I18N国际化 I18N国际化配置文件目录。
library 公共库包 公共的功能封装包,往往不包含业务需求实现。
packed 打包目录 将资源文件打包的Go文件存放在这里,boot包初始化时会自动调用。
public 静态目录 仅有该目录下的文件才能对外提供静态服务访问。
plugins 扩展目录 提供一些扩展功能。
router 路由注册 用于路由统一的注册管理。
template 模板文件 MVC模板文件存放的目录。
vendor 第三方包 第三方依赖包存放目录(可选, 未来会被淘汰)。
Dockerfile 镜像描述 云原生时代用于编译生成Docker镜像的描述文件。
go.mod 依赖管理 使用Go Module包管理的依赖描述文件。
main.go 入口文件 程序入口文件。

在实践中,小伙伴们可以根据实际情况增删目录。

注意:如果需要提供静态服务,那么所有静态文件都需要存放到public目录下,仅有该目录下的静态文件才能被外部直接访问。不推荐将程序当前运行目录加入到静态服务中。

项目创建推荐使用GF工具链gf init命令,具体请参考【GF工具链】章节。

*注意:使用gf-cli 版本最好 >= v1.16.4*

文档更新时间: 2021-08-06 17:05   作者:admin