【Rails】条件分岐を使ったコードを読みやすくする
備忘録です。
条件分岐を書く上で、ここ意識すると読みやすい、イケてそうって書き方をまとめました。
辞書的な感じにもしたいので、どんどん加筆していきます。
今のところif文が多めです。
①一行で書く
主にtrue、falseで結果を分ける時
before
if 条件
result1(trueの時の処理)
else
result2(falseの時の処理)
end
after
条件 ? result1(trueの時の処理) : result2(falseの時の処理)
これはよく使われますが、
スッキリするので積極的に使っていきたい書き方です。
②2行で書く
before
def method_name
if 条件
return result1
else
return result2
end
end
after
def method_name
return result1 if 条件
return result2
end
「もしこうならこう、じゃないならこう」って分かりやすい。
③ネストをなくす
before
def method_name
result = result1
unless item.oo?
if item.xx?
result = result2
else
result = result3
end
end
return result
end
after
def method_name
return result1 if item.oo?
return result2 if item.xx?
return result3
end
ほぼ②と同じですが、「この条件の場合はこれを返すよ」っていうのが、一行ずつ書いて並べることで分かりやすくなる。
また、ネストがなくなるだけでだいぶ変わる。
④結果を変数に代入する時
このような感じでインデントを調整すると、
「あ、ifの結果を変数に代入してるんだ」ってわかりやすくなる。
def method_name
hoge = if 条件
result1
else
result2
end
end
⑤二重否定は避ける(unless)
unlessの中でnot演算子「!」を使うと二重否定が発生し読みづらくなるので避ける。
できるだけ直感的に理解できるように書く。
unless !item.nil? # before
if item.nil? # after
だらだら書かずに誰にでもわかりやすいコードを書きたい。
条件分岐ってめちゃめちゃ使うものなので、さらっとイケてるコードをかける人になろうと思います。