見出し画像

【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


だらだら書かずに誰にでもわかりやすいコードを書きたい。
条件分岐ってめちゃめちゃ使うものなので、さらっとイケてるコードをかける人になろうと思います。

参考


いいなと思ったら応援しよう!