跳到主要内容

生成布局与增量更新

如何识别 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 等一致;