21
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Rubyコーディング規約

Last updated at Posted at 2018-01-31

下記サイトに記載されている規約を写経
(公式ではなく、多くのRubyistが利用する規約)

参考サイト①
参考サイト②
参考サイト③

インデント、1行の桁数

  • 基本
    スペース2つ、タブはNG、一行80桁まで
  • caseとwhenは揃える(case式代入時を除く)
	case num
	when 1
	  p 1
	when 2
	  p 2
	else
	  p 3
	end
	
	# 代入時は揃えない(変数名の長さに依存するから)
	num_value = case num
	  when 1 then p 1
	  when 2 then p 2
	  else 3
	  end

シンタックス

  • 下記にはスペースを記述
  • 演算子の前後(べき乗の前後を除く**)
    sum = 1 + 2
  • カンマ、コロン、セミコロンの後ろ
    a, b = 1, 2
    1 > 2 ? true : false; puts 'Hi'
  • 中括弧の前後(開け閉じ両方)
    [1, 2, 3].each { |e| puts e }

識別子

  • モジュール・クラス名にはCamelCase
  • 上記を含むファイル名には、メインクラスをdowncase
  • 定数はCONST_NAME
  • 変数やメソッドはsnake_case

括弧の省略

  • 戻り値が無い場合は省略
    -> function の呼び出しでは必ず括弧を付けて、 procedure の呼び出しでは必ず括弧を省略
    なお
  • function - 戻り値が存在する「関数」
  • procedure - 戻り値が存在しない「手続き」
def has_arg(args) # 省略しちゃだめ
end

def not_has_arg # 省略する
end
  • 下記は例外

  • レシーバがあり、引数が存在しないときは省略
    string.to_s

  • 引数に*や&を含むとき

    map(*args)
    map(&block)
    

メソッド引数括弧の空白

入れない
(エラーになる事もある)

def space(arg) # OK
end

def space( arg ) # NG
end

クラス、メソッド、モジュールの区切りには空行を入れる

class Hoge
	  def hoge
	  end
	  
     def fuga
     end
end

class Foga
end

出来るだけforは避けてeachを利用

# OK
arr.each { |elm| puts elm }

# elmがブロックスコープに入らないため、構文外から呼び出せる
for elm in arr do
end

3項演算子をネストしない

# OK
if is_login
  is_admin_login ? true : false_1
else
	false_2
end

# う○こ
is_login ? (is_admin_login ? true : false_1) : false_2

elseが無い場合は後置if/unlessを利用

# OK
do_something if some_condiiton

# NG
if some_condition
	do_condiiton
end

否定に!は利用せずunlessを利用

# OK
do_something unless some_condition

# NG (可読性に配慮して「unless」が用意されているため)
do_something ! some_condition
21
19
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
21
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?