require 应该始终位于代码顶部(Ruby)吗?

Jim*_*mno 2 ruby performance require

我看到很多 Ruby 程序员把代码放在require第一行,我想,他们这样做是有充分理由的,而不是编写可读的代码!特别是当他们使用多个...

现在我知道需要更多的文件和库会给内存/程序带来更多的负载,但是是否应该只在需要的时间/地点之前需要一些东西?或者在程序中将 require 放在更早的位置是否会在长代码中以某种方式带来好处/坏处?或者这取决于!

例如

require 'open-uri'
require 'rake'
require 'logic.rb'
code 
code...
code..........
Run Code Online (Sandbox Code Playgroud)

或者

code
require 'open-uri'
require 'rake'
code...
require 'logic.rb'
code..........
Run Code Online (Sandbox Code Playgroud)

tad*_*man 8

将它们放在顶部可以非常清楚地显示任何给定文件具有哪些依赖项,尽管有时您可能希望将某些内容推迟到稍后加载。

例如:

  • 目前尚不清楚是否会使用该导入,而且这种依赖性很重,可能会不必要地减慢程序速度。
  • 目前尚不清楚是否可以使用该导入,因为它可能是特定于操作系统或平台的,并且在不运行某些测试的情况下加载它会导致问题。
  • 有多种相互排斥的依赖项,必须选择并加载正确的依赖项,这通常取决于环境或配置详细信息。

通常最好将它们全部放在那里以便于检查。在代码深处寻找“令人惊讶”的需求从来都不是一件有趣的事情。

如果它们以一致的方式明确表述,那么很容易检查是否可以删除不再需要的特定依赖项。如果您将这些隐藏在代码中,那么您将很难做到这一点,并且会拒绝删除依赖项。时间一长,就会Gemfile积累很多垃圾!