【问题标题】:Is it appropriate to use parenthesis in a Rails application?在 Rails 应用程序中使用括号是否合适?
【发布时间】:2011-03-04 17:52:51
【问题描述】:

我对 Rails 很陌生,但我真的很喜欢将 TDD、a/b 测试、MVC 等结合起来是多么容易……所以我决定在我的下一个项目中使用 Rails。我不喜欢 Rails 的一件事是人们用于函数调用的风格。以下行是我希望在典型的 Rails 用户控制器中看到的内容:

validates :name, :presence => true

我真的不喜欢这种风格,因为像我这样的新手很难理解 validates 是一个接受两个参数的函数,其中第二个参数是哈希。对我来说,这种语法更清晰:

validates(:name, {:presence => true})

现在,我希望这个项目能够发展壮大,因此我将引进其他比我更熟练的 Rails 开发人员。所以,问题是,如果我以我的风格编写这个应用程序,对于习惯了传统 Rails 方式的人来说是否会非常沮丧,或者我可以继续使用括号和花括号来使结构更明确吗?

【问题讨论】:

    标签: ruby


    【解决方案1】:

    他们可能会试图把你从岛上投票...

    尝试适应 Ruby 约定。在此处查看有价值的线程:

    http://railsforum.com/viewtopic.php?id=1042

    “如果我只能给你一条建议,那就是:遵循 Rails 约定”

    查看非官方约定(为 google 部门编写)

    http://www.caliban.org/ruby/rubyguide.shtml

    【讨论】:

    • 感谢您的链接。我将遵循约定,因为正如您所指出的,Rails 社区非常重视以“Rails”方式进行操作。我猜如果我致力于学习这些约定而不是试图逆流而上,那么沟通会容易得多。
    【解决方案2】:

    Ruby 没有真正的规范样式指南,因此您可以继续这样做。是的,会有一些开发人员对这样的代码感到沮丧(尤其是 ruby​​ 老手)。

    许多 Rails 代码故意试图看起来像自然语言,人们会争辩说“编程”它有点违背了这个目的。

    但我认为这是次要的 - 只要您编写好的代码 - 好的开发人员将适应任何风格。

    【讨论】:

      【解决方案3】:

      Ruby 不需要括号,除非没有括号会使代码模棱两可。借用Ruby Koans

        # (NOTE: We are Using eval below because the example code is
        # considered to be syntactically invalid).
        def test_sometimes_missing_parentheses_are_ambiguous
          eval "assert_equal 5, my_global_method 2, 3" # ENABLE CHECK
          #
          # Ruby doesn't know if you mean:
          #
          #   assert_equal(5, my_global_method(2), 3)
          # or
          #   assert_equal(5, my_global_method(2, 3))
          #
          # Rewrite the eval string to continue.
          #
        end
      

      【讨论】:

        猜你喜欢
        • 2011-05-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-08
        • 2010-10-01
        • 2010-10-13
        • 2018-03-11
        • 1970-01-01
        相关资源
        最近更新 更多