LoginSignup
237
215

More than 5 years have passed since last update.

Rubyの命名規約

Last updated at Posted at 2015-02-24

主だったところをメモ代わりに。

クラス、モジュール

クラス名、モジュール名は原則CamelCase。各単語の最初の文字は大文字、それ以外は小文字にする。_は使わない。

OK:

  • Groups
  • ColorBar
  • CoinServer

NG

  • GROUPS
  • COLORBar
  • Coin_Server

ただし、略字は大文字のままにする(場合もある)。

OK:

  • HTMLBuilder
  • SMTPServer

クラスやモジュールはネストできる。ネストした場合も命名規則は同様。

OK:

  • MenuWindow::Color
  • HogeService::Item

メソッド

メソッド名は小文字で_区切り(いわゆるsnake_case)。

OK:

  • find_items
  • all_children

NG:

  • findItems
  • find_Items
  • FindItems
  • Find

いわゆるアクセサにはgetsetはつけない。値を読む時にはその単語名を、
値を書く時にはその単語名+=にする。

OK:

  • name
  • name=(other) ## これは実際のコード中では foo.name = other という形で使われる
  • family_name
  • family_name=(other)

NG:

  • get_name
  • set_name(other)
  • getName
  • setFamilyName(other)

真偽値を返すメソッドには?をつける。ishasを頭につけたり、pを最後につけたりはしない。

OK:

  • user?
  • permitted?
  • clicked?

NG:

  • is_user
  • is_user?
  • user_p
  • is_clicked

変数

命名ルール自体は基本的にメソッド名と同じ。ぱっと見ではメソッドと区別がつかない場合もある。

OK:

  • names
  • cart_item
  • order_id
    • order_idoidのように省略しすぎるのは非推奨。とはいえ例えばPostgreSQLのOIDはoidとしても構わない。

NG:

  • cartItem
  • order_Id

例外的に短い名前が使われるものもあるが、あくまで例外で、どちらかと言うと長めの命名の方が多い。

OK:

  • i, j
    • ループカウンタやインデックス用。 books.each_with_index{|item, i| ... } などのように使う。
  • x, y, z
    • 座標用。

定数

定数は全部大文字で_区切り。

OK:

  • FIGURE_X_SIZE
  • MAX_WIDTH

NG:

  • Figure_X_Size
  • MaxWidth

参考

237
215
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
237
215