diff --git a/README.md b/README.md index 52f6fed..c2ee9c2 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,11 @@ 一个学习项目 +## 简介 + 使用 kitex 框架,实现了 -* rpc 调用(kitex) +* rpc 调用 (kitex) * hertz 作为 facade 层 * 服务注册与发现(consul) * 配置动态加载(viper + consul) @@ -12,4 +14,29 @@ * helm 模板 (manifest 分支) * k8s 部署 * cicd 流水线 -* GitOps 部署 (argocd) +* GitOps 部署(argocd) + +## 开发一个模块的流程 + +1. 编写 idl 文件 +2. Makefile 中,从已有的模块复制一份,修改模块名 +3. 使用 cwgo 工具生成代码(运行刚刚写的 Makefile) +4. 定义数据库 model +5. 创建 cmd/migrate/migrate.go 文件,编写迁移代码(参见 gorm) +6. 运行 cmd/migrate/migrate.go,创建数据库表 +7. 创建 cmd/gorm_gen/gen.go 文件,编写业务 sql(使用注释,参见 gorm gen) +8. 运行 cmd/gorm_gen/gen.go,生成数据库操作代码 +9. 修改 config/config.go,改成自己的配置(viper+consul) +10. 修改 日志配置,改成自己的配置(直接打印到 std) +11. 修改 服务端口,改成一个未被占用的端口(便于在本地测试) +12. 修改 biz/dal/mysql/mysql.go,改成自己的dsn,并初始化 gen 的 Q 对象 +13. 到 biz/service 下完善自己的业务逻辑 +14. 编写 dockerfile + +## 一次部署的流程 + +1. 代码推送到 main 分支 +2. 构建镜像并推送到镜像仓库(cicd,下同) +3. 把镜像 tag 更新到 manifest 仓库中的 values.yaml +4. ArgoCD 自动同步 +5. 部署完成