【发布时间】:2012-03-07 18:36:16
【问题描述】:
Breaking a large rails app into smaller apps?
Modularizing Rails applications
Best practice for structuring a 'large' Rails app
我有一个关于大型 Ruby on Rails 应用程序模块化的快速问题。
设置:
我正在构建一个核心应用程序来存储有关人员的信息。我还有几个“模块”以非常不同的方式使用这些信息。 (例如,一个可以显示有关人员的信息,另一个可以找出他们之间的联系和共性等)。
问题:
如何有效地模块化这个应用程序?
可能的答案:
由于模块与核心应用程序(以及彼此)共享模型和视图,因此将它们组合成一个应用程序对我来说是有意义的。但是,随着应用程序的增长,这显然会导致问题。这对我来说建议命名空间控制器和模型“How to organize controller in moderately large Rails application?”或使用引擎“Modularizing Rails applications”。
由于模块正在积极开发中,因此在它们上使用 rails 生成器非常有帮助,这似乎让使用引擎变得很痛苦。从 Rails 的角度来看,虽然引擎得到了完全的支持,但在缺乏生成器支持和数据库迁移方面,它们似乎仍然相当老套。有人有成功开发引擎的经验吗?如果您有一个可以工作的应用程序并希望将其移植到插件中(即复制粘贴代码),那么引擎似乎是一个很好的解决方案,但如果您正在积极开发它(更改模型等),这将很困难。
我看到的最后一件事是使用多个应用程序和一个数据库。这种方式似乎是迁移和保持模型笔直等的皇家痛苦。但我想我也会对此有所思考。
【问题讨论】:
-
链接到 SO 问题的好方法 - 不知道它存在!
-
“我正在构建一个核心应用程序来存储关于 [whatever] 的信息。我还有几个‘模块’以非常不同的方式使用这些信息。”这可以描述几乎所有构建的 Rails 应用程序! :-) 你能更具体地了解你的驱动程序吗?至少告诉我们您认为您将拥有多少个实体。
标签: ruby-on-rails ruby modularization