gpt4 book ai didi

protocol-buffers - 只将 .proto Protocol Buffer 文件放在存储库中?

转载 作者:行者123 更新时间:2023-12-04 14:55:44 25 4
gpt4 key购买 nike

我想知道关于源存储库(例如 git)的 Protocol Buffer 的最佳实践是什么:

我是否必须只将 .proto 文件放在存储库中,并让其他使用源代码的人使用 protoc 编译器重新生成类代码?还是同时放置 .proto 文件和 protoc 编译器生成的源代码是最佳实践?

最佳答案

如果可以避免,则永远不要 checkin 生成的代码。

如果您 checkin 生成的代码,您将承担多种风险,例如:

  • 您可能会失去如何正确重新生成该代码的知识。如果它没有作为构建的一部分自动化,那么很容易忘记记录,或者文档是错误的。
  • 您冒着生成的代码与架构不同步的风险。例如,有人可以更改 .proto文件但忘记更新生成的代码。他们的更改实际上不会“生效”,直到其他人稍后出于其他原因重新生成生成的代码——然后突然间他们看到了他们没有预料到的副作用。
  • 您生成的代码可能用于与构建器安装的不同版本的 Protocol Buffer 。在这种情况下,它将无法正常工作,因为必须使用完全相同版本的编译器和运行时库。

  • 如果由于某种原因你绝对必须 checkin 生成的代码,我强烈建议创建一个自动化测试来检查 checkin 的代码是否与 protoc 匹配。如果新鲜运行会生成。 (例如,protobuf 存储库本身包含为 descriptor.proto 生成的代码的 checkin 副本,因为编译 protoc 需要此代码,从而创建循环依赖。但是有一个单元测试可以检查 checkin 的代码匹配 protoc 将生成的内容。)

    关于protocol-buffers - 只将 .proto Protocol Buffer 文件放在存储库中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41186798/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com