2020-12-09

anond:20200926223016

早期returnは、ほとんどの状況で絶対正義と言っていいと思う。

 

ifブロックの悪いところは、それがチャンクを1つ消費するところである

ifブロックの中を読むとき、それが終わったあとにelseブロックが出現する可能性や、

ifブロックが終わった後にif条件に一致していなくても実行される文が続いている可能性を考慮して、

どのような条件でブロックが実行されるのかという情報記憶しておかねばならない。

 

早期returnを使えば、その心配を取り去ってチャンクの消費をせずに

正常系処理のコードを読み進められるようになる。

(「今読んでいるコードが実行されずに、次のコードが実行されるかもしれないぞー」と頭に入れておく必要が消える)

記事への反応 -
  • プログラミングしてて、ある条件のときだけ処理をしてそれ以外は初期値を返す様な関数を作るとき、俺はif文で関数の中身全体を括ってしまう。その方がどんな条件のときに処理をする...

    • 早期returnは、ほとんどの状況で絶対正義と言っていいと思う。   ifブロックの悪いところは、それがチャンクを1つ消費するところである。 ifブロックの中を読むとき、それが終わったあ...

    • ガード節のテクニックを理由をつけて教えてくれるなんて良いレビュアーだな。小さな関数であっても、仕様が追加されて大きな関数になってしまうのはよくあることだから、関数の中...

      • なるほどなぁ。読みやすいって理由よりはそっちの方がよっぽど納得できる理由だ。 でかい関数作るの馬鹿じゃね?とは思うが、大規模プロダクトを長年触っているとそうなってしまう...

    • ガード節だね レビュアーの方の言う通り、関数の初期段階で判定して return するのが一般的だよ。自分もそのほうが「読みやすい」 いろんなソースに頻出するから、なれておかないと他...

    • if分岐のネストが深いことが意味する本質は可読性を落とすことではなくて循環的複雑度が爆上がりしてテストが難しくなるってことだよ 副次的に読み辛くもなる

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん