我想在由多个服务组成的系统中使用gRPC(每个服务都在自己的存储库中),我想知道在Git中进行版本控制的方法:
到目前为止,我一直在考虑这样的方法:
我对gRPC没有太多经验,我很难分辨其中一个是否比其他更好/更差。我可以看到一些优点和缺点(如良好的IDE集成,不需要生成代码的应用程序等)但我想知道一些"大"潜在问题?哪种方法是"最佳实践"?
答案 0 :(得分:2)
一般最佳做法是将生成的文件保留在存储库之外,并始终在构建时自动生成它们。例如,在编译Java程序时,不要将任何生成的.jar
文件添加到源代码管理中;这是多余的,并要求在路上头痛。 protobuf文件也是如此。
可以想象,有用的将生成的文件保存在源代码控制中的场景(例如,作为单元测试的黄金文件),但这些是特殊情况,而不是一般情况下经验法则,可能需要更复杂的机器来确保生成的内容是最新的。
请注意,这与分发从.proto
文件生成的源略有不同。并非您的代码的每个用户都希望系统能够从源代码重建。通过类似的类比,您不一定将Java项目分发为原始代码,而是分发为.jar
个文件。