miniblog 简洁架构开发流程梳理
- 目录结构梳理及项目初始化
- 构建设置(通过 cobra 对项目进行构建配置)
- 项目 makefile,make-rules 文件搭建,需要包含基本构建,测试,清理构建物等基本功能
- 构建二进制需要注意添加版本号,可以在程序运行时有效捕捉到异常发生在代码的哪个版本,从而定位错误
- 配置文件(项目集成 viper 对配置文件读取并使用)
- 简洁架构中二进制的配置项放在
cmd/apiserver[二进制包]/app/options/options.go中 options.go中需要至少包含这些功能:- 配置文件的结构体
- 默认配置项
- 配置方式,配置方式需要支持命令行配置和配置文件配置两种方式,注意
NewCommand的时候返回之前需要将选项绑定到命令标志,如:opts.AddFlags(cmd.PersistentFlags()) - 配置项校验功能
- 简洁架构中二进制的配置项放在
- 应用启动代码和业务代码需分离,后者变更比较频繁
- 类似项目构建,配置文件,日志配置之类的都需抽离到相关目录,因为这些基本在定下来之后基本不会变了
- 而业务代码,需要放在指定的
pkg目录下,这些变更频繁
- 项目的版本号和日志打印功能
- http 服务器实现(by gin) & 中间件实现以及一些注意事项
- 优雅关停(http 服务和 grpc 服务的优雅关停,避免中断正在处理的请求或 db 数据不一致)
- 错误返回定制
- 通过简洁架构实现项目(handler -> biz -> store)
- store
- 创建数据库和数据库表;
- 根据数据库表生成 Model 文件;
- 修改生成的 Go 代码。
- gorm 钩子使用
- store 层的业务代码开发
- biz 层开发
- handler 开发并注册路由
- 身份认证和鉴权
- 单元测试编写
- 项目整体测试
- store
miniblog 简洁架构开发流程梳理
https://yangfanbin.cn/代码笔记/miniblog 简洁架构开发流程梳理/