【发布时间】:2008-10-21 09:44:00
【问题描述】:
对于包含给定类 SomeCoolClass 的文件,正确或标准的文件名是什么?
1.somecoolclass.rb 2. some_cool_class.rb 3. some-cool-class.rb 4.SomeCoolClass.rb或其他一些变化?
我注意到在 Ruby 标准库中,使用了版本 1、2 和 3。
【问题讨论】:
标签: ruby file naming-conventions conventions
对于包含给定类 SomeCoolClass 的文件,正确或标准的文件名是什么?
1.somecoolclass.rb 2. some_cool_class.rb 3. some-cool-class.rb 4.SomeCoolClass.rb或其他一些变化?
我注意到在 Ruby 标准库中,使用了版本 1、2 和 3。
【问题讨论】:
标签: ruby file naming-conventions conventions
只有Ruby(即不是Rails),命名只是一种约定。在Rails 中,使用下划线的convention 是必要的(几乎)。
我认为约定 #2 lowercase_and_underscore.rb 更常见并且看起来相当不错,尽管一篇文章 Here 说 lowercasenounderscore.rb 是 Ruby 约定。
选择哪个惯例更常见,或者你更喜欢哪个惯例。最重要的是在项目中保持一致。
【讨论】:
lowercasenounderscore.rb 引用的那篇文章已经过时了,我还没有看到其他人声称这是惯例。下划线几乎是普遍的标准。
我个人认为连字符作为单词分隔符通常可以最大程度地提高可读性和可打字性,因此我建议在可能的情况下(在某些情况下,不能使用连字符,例如在大多数语言的标识符中)。要记住的一件重要事情是,您选择的方案将与用户将与您的库一起使用的 require 语句有关,并且您希望避免使用与库名称不同的 gem 名称。
坏的# gem install my_cool_lib
require 'my-cool-lib'
# gem install MyCoolLib
require 'my_cool_lib'
好的
# gem install my_cool_lib
require 'my_cool_lib'
# gem install my-cool-lib
require 'my-cool-lib'
不幸的是,少数库违反了这个简单的可用性规则。不要成为那些图书馆之一。 :)
【讨论】:
我会推荐带下划线的小写字符(您的问题中的数字 2)。确实,这种命名方案是 Rails 中的约定,在非 Rails 项目中不是必需的。但是,我仍然会坚持 Rails 约定,因为大多数 Ruby 程序员可能都专门为 Rails 使用 Ruby。
【讨论】:
foo.rb 和一个位于 spec/foo_spec.rb 的规范文件,当前者更改时 Autotest 将运行后者,并且许多文本编辑器将有快捷方式在两者之间跳转。)
my-proj
├── README
├── lib
│ └── some_cool_class.rb
└── test
└── some_cool_class_test.rb
【讨论】: