hyoromoのブログ

最近はVRSNS向けに作ったものについて書いています

Rubyコーディング規約

こちらとだいたい同じですが、自分なりにまとめておきます。
自分の中で何かが変われば日記の改訂をすると思います。

ソースコードの整形

インデント

インデント幅はスペース2つで、タブは使用しない。

空行

クラス間には空行を挿入。
クラス内の構造間にも空行を挿入。

行の折り返し

たくさんあるメソッドの呼び出しではこのように書く。

this_is_method_call_with_many_argument(
    this_is_argument_no_1,
    this_is_argument_no_2,
    this_is_argument_no_3)
空白

カンマの後に空白を入れる。
演算子の左右に空白を入れる。
メソッドチェインで使用するときの'{'と'}'の前には空白を入れる。

コメント

分かりきったコメントはさける。
「何をするか」を書くのであって、「なぜするか」については書かない。

構文に関する規約

メソッド呼び出し

引数があれば括弧を付けるし、無ければ省略する。

ブロック

do...endを使用するが、メソッドチェインを使う場合は{...}を使用する。

条件分岐

基本的にはif...endを使用する。ただし、if !xのような場合はunless xを使用したほうが分かりやすい。

繰り返し

while...endやtimesをメインで使用し、forは使用しない。while !xのような場合はuntil xを使用したほうが分かりやすい。

命名規約

全般
  1. 原則として、単語の省略は行わない。
  2. スコープが狭いループ変数には、i, j, kという名前をこの順序で使 用する。
  3. スコープが狭い変数名には、クラス名を省略したものを使用してよい。 (例: eo = ExampleObject.new)
クラス・モジュール名

各単語の一文字目を大文字とし、'_'などの区切り文字は使用しない。

メソッド名

すべて小文字とし、単語の区切りに'_'を使用する。
真偽値を返すメソッド名は、後ろに'?'を付ける。
また、破壊的メソッドの場合は'!'を付ける。

定数名

すべて大文字とし、単語の区切りに'_'を使用する。

ファイル

すべて小文字とし、単語の区切りに'_'を使用する。