跳到主要内容

项目布局

目录结构

单应用模式

├── Makefile                     # 项目管理文件
├── README.md # 项目说明文件
├── api # API接口定义,proto源文件及gRPC stub
├── cmd #
│   ├── consumer # 消费者服务入口
│   ├── gen # gorm生成数据库脚本
│   └── server # 服务启动入口
├── config # 配置文件统一存放目录
│   ├── dev # 开发环境配置
│   ├── docker # docker环境配置
│   ├── prod # 生成环境配置
│   └── test # 测试环境配置
├── internal # 业务目录
│   ├── dal # 数据访问层
│   │   ├── cache # 基于业务封装的cache
│   │   ├── db # 数据库 model 及 使用 gorm/gen 生成的自定义方法
│   │   ├── init.go # 用于初始化数据访问层的相关配置和资源
│   │   └── rpc # 存放与远程过程调用(RPC)相关的代码
│ ├── handler # http 接口
│ ├── middleware # 业务自定义中间件
│ ├── repository # 数据防腐层,对下和dal层进行交互,对上供service进行调用
│ ├── ecode # 业务自定义错误码
│ ├── mock # mock 文件,用于单元测试
│ ├── routers # 业务路由
│ ├── tasks # 任务定义和处理,包含即时、延迟和定时任务
│ ├── server # http server 和 grpc server
│ └── service # 业务逻辑层
├── main.go # 项目入口文件
├── pkg # 项目公共库目录
├── test # 单元测试依赖的配置文件,主要是供docker使用的一些环境配置文件
└── scripts # 存放用于执行各种构建,安装,分析等操作的脚本

多应用模式

大仓模式:多个应用在一个仓库下

├── Makefile                     # 项目管理文件
├── README.md # 项目说明文件
├── api # grpc客户端和Swagger 文档
├── cmd # 项目启动入口文件
├── config # 配置文件统一存放目录
├── internal # 业务目录
│ ├── user # 内部目录结构同单应用模式下的 internal
│ ... # 说明同单应用模式里的说明
│ ├── post # 同 user
│ ├── order # 同 user
│ ├── payment # 同 user
├── logs # 存放日志的目录
├── main.go # 项目入口文件
├── pkg # 框架核心目录
├── test # 单元测试依赖的配置文件,主要是供docker使用的一些环境配置文件
└── scripts # 存放用于执行各种构建,安装,分析等操作的脚本