group 群组服务
TODO
- 删除service 中所有带 Svc 后缀的方法
- dao 层暴露的方法把 biz 对象作为方法参数, 而不是 db
目录结构
group
├── api
├── build
├── cmd
├── config
├── dao
├── docs
├── logic
│ └── http
├── model
│ ├── biz
│ ├── db
│ └── types
├── server
│ ├── grpc
│ └── http
└── service
api
包含 grpc 的 proto
, *.pb.go
, client
文件
client 提供 rpc 客户端的创建方法, 相当于手动给 grpc 客户端包了一层
build
make build 指令生成的二进制文件保存目录
cmd
项目启动目录
包括资源的初始化, http 和 rpc 服务的启动
config
配置文件描述目录
dao
数据访问层
注入到 service 中, 暴露数据操作方法, 不区分是操作数据库还是操作缓存(比如获得群信息, service 不关心是从数据库中拿还是从缓存中拿).
如有需要,可以与业务逻辑服务分开,单独暴露 rpc 方法, 提供给多个业务服务,类似:
docs
http api swag 描述文件, 由 make swag
生成
可以删去, 以后统一由 gateway 服务管理
logic
使用service
中的各种方法编排业务逻辑, 包含参数校验, 权限判断
model
包含各种用到的结构体与 const 值
biz
service 中一直使用的结构体
db
数据库字段映射(可以移动到 dao 层)
types
http服务的请求与返回(可以不要,因为 http 请求都移动到 gateway 了)
server
http 服务和 grpc 服务的启动路径, 仅绑定参数, 不做任何处理
服务中的各个方法与 logic 中的方法一一对应
service
各种业务方法, 假定传入的参数都是正确,经过验证的, 不进行权限判断