2013-09-30 70 views
1

我有一個大的導軌應用程序,帶有3個獨立的「組件」。分解單片導軌應用程序

一個是基本上靜態的WWW網站,一個是基於Spree的購物車,另一個是基於Instagram API的獎勵計劃。

目前他們都是一個巨大的Rails 4.0應用程序。隨着這個應用程序隨着時間的推移而增長,我很難區分組件。我想模塊化應用程序以保持這三個組件分離。

有沒有一種首選的方法來實現這種「SOA」類架構?或者將應用程序的每個「組件」轉換爲它們自己的可掛載引擎會更好?還是有更好的策略?

我一直在尋找Spree的核心,以及它們如何將每個組件作爲引擎加載,並將它們加載到頂層,我認爲這可能是最佳路線。

回答

1

我對Ruby或Rails沒有任何經驗,但根據我的經驗,您需要問/回答下面的問題,然後決定如何繼續前進。

誰將會開發代碼庫以及誰將會維護它?

如果只是你戴着所有的帽子,你可能不希望有實施SOA(Web服務是特定的)的開銷。也就是說,你應該在每個組件或模塊之間有一個'契約'(不過你可以參考它們)。這樣,您的模塊/組件可以獨立演變,並且爲了更好地實現邏輯而進行的更改不一定要求更改其他組件。

如果是你和其他一些開發者,我仍然會說你可能不想採用WS路線。

如果它正在開發和維護這些部件不同的球隊,那麼你正在服用約在企業級應用程序,然後你將開始看到SOA的好處(基於WS)。

乾杯, K