如何在Rails应用程序中实现Modularization?

use*_*988 11 ruby ruby-on-rails modularization

将大型rails应用程序分解为更小的应用程序?

模块化Rails应用程序

构建"大型"Rails应用程序的最佳实践

我在一个大型Ruby on Rails应用程序中有一个关于模块化的快速问题.

建立:

我正在构建一个存储有关人员信息的核心应用程序.我还有几个"模块"以非常不同的方式使用这些信息.(例如,一个人可以显示有关人的信息,另一个人可以找出他们之间的联系和共性等).

问题:

如何有效地模块化这个应用程序?

潜在的答案:

由于模块与核心应用程序(以及彼此)共享模型和视图,因此我将它们组合到一个应用程序中是有意义的.但是,随着应用程序的增长,这显然会导致问题.这对我来说建议命名空间控制器和模型" 如何在中等大型Rails应用程序中组织控制器? "或使用引擎" Modularizing Rails应用程序 ".

由于模块处于主动开发状态,因此在它们上使用轨道发生器非常有用,这似乎使得使用发动机时很痛苦.看起来虽然从Rails的角度来看完全支持引擎,但在缺乏生成器支持和数据库迁移方面,它们似乎仍然相当hacky.有没有人有成功开发引擎的经验?如果你有一个工作的应用程序想要将它移植到一个插件(即复制粘贴代码),似乎引擎将是一个很好的解决方案,但如果你正在积极开发它(更改模型等),这将是困难的.

我看到的最后一件事是使用多个应用程序和一个数据库.这种方式看起来像皇家的痛苦与迁移和保持模型等等.但我想我也会对此有所了解.

yfe*_*lum 0

  • 一个应用程序,一个数据库。
  • 在模块之间共享模型。
  • 为您的控制器和视图命名空间。
  • 测试。