株式会社FunseekでのRubyによりコーディングを行う際の規約について述べる。
-
プログラムを読みやすくするため、インデントを適宜行う。インデント 幅は2とする。また、インデントにはスペースのみを使用し、タブは使用 しない。
-
privateなメソッドはprivate宣言後、インデントを行う。
[例]
class Test def aaa end private def bbb end end
-
whenはcaseと同じ深さに揃える
[OK]
case when name == 'jun' puts 'Jun' when name == 'aki' puts 'Aki' else puts 'Nothing' end
[NG]
case when name == 'jun' puts 'Jun' when name == 'aki' puts 'Aki' else puts 'Nothing' end
-
ブロックは基本的にdo ... endを使用する。ただし、メソッドチェインを行う場合は{ ... }を使用する。
[例]
s = ary.collect { |i| i.to_s }.join(",")
コメントは「#」を使用のみ。埋め込みドキュメントは使用不可とする。(理由としてはdiffで過去差分を見た時に埋め込みドキュメントの場合、コメントかどうか判断が難しいため)
[OK]
#def aa
#end[NG]
=begin
def aa
end
=endクラスメソッドはclass << selfでまとめる。
[OK]
class Hoge
class << self
def aa
"aa"
end
def bb
"bb"
end
end
end[NG]
class Hoge
def self.aa
"aa"
end
def self.bb
"bb"
end
endメソッドの値をメソッドの最後で返す場合はreturnは使用しない
[OK]
def add(x, y)
result = ""
なにかしらの処理..
result
end[NG]
def add(x, y)
result = ""
なにかしらの処理..
return result
end大きな数にはアンダースコアを入れる
[OK]
num = 1_000_000[NG]
num = 1000000原則として、単語の省略は行わない。 スコープが狭いループ変数には、i, j, kという名前をこの順序で使 用する。 スコープが狭い変数名には、クラス名を省略したものを使用してよい。 (例: eo = ExampleObject.new)
アッパーキャメルケースを使用する
スネークケースを使用する