【发布时间】:2011-04-07 20:32:52
【问题描述】:
我有一位同事积极地试图说服我不应该使用 do..end 而是使用花括号在 Ruby 中定义多行块。
我坚定地坚持只对短单行使用大括号,而对其他所有内容都使用..end。但我想我会与更大的社区联系以获得一些解决方案。
那么它是什么,为什么? (一些应该代码的例子)
context do
setup { do_some_setup() }
should "do somthing" do
# some more code...
end
end
或
context {
setup { do_some_setup() }
should("do somthing") {
# some more code...
}
}
就我个人而言,仅看上面的内容就可以回答我的问题,但我想向更大的社区开放。
【问题讨论】:
-
只是想知道您的同事对使用大括号的看法是什么?看起来更像是个人喜好而不是逻辑。
-
如果您想要讨论,请将其设为社区 wiki。对于你的问题:这只是个人风格。我更喜欢花括号,因为它们看起来更书呆子。
-
这不是一种偏好,除了风格上的原因之外,还有语法上的原因。几个答案解释了原因。未能使用正确的错误可能会导致非常微妙的错误,如果做出另一种“风格”选择,即永远不要对方法使用换行括号,则很难找到这些错误。
-
“边缘条件”有偷偷摸摸不了解他们的人的坏习惯。防御性编码意味着很多事情,包括决定使用能够最大限度地减少遇到案例的机会的编码风格。你可能知道,但你之后的那个家伙可能不会在部落知识被遗忘之后。不幸的是,这种情况往往发生在企业环境中。
-
@tinman 这些类型的边缘条件由 TDD 处理。这就是为什么 Rubist 可以编写这样的代码并在知道他们的代码中不存在此类错误的情况下整夜休息。在使用 TDD 或 BDD 进行开发时,出现这种优先级错误,屏幕上显示的红色提醒我们“部落知识”。通常解决方案是在标准约定中完全可以接受的地方添加几个括号。 :)
标签: ruby-on-rails ruby ruby-on-rails-3 coding-style