Contents

关于Go代码生成

目的

Go Kitex提供了自定义模板生成代码,使用起来挺方便的.

有望改造成支持公司内部go代码生成工具

处理要素

cli工具整合

这里推荐2个包,封装了cli和参数解析

基本数据对象定义

提供了文件生成时的数据渲染对象 PackageInfo

模板渲染使用html/template语法

额外参数在context中解析

cli传递参数过多会带来复杂性,需要额外的.json文件数据提供在上下文中解析.

多模板文件定义

通过指定目录加载其下所有模板文件

模板文件格式为.yaml

生成的文件路径也支持变量解析.

其中能独立定义新增代码部分

统一入口

初始化和更新行为都为同一命令,减少处理成本

额外点

  • 多任务并行处理文件生成
  • 跨平台支持