-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Labels
enhancementNew feature or requestNew feature or request
Description
以gorpc create代码生成为例,过程中涉及到了:
命令行参数的解析;done,不需要每次PreRunE、RunE之前显示cmd.ParseFlags(...), cobra框架里面已经做了pb文件的解析;done,依然通过jhump/protoreflect工作目录的准备;todo,这个要看下--output有没有什么不安全的地方代码生成;todo,代码模板再进一步简化下protoc生成;done,这个没什么要更新的依赖的pb文件的protoc生成;todo,由于语言相关,依赖对应的插件,这里要通过插件形式来实现各个语言后置的一些特殊逻辑;各个扩展项如validate、swagger的一些代码生成逻辑`后续如何扩展?done, using--plugins=validator+swaggerinstead of--swagger --validator
按照最初我的设计:
- 这个工具是语言无关的,各个语言相关的特殊逻辑,应该通过各自的模板来解决
实际情况是,部分同学对pb细节、gotemplate掌握的不深入,只知道在代码里面堆砌代码来解决,代码中侵入了各个语言特有的逻辑; - 这个工具应该支持一些灵活的脚本,如自定义的mv、copy支持,允许代码生成后执行一些简单的处理,避免侵入工具代码中
这部分,对应的同学一直拖,拖到现在也没有实现,sad - 后续如何扩展插件,原先的设计中确实考虑不太周到,需要提供一个更好的方式来支持扩展,如针对swagger.proto的处理,能否不通过侵入代码的形式来支持到,肯定是可以的。
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request