2016-03-09 186 views
1

我是github.com的新用户,我试图创建一个包含两部分的客户端代码和服务器代码的移动应用程序。客户端代码将使用Android for Java,Swift for iOS和C#for Windows Phone编写。服务器端将用PHP,HTML,Javascript和CSS编写。文件夹vs github中的存储库

我的问题是:我应该如何构造代码?我应该将服务器代码和客户端代码放在不同的存储库中,还是应该将它们放在同一个存储库中的不同文件夹中?另外,因为有多个客户端(Android,iOS和Windows),我应该将它们放在不同的存储库或不同的文件夹中吗?

我已经知道任何一个都可以完成,但我想知道标准程序是什么以及优点/缺点。


这个问题有很多可能的解决方案。 saljuama提供的答案是最完整的。

看过github上的一些项目后,我发现一种方法是为客户端和服务器创建单独的存储库。如果你有多个客户端代码(就像我的情况一样),你可以使用相同的存储库,但是使用不同的makefile。

我发现这样做,让在https://github.com/CasparCGserver是一个不同的库比client。此外,客户端共享相同的src,lib和其他文件夹,但每个文件夹的build scripts不同。正如Saljuama指出的,当您的客户共享相同的代码库时,这种方法是有意义的。如果您的客户不共享相同的代码库,请参阅saljuama的答案。

这不是唯一可能的方法。你可以用你自己的方式做到这一点。

回答

1

该主题非常广泛,可能基于观点,但我会尽量保持中立。

根据12factor的第一个原则codebase,每个应用程序应该有自己的代码库(或库)。由于客户端和服务器是不同的应用程序,他们不应该共享相同的回购。

为什么在同一个存储库中同时存在这个问题的一个原因是使用连续集成和连续传送系统。由于存储库推送通常会触发这些进程,因此在其中一方执行更改会使CI/CD服务器在不需要时处理应用程序的两端。

我能想到的其他原因都可以归类为意见,所以我不会说出来。


更新

要回答你的问题的更新,如果不同的客户端有相同的代码库,如果您继续阅读关于12个因子的应用原则,configurationbuilds,那么一个回购是你应该使用的。

+0

谢谢!正是我在找什么。 –

+0

如果我理解正确,这也意味着每个客户端(Android,iOS和Windows)应该位于不同的存储库中? –

+0

是的,保持每个客户自己的回购是有意义的 – saljuama

相关问题