Ruby变量命名规范?

49

例如,对于常量,应该是:

THIS_CONSTANT

This_Constant

ThisConstant

还是其他什么东西?

实际上,这个整个主题是否有任何(准)官方参考资料?

我也想能够快速检查以下问题:

  • Ruby自身强制执行哪些命名模式(例如,Constant必须以大写字母开头,对吗?),哪些只是约定俗成的(method_name应该使用蛇形命名法,对吗?)?

  • 有没有惯例来说明变量应该是什么类的提醒? (“匈牙利标记”或其他...我的意思是,我有点感觉,如果您在Ruby代码中需要使用它,您就会做错,但不管怎样,有一种惯例吗?)

等等……


在Ruby中不使用匈牙利命名法。部分原因是因为尝试在变量名中描述变量类型会导致名称笨拙且通常缺乏对它们真正含义的好描述;另一方面,因为在Ruby中我们应该使用鸭子类型,这意味着变量类型通常比其可以像什么一样被操作更不重要。如果它可以转换自己或很容易地进行转换,那么不同类型之间有什么区别呢?当从一种类型转换到另一种类型很困难时,匈牙利命名法更加重要。 - the Tin Man
让你和你的团队受益,安装 Rubocop 在所有项目中。没有人应该浪费时间谈论规范。 - Daniel
@Daniel:如果有人想要实现并强制执行某种工作方式,那么就必须讨论约定。Rubocop强制执行某种约定,因此人们需要谈论它。 - karatedog
3个回答

78
《Ruby风格指南》是一个公开的努力,旨在向Ruby开发者推荐一致的约定和最佳实践。你应该去看看。

16

简而言之

我们在定义类和模块时使用驼峰命名法:CamelCase

文件、变量和方法则使用下划线命名法:snake_case


12
通常我看到这被称为“TitleCase”,以区别于“camelCase”。 - iameli
2
我相信技术术语是帕斯卡命名法。 - Daniel Nalbach

1
您的文本编辑器中的语法高亮可以在您学习一种语言并尝试开发其惯例(强制或非强制性)时给您一些好的线索。我使用Linux Gedit编辑器。
昨天,我惊喜地发现,The Ruby Style Guide https://github.com/bbatsov/ruby-style-guide 推荐的一些注释惯例,例如 # TODO# FIXME,会以粗体鲜黄色显示。所有大写字母的常量名称为粗体青色。当然,不同的编辑器使用不同的颜色方案。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接