如何处理多团队跨语言.proto 管理

查看 108|回复 11
作者:litchinn   
现在项目中使用 protobuf 作为消息体,多个团队开发多个服务,有些是 go 有些是 java ,目前的.proto 文件在每个仓库里都有一份,维护起来很痛苦,有没有什么好的方案呢,github 的 submodules 能解决这个问题吗
FabricPath   
对新增的 API 或者字段没有需求的情况下,为啥要更新 proto...
如果整个经常需要所有引用方更新 proto ,那先问一下改 proto 的人为什么不能做到前后兼容。
所以,直接复制一份也没啥问题,你现在的痛苦不是“复制 proto”带来的
erquren   
.proto 应该是一个单独的仓库啊,大家拉了生成自己语言的代码
dylanqqt   
每个服务应该要有一个独立的 proto 仓库。比如服务 1 有一个 proto1 的仓库,专门存放生成好的 pb 代码,如果服务 2 需要调用服务 1 就 go get proto1 就可以了。这样子所有的服务业务仓库都不会有 proto 代码。
litchinn
OP
  
@FabricPath 开发阶段我觉得哪怕觉得某个字段名字不合适改个名字这种都很正常吧,release 后才会考虑版本前后兼容问题
litchinn
OP
  
@erquren 现在是想准备用一个仓库放,但是还得拉下来挪进项目里再生成代码感觉有点麻烦,总之就是既想使用便捷又想更改便捷
litchinn
OP
  
@dylanqqt go 的好像可以这样,java 的应该也可以作为外部依赖引用进来,但是不知道有啥办法能同时兼容这俩语言乃至 python
dylanqqt   
@litchinn 如果不能兼容的话可以写个脚本推到 git 的时候同时推到 java 的依赖库,go 就直接 go get java 就从依赖库引用
aihimmel   
git submodule
tuolee666   
你的头像也是用的 notionavatarmaker 生成嘛?哈哈哈
您需要登录后才可以回帖 登录 | 立即注册

返回顶部