打破单片铁路应用程序

时间:2013-09-30 00:52:01

标签: ruby-on-rails soa rails-engines

我有一个带有3个独立'组件'的大型rails应用程序。

一个是静态WWW站点,一个是基于Spree的购物车,一个是基于Instagram API的奖励计划。

目前他们都是一个巨大的Rails 4.0应用程序。随着这个应用程序随着时间的推移而增长,我更难以区分组件。我想模块化应用程序以保持这3个组件分开。

有没有一种首选的方法来实现这种“SOA”架构?或者将应用程序的每个“组件”转换为自己的可安装引擎会更好吗?还是有更好的策略?

我一直在关注Spree的核心,以及他们如何将每个组件作为引擎,并将它们加载到顶层,我认为这可能是最好的路线。

1 个答案:

答案 0 :(得分:1)

我对Ruby或Rails没有任何经验,但根据我的经验,您需要询问/回答以下问题,然后决定如何继续前进。

谁将开发代码库以及谁将维护代码库?

如果只是你戴着所有帽子的人,你可能不希望有实施SOA的开销(Web服务是特定的)。也就是说,你应该在每个组件或模块之间有一个“契约”(不过你引用它们)。这样,您的模块/组件可以独立发展,并且对一个模块/组件进行更改以使逻辑更好,并不一定要求更改其他组件。

如果是你和其他几个开发人员,我仍然会说你可能不想采用WS路由。

如果正在开发和维护这些组件的是不同的团队,那么您将在企业级别处理应用程序,然后您将开始看到SOA的好处(基于WS)。

干杯, ķ