Ruby on rails 如何将Rails应用分解为不同的小应用生态系统

Ruby on rails 如何将Rails应用分解为不同的小应用生态系统,ruby-on-rails,ruby-on-rails-3.1,soa,Ruby On Rails,Ruby On Rails 3.1,Soa,我的团队已经在一个单片Rails应用程序中开发了一系列模块供内部使用。模块包括请假请求、员工信息、任务/待办事项等。每个模块都有自己的用途,但以某种方式与员工档案和用户身份验证等公共信息相关联。每个模块都分配了一个开发人员,他们将代码提交到同一个Rails应用程序。目前,维护代码和规模非常困难。现在,我正在进行研究,将应用程序分解为小型分布式应用程序,并使其成为一个生态系统。以下是我正在寻找的概念: 应该有一个主应用程序来维护其他客户端应用程序的视图。更好的是,它充当了一个平台,让其他客户端应

我的团队已经在一个单片Rails应用程序中开发了一系列模块供内部使用。模块包括请假请求、员工信息、任务/待办事项等。每个模块都有自己的用途,但以某种方式与员工档案和用户身份验证等公共信息相关联。每个模块都分配了一个开发人员,他们将代码提交到同一个Rails应用程序。目前,维护代码和规模非常困难。现在,我正在进行研究,将应用程序分解为小型分布式应用程序,并使其成为一个生态系统。以下是我正在寻找的概念:

  • 应该有一个主应用程序来维护其他客户端应用程序的视图。更好的是,它充当了一个平台,让其他客户端应用程序可以插入它。工作人员登录到此主应用程序以访问客户端应用程序
  • 主应用程序应使用AJAX或其他方式(未决定)呈现客户端应用程序的视图
  • 虽然我想分解应用程序,但每个应用程序都应该能够从生态系统中的其他客户端应用程序查询资源/数据,例如员工档案
  • 实际上,我还没有决定每个应用程序的交互方式。给我们安静的思考(未决定)
  • 它应该支持每个开发人员可以独立开发每个应用程序的开发环境。因此,他们需要在自己的git存储库中维护自己的代码。这可能是分解应用程序的首要目的
我正在阅读《RubyonRails面向服务的设计》一书,但他们似乎专注于将一个应用程序分解成不同的小服务,而我希望有不同的小应用程序。只是想知道是否还有其他的方法


抱歉问了这么长的问题,问得太多了。我只是想知道你是否也遇到过同样的情况,是否可以指导我阅读一些文章、社区和书籍,这样我就可以继续我的研究。

啊,重构的乐趣。试图将应用程序构造成逻辑组以便各部分可以解耦,这可能是一个复杂的过程

我强烈建议你们调查一下,而且要提供大量的信息。这允许您构建可以打包为gem的mini-Rails应用程序(也称为引擎)。定制引擎gems被捆绑到Rails应用程序中,提供了一整套可配置的功能(模型、控制器、视图等)


面向服务的体系结构的有用性在很大程度上取决于您推拉的数据类型。这就是说,Rails实际上是为RESTful而设计的,因此,通过这条路线,您可以获得很多实惠

你说“定制引擎gem被捆绑到一个Rails应用程序中,提供了一整套可配置的功能(模型、控制器、视图等)”,但是这些引擎gem可以在物理层单独部署吗?如果是,如何设置?@TheShow Rails的引擎必须在现有Rails应用程序内设置,它们不能独立运行。它们允许将需要Rails功能的特性封装在可重用的gem中。例如,提供论坛的gem将由运行论坛所需的控制器、视图和模型组成。