项目布局
目录结构
单应用模式
├── Makefile # 项目管理文件
├── README.md # 项目说明文件
├── api # API接口定义,proto源文件及gRPC stub
├── cmd # 项目启动入口文件
├── config # 配置文件统一存放目录
├── internal # 业务目录
│ ├── cache # 基于业务封装的cache
│ ├── handler # http 接口
│ ├── middleware # 业务自定义中间件
│ ├── model # 数据库 model
│ ├── repository # 数据访问层, eg: 数据库,redis, 第三发api等
│ ├── 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
│ ├── cache # 基于业务封装的cache
│ ├── handler # http 接口
│ ├── middleware # 业务自定义中间件
│ ├── model # 数据库 model
│ ├── repository # 数据访问层, eg: 数据库,redis,api等
│ ├── ecode # 业务自定义错误码
│ ├── mock # mock 文件,用于单元测试
│ ├── routers # 业务路由
│ ├── server # http server 和 grpc server
│ └── service # 业务逻辑层
│ ├── post # 同 user
│ ├── order # 同 user
│ ├── payment # 同 user
├── logs # 存放日志的目录
├── main.go # 项目入口文件
├── pkg # 框架核心目录
├── test # 单元测试依赖的配置文件,主要是供docker使用的一些环境配置文件
└── scripts # 存放用于执行各种构建,安装,分析等操作的脚本