【问题标题】:Ruby on Rails style guidelines, parentheses around method parameters [closed]Ruby on Rails 样式指南,方法参数周围的括号 [关闭]
【发布时间】:2013-06-19 17:12:10
【问题描述】:

以下 ruby​​ 样式指南 (https://github.com/bbatsov/ruby-style-guide) 声明如下:

  • 对于作为内部 DSL 一部分的方法(例如 Rake、Rails、RSpec)、在 Ruby 中具有“关键字”状态的方法(例如 attr_reader、puts)和属性访问方法,请省略括号。在所有其他方法调用的参数周围使用括号。

我经历过关于 Rails 内部 DSL 的组成部分的争论。有人可以回答什么方法是 Rails 内部 DSL 的一部分吗?是否包含link_toI18n.t 之类的方法?哪些方法不是 Rails 内部 DSL 的一部分?

【问题讨论】:

    标签: ruby-on-rails ruby coding-style


    【解决方案1】:

    您引用的指南可能对此含糊不清。它没有定义“内部 DSL”的含义。那么应该如何解决呢?

    首先,我想说的是,在这种情况下,保持一致比选择哪个答案更重要。

    我想说,让我们看看 link_to “应该”是否有括号(同样,不是说只有一个正确答案)。可以进行更系统的研究,但我浏览了一些东西:

    • Rails 指南在 *link_to* 中使用括号,至少不是我查看的部分(例如,参见 http://guides.rubyonrails.org/layouts_and_rendering.html
    • 我浏览了 github 上 thoughtbotpivotal 的几个项目。我从每个项目中随机选择了一个 Rails 项目,然后在该存储库中搜索 *link_to*。 Thoughtbot 项目是 100% 没有括号的。关键是没有括号的 14 比 1。

    因此,对于这些高度轶事的“数据”,我会说没有括号。也许这意味着 *link_to* 是“内部 DSL”的一部分。如果是这样,那么至少您在视图中使用的内置方法(路径/URL 帮助程序、表单帮助程序等)可能也应该被考虑。

    【讨论】:

      【解决方案2】:

      我阅读的一条我喜欢的指南建议,如果方法简单或清晰,可以省略括号,但如果读者或编译器无法轻松识别参数或参数分组,则使用它。省略的原因是减少混乱并提高可读性,但不以失去清晰度为代价。

      【讨论】:

        【解决方案3】:

        注意样式指南纯粹是意见,例如,对于您提到的link_to 方法,我认为包含括号更清晰,但这纯粹是我的意见。 Rails DSL 非常广泛,并且确实包含您提到的方法。您可以查看api 以获取完整列表。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-02-02
          • 2013-05-08
          • 2012-09-08
          • 2015-07-30
          • 1970-01-01
          相关资源
          最近更新 更多