我们开发一个protobuf插件的话,至少需要做哪些事情?
- 确定插件的主要功能是什么?
- 确定功能后,需要设计xxx.proto文件,可能需要对xxx.proto文件设置标志信息,制定语法规则
- 需要设计最终生成xxx.pb.go文件的模板,自研的protobuf插件可以根据模板生成所需要的xxx.pb.go文件内容
- 文件xxx.pb.go内容,可能包括:注释、import部分,package部分,变量部分,方法部分,message部分,等等
- 搞清楚protoc, protoc-gen-go, protoc-gen-xxx之间的关系,
- protoc,可以将xxx.proto文件生成不同语言的代码库文件,如go语言生成的是xxx.pb.go类型的文件
- protoc,默认支持Java,js,Python等语言,不需要用户创建protoc-gen-python之类的二进制文件,用户可以直接使用,如,–python_out ,–java_out,等等
- protoc-gen-go 是go