Ruby

Rubyの命名規約

More than 3 years have passed since last update.

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


クラス、モジュール

クラス名、モジュール名は原則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


参考