关于Go代码生成
Contents
目的
Go Kitex提供了自定义模板生成代码,使用起来挺方便的.
有望改造成支持公司内部go代码生成工具
处理要素
cli工具整合
这里推荐2个包,封装了cli和参数解析
基本数据对象定义
提供了文件生成时的数据渲染对象 PackageInfo
模板渲染使用html/template
语法
额外参数在context中解析
cli传递参数过多会带来复杂性,需要额外的.json
文件数据提供在上下文中解析.
多模板文件定义
通过指定目录加载其下所有模板文件
模板文件格式为.yaml
生成的文件路径也支持变量解析.
其中能独立定义新增代码部分
统一入口
初始化和更新行为都为同一命令,减少处理成本
额外点
- 多任务并行处理文件生成
- 跨平台支持