我正在开发一个多服务器web应用程序,我想知道ruby/rails中关于模块化的最佳实践是什么。
基本上,我正在寻找从rails应用程序到后台worker应用程序共享ActiveRecord模型的最佳方式(2个不同的heroku实例)。
1)为rails应用程序和后台工作程序共享相同的代码。我们现在有一个大的应用程序,它可以做所有的事情。(优点:它解决了代码共享问题,缺点:它使应用程序臃肿)
2)将ActiveRecord模型捆绑在一个gem中,并在两个应用程序中都需要它(优点:最好的模块化,缺点:启动开发不容易)
3)在两个代码库中复制活动记录模型(缺点:代码重复,在更新数据库时会导致错误)
现在,我来自.Net背景。通常我会将我的模型放在dll中,这样就可以解决共享代码的问题,但我不太确定这里的"ruby方式“是什么。
有没有我应该在ruby方式上寻找架构最佳实践的地方?
发布于 2013-05-30 11:51:28
选项1.它可能会让人觉得臃肿,但Rails在保持干燥的情况下效果最好。你可能会惊讶地发现,它并没有像你想象的那样臃肿。
分离到gem是可行的,但应该仅限于框架或实用程序代码。如果您想让Rails (和您自己)满意,就应该将业务逻辑保留在应用程序中。
发布于 2013-05-30 12:47:20
您可以将共享模型放入Rails Engine中,并将其打包为gem。Rails引擎就像Rails应用程序的一个小型子集,可以在其他Rails应用程序中重用。
https://stackoverflow.com/questions/16826726
复制相似问题