我想知道关于源存储库(例如 git)的 Protocol Buffer 的最佳实践是什么:
我是否必须只将 .proto 文件放在存储库中,并让其他使用源代码的人使用 protoc 编译器重新生成类代码?还是同时放置 .proto 文件和 protoc 编译器生成的源代码是最佳实践?
最佳答案
如果可以避免,则永远不要 checkin 生成的代码。
如果您 checkin 生成的代码,您将承担多种风险,例如:
.proto
文件但忘记更新生成的代码。他们的更改实际上不会“生效”,直到其他人稍后出于其他原因重新生成生成的代码——然后突然间他们看到了他们没有预料到的副作用。 如果由于某种原因你绝对必须 checkin 生成的代码,我强烈建议创建一个自动化测试来检查 checkin 的代码是否与
protoc
匹配。如果新鲜运行会生成。 (例如,protobuf 存储库本身包含为 descriptor.proto
生成的代码的 checkin 副本,因为编译 protoc
需要此代码,从而创建循环依赖。但是有一个单元测试可以检查 checkin 的代码匹配 protoc
将生成的内容。)
关于protocol-buffers - 只将 .proto Protocol Buffer 文件放在存储库中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41186798/