我有一个关于大型 Ruby on Rails 应用程序中的模块化的快速问题。
设置:
我正在构建一个存储有关人员信息的核心应用程序。我还有几个“模块”以非常不同的方式使用这些信息。(例如,一个可以显示有关人员的信息,另一个可以找出他们之间的联系和共同点,等等)。
问题:
如何有效地模块化这个应用程序?
可能的答案:
由于模块与核心应用程序(以及彼此)共享模型和视图,因此将它们组合成一个应用程序对我来说是有意义的。但是,随着应用程序的增长,这显然会导致问题。这对我来说建议对控制器和模型进行命名空间“如何在中等大小的 Rails 应用程序中组织控制器? ”或使用引擎“模块化 Rails 应用程序”。
由于模块正在积极开发中,因此在它们上使用 rails 生成器非常有帮助,这似乎使使用引擎变得很痛苦。从 Rails 的角度来看,虽然引擎得到了完全的支持,但在缺乏生成器支持和数据库迁移方面,它们似乎仍然相当老套。有人有成功开发引擎的经验吗?如果您有一个工作应用程序并希望将其移植到插件中(即复制粘贴代码),那么引擎似乎是一个很好的解决方案,但如果您正在积极开发它(更改模型等),这将很困难。
我看到的最后一件事是使用多个应用程序和一个数据库。这种方式似乎是迁移和保持模型笔直等的皇家痛苦。但我想我也会对此有所思考。