生成布局与增量更新
如何识别 hz 生成目录?
article-api/
├─ idl/article.thrift
├─ biz/
│ ├─ handler/article/
│ ├─ model/article/
│ └─ router/article/
├─ router_gen.go
├─ router.go
├─ main.go
└─ go.mod
biz/model: IDL 生成的请求与响应模型;biz/router: 生成的路由注册;biz/handler: Handler 骨架与用户实现的交界;router_gen.go: 汇总生成路由和自定义注册;router.go承载用户自定义路由;main.go: Engine 组装和进程入口;
如何增量更新生成代码?
hz update -idl idl/article.thrift
git diff -- biz router.go
go test ./...
hz new: 创建新项目骨架;hz update: 契约变化后更新现有项目;- diff 审查: 生成代码也必须审查,特别是删除、重命名和路由变化;
- 可重复性: 固定工具版本和参数;
hz update不记住new的自定义目录,必须保持 model_dir、handler_dir 等一致;