web-dev-qa-db-ja.com

Rubyの標準ファイル命名規則

指定されたクラスSomeCoolClassを含むファイルの場合、適切なファイル名または標準のファイル名は何ですか?

 1. somecoolclass.rb 
 2. some_cool_class.rb 
 3. some-cool-class.rb 
 4. SomeCoolClass.rb 

または他のバリエーション?

Ruby stdlibではバージョン1、2、3が使用されていることに気付きました。

47
Clint Pachl

Ruby (つまりRailsではない)だけの場合、命名は単なる慣例です。 Rails では、アンダースコアを使用する convention が必要です(ほぼ)。

コンベンション#2 lowercase_and_underscore.rbの方が一般的で、見た目はかなり良いですが、記事 ここlowercasenounderscore.rbはRuby規則です。

どちらかの規則を選択するどちらの規則がより一般的であるか、またはどちらがより好きかを選択します。最も重要なことは、プロジェクト内で一貫性を保つことです。

43

下線付きの小文字(質問の2)をお勧めします。この命名方式がRailsでの規則であり、Rails以外のプロジェクトでは必要ないことは事実です。しかし、Railsの規則は、ほとんどの場合、 RubyプログラマはおそらくRuby for Rails.

7

私は個人的には、単語の区切り記号としてのハイフンは一般的に最大の読みやすさと入力可能性をもたらすと思うので、可能な限り推奨します(一部のコンテキストでは、ほとんどの言語の識別子などでハイフンを使用できません)。心に留めておくべき重要なことの1つは、ユーザーがあなたのlibで使用する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'

残念ながら、ごく一部のライブラリは、この単純なユーザビリティルールに違反しています。それらのライブラリの1つにならないでください。 :)

6
Pistos
my-proj
├── README
├── lib
│   └── some_cool_class.rb
└── test
    └── some_cool_class_test.rb
3
Mike