【问题标题】:bad practice to strip out all require statements into a separate file?将所有要求语句剥离到单独的文件中的不良做法?
【发布时间】:2010-11-27 08:54:49
【问题描述】:

如果我的主应用文件中有一大堆需求:

require 'a'
require 'b'
require 'c'
require 'd'
require 'e'
require 'f'
require 'g'
require 'h'
require 'i'
require 'j'

将所有这些要求都去掉并放在一个单独的文件中来满足所有要求是不好的做法 - 让我们称之为'all_requires.rb' - 所以我可以说:

require 'all_requires'

我从未在其他人的代码中看到过这种方法,所以也许是有原因的?

【问题讨论】:

    标签: ruby require


    【解决方案1】:

    它本身并没有什么问题,但在 Ruby 中似乎并没有太多好处。它隐藏了手头文件所依赖的内容,只是增加了另一层间接性。对于条件要求,它也不能很好地工作。更常见的是:

    DEPENDENCIES = %w(a b c d e f g h i j k)
    DEPENDENCIES.each {|f| require f}
    

    这样您可以避免大量的require 行,但仍保持本地化和声明性。

    【讨论】:

    • 这是一个优雅的解决方案。谢谢。
    【解决方案2】:

    明确要求所有文件的主要原因就是——通常是明确的。这样,阅读您的代码的其他人(或几个月后的您)将更容易发现发生了什么。

    如果您的需求位于其他文件中,则可能很难知道内容来自何处。

    【讨论】:

      【解决方案3】:

      如果您通常需要多个文件中的所有 10 个文件,那么是的,这非常有意义。

      您正在执行一个额外的文件访问并以这种方式解析一个额外的文件,但要担心这实际上是微优化。如果它使您的代码更清晰或更具可读性,那就去吧。这比不从磁盘读取一个文件所节省的周期要重要得多。

      如果您使用操作码缓存(APC、eAccelerator 等),由于您正在执行无条件包含,因此即使理论上的差异也几乎消失了。

      【讨论】:

      • 不在多个文件中,没有。就在一个。但是看到所有这些都在我工作的主文件的顶部,我的眼睛很痛。
      猜你喜欢
      • 1970-01-01
      • 2017-02-12
      • 2012-01-10
      • 2016-07-05
      • 2021-10-13
      • 1970-01-01
      • 1970-01-01
      • 2017-03-14
      • 2015-02-03
      相关资源
      最近更新 更多