使用驼峰命名法命名Ruby常量是否不好?

3

大多数Ruby常量遵循C语言的惯例,全部使用大写字母。

但是,使用CamelCase命名Ruby常量是否被认为是合法的风格?我认为这样更容易输入,因为我的Caps Lock键已经重新映射为CTRL键。


1
这个问题涉及到观点,就像在公共场合穿衣服一样。你可以在任何一种情况下打破传统,但是你不会有太多的同伴,而且你会让人感到惊讶。 - Wayne Conrad
除非你在公共场合不穿衣服,否则你不使用一致的大小写方式不太可能被逮捕。 - John Dvorak
3个回答

5
根据ruby规范,模块是常量。这背后有一种哲学,没有理由写得不同。如果模块使用驼峰命名法,为什么其他常量不用呢?虽然大写字母似乎占据了大多数,但我都使用驼峰命名法。此外,大写提醒我传统语言(如Basic、Fortran等),看起来不太复杂。
ecologic指出与IDE的兼容性,但如果这造成问题,那就是IDE的bug。IDE应尽可能严格地遵循语言规范,而不是人们遵循的惯例。

1
写成大写字母让我想起了像Basic、Fortran等经典的编程语言。- LOLCODE可以全部使用大写字母!!1! - Andrew Grimm
2
为了让新手更好地理解Ruby,类是模块的子类,它们也使用驼峰命名法。 - Andrew Grimm

3

好的,你应该向团队中的人提出问题并得出一个共同的决定,因为你不想在同一个项目中使用两种不同的约定。

在我看来,遵循每种语言的正确约定总是一个好主意。我会遵循我并不真正喜欢的约定。此外,一些IDE可能会以不同的方式解释常量。


1
如果对于外部人员来说,一般的可读性变得更差了,那么如果你决定为任何开源项目做出贡献,你就必须努力回到常规约定。 - ecoologic

2
不,使用CamelCase命名“其他”(非类,非模块)常量不被认为是合法的样式。
标准的Ruby惯例是类和模块使用CamelCase;其他常量使用SCREAMING_SNAKE_CASE。
Ruby允许您在其他(非类,非模块)常量中使用CamelCase,但会使阅读您代码的人感到惊讶。代码的目的不仅是与机器通信,还要与任何必须理解您代码的人通信。因此,在这种情况下,您应该遵守广泛接受的标准。
证据
我在谷歌搜索“ruby style guide”的第一页找到的所有样式指南都对此问题有所涉及,并支持我的说法,即在Ruby中命名非类、非模块常量时,SCREAMING_SNAKE_CASE是绝大多数的标准。以下是一些引用: 使用 SCREAMING_SNAKE_CASE 命名其他常量。 使用 SCREAMING_SNAKE_CASE 命名其他常量。

Constants should be named using all upper-case characters and underscores, e.g.

BigFatObject::MAX_SIZE
使用 SCREAMING_SNAKE_CASE 命名其他常量。

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