框架名 | 用途 | 文档 |
---|---|---|
Kitex | 微服务框架 | https://www.cloudwego.io/zh/docs/kitex/getting-started/ |
hertz | web框架 | https://github.com/cloudwego/hertz/blob/develop/README_cn.md |
gin | web框架 | https://gin-gonic.com/zh-cn/docs/ |
gorm | ORM框架 | https://gorm.io/zh_CN/docs/index.html |
go-redis | 中间件 | https://redis.uptrace.dev/ |
Mysql | 数据库 | |
Redis | 缓存 | https://www.redis.com.cn/documentation.html |
MinIO | 高性能对象存储 | http://docs.minio.org.cn/docs/ |
etcd | 服务发现 | https://doczhcn.gitbook.io/etcd/index |
docker-compose | 部署 | https://yeasy.gitbook.io/docker_practice/compose/compose_file |
使用rebase进行分支合并,文档
- 私有变量和临时变量一律使用小驼峰式命名法,形如"homeController",公有变量一律使用大驼峰式命名法,形如:"UseControllers"
- 常量使用全大写,不同单词之间用_分开(大写帕斯卡式命名法)
- 常见缩写保证大小写一致,比如SQL,URL,别出现Sql,Url这种写法
- 包名一律使用小写单数形式
- 包名尽可能简短
- go文件使用帕斯卡式命名法
.
├── cmd // 微服务分层
│ ├── user
│ └── video
├── config // 配置文件
│ ├── app // 我们每个微服务的配置文件
│ └── redis
├── data // docker-compose目录映射用的
│ └── etcd
├── docker-compose.yml
├── go.mod
├── go.sum
├── idl // idl文件位置
│ └── user.proto
├── internal // 内部包
│ └── config
├── log // 日志信息
│ └── redis
├── middleware // 项目中间件
└── README.md
- dal层:进行数据库的基础操作
- rpc层:进行rpc调用
- service层:业务层,编写业务逻辑
- mysql 在云服务器部署
- etcd
docker-compose up -d etcd
cd cmd/user
sh build.sh
sh output/bootstrap.sh
cd cmd/api
go run ./main.go