Rails中没有括号 - 好风格?

时间:2015-05-15 20:17:58

标签: ruby-on-rails ruby styles

当我第一次开始使用ruby / rails并注意到你不需要放括号时,我记得“我不会那样做!”。

但现在我有点喜欢它。

所以问题是,那是好风格吗?或者我应该坚持使用括号?

感谢。

1 个答案:

答案 0 :(得分:0)

downvotes可能是因为SO在技术上不是这类问题的好论坛 - 显然SO社区喜欢清晰,负责任,离散,客观的问题,而不是像这样的更一般的风格或技术问题。但我喜欢这些问题,所以这里就是。

由于使用Ruby这样的各种小风格的问题让我绝对疯狂,这是愚蠢的,因为他们并没有那么大的交易。但是Ruby社区似乎对风格问题很着迷,也许它只是带有极具表现力的语言。

我的回答:

我尝试将所有内容定位为使我的代码尽可能清晰,而不会让它过长。如果我在两种风格之间挣扎,我几乎总会对我认为将来更容易让新手开发者理解的风格有所了解。

如果没有参数,或者当参数"自然流动时,我省略了括号#34;在方法名称之后。因此,如果方法描述了一个动作,并且第一个参数是该方法的对象,那么省略括号就很漂亮了。像这样:

function2

但是,该方法的第一个参数通常是选项的散列,或者是偶然的值或者除了"正在采取的动作的对象之外的其他东西"。在这些情况下,我通常会发现它看起来错误/不合理而忽略了括号。就像在这些情况下一样:

create :user, name: "Topher"
raise "Problem!" unless @thingy.is_a? String
render partial: "filters"

当然,如果您将方法链接在一起(比如建立一个ActiveRecord调用),如果存在任何参数,则需要包括括号,因此这个问题没有实际意义。

更一般的答案:

如果您还没有,请从头到尾阅读the Ruby style guide几次。有些规则会吸引你,有些会让你感到厌恶,但让自己暴露它会让你熟悉许多其他Rubyist(他们辩论那些风格和恶心)所使用的风格和模式,以及当你面对的时候类似的情况,你会更加意识到接近它的不同方式以及这些不同风格的权衡。