2010-06-25 12 views
1

我正在研究可以逻辑分组为核心引擎和业务领域模块的应用程序。业务领域模块基本上封装了特定于我们客户业务的代码。我们最初使用我们的核心引擎的根轨结构将其分开,并将所有客户代码放在单独的插件中。是否使用Rails插件进行模块化?

但是我们遇到了各种各样的问题,其中大部分可能会放在开发环境中的Rails类重新加载。尽管我们已经设法大量工作,但我们遇到了Rails错误,并且部分卸载类与Rails.cache结合在一起。

我想知道的是,我们是否在滥用Rails插件的预期使用模式?正在打包我们的应用程序的各个方面,因为插件是正确的举措?有没有更好的方法来做到这一点?或者我们应该宁愿战士解决这些剩余的问题?

我们现在正在将插件作为模块在根轨结构中重写,但我必须承认我更喜欢插件迷你应用程序目录结构的优雅。

Brendon McLean。

回答

0

我的大型应用程序包括几个专用于应用程序的插件。我同意插件可以很好地隔离各种功能。

我没有遇到你描述的加载问题,因为我关闭了在dev模式下的动态类重新加载。

为什么不能动态类重新加载?这看起来太慢了。更方便的cntrl-c并在需要时重新启动测试杂种。毕竟,在进行进一步更改之前,我通常针对多个html请求/回复循环运行代码的指定迭代。

您的原始插件架构听起来像是为您解决了几个问题。在更改软件体系结构之前,我首先尝试更改该工具(关闭动态重新加载)。

+0

很高兴知道其他人在生产中成功使用Rails引擎。但我不确定团队是否会容忍关闭动态重新加载(尤其是接近前端的那些)。也许我会再试一次试图解决我们不完整的卸载类问题。 – 2010-06-26 11:04:42

+0

感谢您的回答。我已经做出了让插件/引擎更加高效的方法。新增了config.reload_plugin = true,并将所有内容放在轨道友好的位置。我还为开发创建了一个空缓存,它永远不会缓存任何内容。我认为这解决了我们的插件问题。 – 2010-06-30 13:51:43

相关问题