1

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

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

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

有没有首选的方法来执行这种“SOA”类型的架构?还是将应用程序的每个“组件”变成自己的可安装引擎会更好?还是有更好的策略?

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

4

1 回答 1

1

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

谁将开发代码库,谁将维护它?

如果只有您戴上所有帽子,您可能不想承担实施 SOA(具体来说是 Web 服务)的开销。也就是说,您绝对应该在每个组件或模块之间建立一个“合同”(无论您如何引用它们)。这样,您的模块/组件可以独立发展,并且对其中一个进行更改以使逻辑更好并不一定要求对其他组件进行更改。

如果是您和其他几个开发人员,我仍然会说您可能还不想走 WS 路线。

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

干杯,K

于 2013-10-13T04:28:56.027 回答