2016-03-09 185 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

相關問題