![]() |
1
23
如果您关心性能,那么您应该在需要它们的上下文中要求它们,这样,如果您的代码的那部分没有被执行,那么库就不会被加载。任何后续呼叫
虽然这在资源方面更有效,但它会使确定应用程序的依赖关系变得非常困难。预先声明这些可以让维护软件的其他人明白。记住,当你忘记了申请的一些细节时,“其他人”总是包括你未来的自己。
bundler
因为你可以让你的宝石更正式和真实的申报
|
![]() |
2
5
如果您考虑vanillarby,那么“require”主要用于第一行,因为这样您就可以确定您可以访问所需的内容,并且更容易找到和读取所需的依赖关系。 有一些情况下,您只希望在方法中加载gem,因为脚本不需要这样做(例如,可选的可视化)。 对于Rails,我相信这取决于你想做什么。 如果您使用Bundler,您可以假设gem是“必需的”(当然,您可以使用:require选项覆盖必需的内容)。 如果您想在服务器启动时自动加载某些内容(如验证程序或窗体生成器),那么您应该看看如何使用配置(自动加载路径和紧急加载路径)。
如果您在多线程环境中工作,您可能会担心,因为这会带来一些问题。然后必须确保在运行线程之前加载了所有内容。(类似类常量的东西被加载了,但是方法还没有,有一篇很好的文章,但是我再也找不到了)。 您可能还想尝试{Module,Kernel}.autoload,Rails广泛地使用它来加载访问时所需的内容(但它看起来相当难看)。 这是一个简单的示例(不适用于嵌套类)。
关于性能,调用require是相对昂贵的,因此如果您知道要使用它,请尽可能只调用一次。但是,要管理项目中的复杂依赖项,可能需要相对文件。那么
最后,对于一个项目,我建议在lib/的主文件中使用all,并使用一些
另一个解决方案是在主文件中定义这些常量,它还可以让您了解结构。 |
![]() |
cluster1 · 采取独立的新行动的好处是什么? 8 月前 |
|
Robert · 使用JSON或哈希时,将NULL替换为NIL 8 月前 |
![]() |
Fred Willmore · Rails控制器不呈现任何模板 1 年前 |
![]() |
Diogo Amaral · 实现API请求的正确方式 1 年前 |
![]() |
Meknassih · 在控制器方法中分配给模型没有任何作用 1 年前 |
![]() |
Michael Ding · Rails上的默认会话到期问题 1 年前 |
|
Flávio · 基于另外两个生成数组 1 年前 |