Ruby
体裁
インデント
- 原則的にインデントを入れる
- インデントは半角スペース2文字とする
- タブの使用は禁止する
空行
- 可読性を上げるために空行を適宜入れる
- 複数のクラスの区切りには空行を挿入する
- 例
class Foo ... end class Bar ... end
- 例
- クラス内の各構成要素の区切りには空行を挿入する(但し、最初の構成要素の前や最後の構成要素の後には空行は挿入しない)
- 例
class Foo attr_accesor :bar def baz ... end def quux .. end end
- 例
- 複数のクラスの区切りには空行を挿入する
一行の文字数
- 一行の文字数は特に制限しない
コメント
- Rubricksコア
- コメントはクラスモジュールやパブリックメソッド毎にRDocスタイルで記述する
- メソッド内にはコメントを記述しない
- コメントはクラスモジュールやパブリックメソッド毎にRDocスタイルで記述する
- コンポーネント
- 制限無し
命名規約
全般
- 原則として単語の省略は行わない
- スコープが狭い変数名には、クラス名を省略したものを使用してよい
- 例: eo = ExampleObject.new
クラス名・モジュール名
- 各単語の一文字目を大文字にする
- '_'などの区切り文字は使用しない
- 良い例
ExampleClass HttpClient
- 悪い例
Example_Class EXAMPLE_CLASS HTTPClient HTTPclient HTTP_Client
- 良い例
メソッド名
- 全て小文字にする
- 単語の区切りに'_'を使用する
- 良い例
def add_something ... end
- 悪い例
def addSomething ... end def Add_Something ... end
- 良い例
- 真偽値を返すメソッドは末尾に'?'を付ける
- 良い例
def visible? ... end
- 悪い例
def is_visible ... end
- 良い例
変数名
- 全て小文字にする
- 単語の区切りに'_'を使用する
定数名
- 全て大文字にする
- 単語の区切りに'_'を使用する
DBテーブル名
- 全て小文字にする
- 単語の区切りに'_'を使用する
各種構文
クラス構成要素
- クラスの構成要素は以下の順番で記述する
- 宣言全般
- 定数
- acts_as_...
- validates_...
- attr_...
- クラススコープの定義
- インスタンススコープの定義
- 宣言全般
- 各スコープの定義内では以下の順番で定義を行う
- 変数
- publicメソッド
- protectedメソッド
- privateメソッド
アクセサの定義
- アクセサの定義はattr_accessor・attr_reader・attr_writerを用いる
- attrは使用しない
メソッドの定義
- メソッド定義の引数リストには括弧を付ける
- 但し引数が無い場合には括弧を省略する
- 良い例
def foo(x, y) ... end def bar ... end
- 悪い例
def foo x, y ... end def bar() ... end
- 良い例
- クラスメソッドの定義には「self」を利用する
- 良い例
def self.foo ... end class << self def bar ... end end - 悪い例
def Foo.foo ... end class << Foo def bar ... end end
- 良い例
条件分岐
- case式のwhenはインデントしない
- 良い例
case x when 1 ... when 2 ... else ... end
- 悪い例
case x when 1 ... when 2 ... else ... end
- 良い例
- if式・unless式のthenは省略する
- 条件が十分に簡単で一行で収まる場合はif修飾子・unless修飾子を用いてもよい
- 良い例
if x > 0 puts 'x > 0' else puts 'x <= 0' end unless x puts 'x is false' end puts 'x is true' if x
- 悪い例
if x > 0 then puts 'x > 0' end
- 良い例
- 条件分岐の式の値は使用しない
- 良い例
if x > 0 msg = 'x > 0' else msg = 'x <= 0' end
- 悪い例
msg = if x > 0 'x > 0' else 'x <= 0' end
- 良い例
繰り返し
- while式のdoは省略する
- 良い例
while condition ... end
- 悪い例
while condition do ... end
- 良い例
論理演算子
- 論理演算子は「&&・||・!」もしくは「and・or・not」のどちらを使用しても構わない
- 但し、演算子の優先順位が異なるので各自注意すること(個人Lvでどちらを使うのか統一するとよい)
三項演算子
- 三項演算子を利用する際、複数行に及ぶ場合には特に可読性に注意する
