我是github.com的新用户,我正在尝试创建一个包含两部分的移动应用程序:客户端代码和服务器代码。Android 客户端代码将使用 Java 编写,iOS 客户端代码将使用 Swift 编写,Windows Phone 客户端代码将使用 C# 编写。服务器端将用 PHP、HTML、Javascript 和 CSS 编写。
我的问题是:我应该如何构建代码?我应该将服务器代码和客户端代码放在不同的存储库中,还是应该将它们放在同一存储库的不同文件夹中?另外,由于有多个客户端(Android、iOS 和 Windows),我应该将它们放在不同的存储库或不同的文件夹中吗?
我已经知道两者都可以,但我想知道标准程序是什么以及优点/缺点是什么。
这个问题有很多可能的解决方案。saljuama提供的答案是最完整的。
在查看了 github 上的一些项目后,我发现一种方法是为客户端和服务器创建单独的存储库。如果您有多个客户端代码(如我的情况),您可以使用相同的存储库但不同的 makefile。
我在https://github.com/CasparCG找到了这种做事方式。服务器是与客户端不同的存储库。此外,客户端共享相同的 src、lib 和其他文件夹,但每个客户端的构建脚本不同。正如 saljuama 所指出的,当您的客户共享相同的代码库时,此方法很有意义。如果您的客户不共享相同的代码库,请参阅 saljuama 的答案。
这不是唯一可能的方法。你可以用你自己的方式来做。
这个话题相当广泛,可能是基于观点的,但我会尽量保持中立。
根据 12factor 第一原则代码库,每个应用程序都应该有自己的代码库(或存储库)。由于客户端和服务器是不同的应用程序,因此它们不应该共享相同的存储库。
将两者放在同一个存储库中是一个坏主意的原因之一是在使用持续集成和持续交付系统时。由于存储库推送通常会触发这些进程,因此在一侧执行更改将使 CI/CD 服务器在不需要时处理应用程序的两侧。
其余的原因我能想到的,都是基于观点的,所以我就不多说了。
更新:
为了回答您问题的更新,如果不同的客户端具有完全相同的代码库,如果您继续阅读 12 因素应用程序原理、配置和构建,那么您应该使用一个存储库。
| 归档时间: |
|
| 查看次数: |
3017 次 |
| 最近记录: |