为多个平台创建 proto 文件夹的最佳方式
Best way to have proto folder for multiple platform
为后端、iOS、Android 和 Web 等多个平台保存 proto 文件夹的最佳做法是什么?
我想出了 3 个想法。哪一个最好?你知道比他们更好的想法吗?
1st:我是否应该拥有包含 proto
文件夹在内的 1 个存储库?
2nd:我应该像 proto repo、iOS repo、backend repo 等一样拆分所有内容,并将 proto 文件夹共享为 git 子模块吗?
3rd: 我应该为所有的 repos 创建独立的 proto 文件夹吗?
我的建议是您为原型文件使用一个存储库,并使用 git 子模块之类的东西将其包含在其他存储库中。原因如下:
Proto 文件通常比您的代码更改得更少,因此使用 git 子模块时的开销很低(不需要一直 git 拉取)。
它可以防止拥有不同版本的 proto 文件,当字段标签不匹配时可能会导致意外行为。
模块化。如果稍后您决定使用相同的原型文件做另一个项目(例如:桌面应用程序),您只需添加一个子模块,而不是复制所有内容并对您的项目进行特定更改。
此外,proto 文件旨在通过能够为特定语言添加选项来跨不同语言共享。如果您在 iOS 项目中使用此子模块并为 Swift 生成代码,则只会考虑 Swift 的选项,对于 Kotlin/Java 和 JS 也是如此。
尽管我认为这是管理原型文件的最安全方式,但这只是我的建议。不同的用例可能需要不同的架构。
为后端、iOS、Android 和 Web 等多个平台保存 proto 文件夹的最佳做法是什么? 我想出了 3 个想法。哪一个最好?你知道比他们更好的想法吗?
1st:我是否应该拥有包含 proto
文件夹在内的 1 个存储库?
2nd:我应该像 proto repo、iOS repo、backend repo 等一样拆分所有内容,并将 proto 文件夹共享为 git 子模块吗?
3rd: 我应该为所有的 repos 创建独立的 proto 文件夹吗?
我的建议是您为原型文件使用一个存储库,并使用 git 子模块之类的东西将其包含在其他存储库中。原因如下:
Proto 文件通常比您的代码更改得更少,因此使用 git 子模块时的开销很低(不需要一直 git 拉取)。
它可以防止拥有不同版本的 proto 文件,当字段标签不匹配时可能会导致意外行为。
模块化。如果稍后您决定使用相同的原型文件做另一个项目(例如:桌面应用程序),您只需添加一个子模块,而不是复制所有内容并对您的项目进行特定更改。
此外,proto 文件旨在通过能够为特定语言添加选项来跨不同语言共享。如果您在 iOS 项目中使用此子模块并为 Swift 生成代码,则只会考虑 Swift 的选项,对于 Kotlin/Java 和 JS 也是如此。
尽管我认为这是管理原型文件的最安全方式,但这只是我的建议。不同的用例可能需要不同的架构。