如果我的主应用程序文件中有大量需求:
require 'a'
require 'b'
require 'c'
require 'd'
require 'e'
require 'f'
require 'g'
require 'h'
require 'i'
require 'j'
将所有这些需求放入条带并将它们放在一个单独的文件中,只需要满足所有要求 - 让我们称之为'all_requires.rb
',这是不好的做法 - 所以我可以说:< / p>
require 'all_requires'
我从未在其他人的代码中看到这种方法,所以也许有原因?
答案 0 :(得分:6)
它本身并没有什么问题,但在Ruby中通常似乎并没有带来很多好处。它隐藏了手头的文件所依赖的内容,只是添加了另一个间接层。对于条件要求,它也不能很好地发挥作用。这样做更常见:
DEPENDENCIES = %w(a b c d e f g h i j k)
DEPENDENCIES.each {|f| require f}
这样你就可以避开大量require
行,但仍保持本地化和声明性。
答案 1 :(得分:2)
明确要求所有文件的主要原因就是 - 显式通常是好的。这样,读取您的代码的其他人(或者您,几个月后)将更容易找到正在发生的事情。
如果您的要求在其他文件中,则很难知道事情的来源。
答案 2 :(得分:1)
如果您通常需要多个文件中的所有10个文件,那么是完全合理的。
您正在进行一次额外的文件访问并以这种方式解析一个额外的文件,但担心这是微优化。如果它使您的代码更清晰或更具可读性,那就去吧。通过不从磁盘读取一个文件,这比任何感知的保存周期都重要得多。
如果您使用操作码缓存(APC,eAccelerator等),那么即使理论上的差异也会消失,因为您正在进行无条件的包含。