2014-09-06 100 views
0

我正在領導一個SaaS應用程序。假設這是通過Rest API提供的Java數據分析系統。我有幾個開發商,和我們使用組織一個saas項目

  • 存儲庫(如混帳,汞,說的到位桶或github上),
  • 的Scrum敏捷流程(例如使用JIRA敏捷,youtrack)
  • 持續集成(例如詹金斯,竹)
  • 行家

我想知道什麼是最好的做法(和優點/缺點)在分裂大項目爲子項目(如果有的話)。

一般來說,我可以看到以下的邏輯模塊:

  • 其餘接口
  • DataAnalytics API(未實施)
  • 排名模塊:模塊1,單詞數,..
  • 分類模塊:模塊1 ,Module2
  • visualization
  • etc

我想讓它成爲一個擁有多個子項目的大型倉庫嗎?但隨後

  • 我需要跟蹤的版本,並
  • 確保CI服務器建立只有相關的子項目當一些承諾(我可能不希望構建並重新測試REST接口時,分類模塊被更新)

或者我想爲每個項目創建一個存儲庫嗎?

任何其他的可能性/我應該考慮的事情?

回答

1

我想讓它成爲一個擁有多個子項目的大型倉庫嗎?

這是經常討論的話題。根據您的問題,您的一些要求可以幫助您確定。

I need to keep track of versions, and 

可以將您的服務進行部署和版本不同,即。您是否可以繼續使用版本x運行服務A,然後使用版本y在服務B上部署修訂,而不更改服務A.如果是這樣,將它們保存在單獨的存儲庫中會有所幫助。

確保CI服務器建立只有當 一些致力於相關的子項目>(我可能不希望構建並重新測試 其餘的接口時,分類模塊更新)

再次,這是沒有將所有內容捆綁到一個存儲庫中的一個原因。您不希望對可視化進行更改以要求重新構建其餘API。所以他們是單獨回購的候選人。這也有助於分組和分散的團隊。

但是,如果代碼庫和團隊規模太小,可能會導致分解爲太多回購的開銷。