我对rails很新,但我真的很喜欢合并TDD,a / b测试,MVC等等,所以我决定在下一个项目中使用rails。我不喜欢rails的一个方面是人们用于函数调用的样式。以下行是我期望在典型的rails用户控制器中看到的:
validates :name, :presence => true
我真的不喜欢这种风格,因为它让像我这样的新手很难理解验证是一个函数,它接受两个参数,第二个参数是一个哈希。对我来说,这种语法更清晰:
validates(:name, {:presence => true})
现在,我希望这个项目能够成长,所以我将会在其他比我更熟练的Rails开发中获益。所以,问题是,如果我以我的风格编写这个应用程序,对于习惯于传统的rails方式的人来说是否会非常令人沮丧,还是我可以继续使用括号和花括号来使结构更明确?
答案 0 :(得分:3)
他们可能会试图让你离开岛屿......
尝试适应Ruby约定。请参阅这里有价值的主题:
http://railsforum.com/viewtopic.php?id=1042
“如果我只能向您提供一条建议,那就是:遵循Rails惯例”
查看非官方约定(为谷歌部门编写)
答案 1 :(得分:3)
Ruby没有真正的规范风格指南,所以你可以继续这样做。是的,将会有像这样的代码(尤其是红宝石退伍军人)感到沮丧的开发者。
许多Rails代码试图看起来像是自然语言,人们会争辩说“编程”它会破坏这个目的。
但是我认为这是一个小问题 - 只要你编写好的代码 - 优秀的开发者将适应任何风格。
答案 2 :(得分:1)
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