Help us understand the problem. What is going on with this article?

ガード節を使って読みやすいコードを書こう

More than 1 year has passed since last update.

ガード節とは

例えば以下のように階層の深いif条件分岐があったとします。

function hoge($a, $b, $c) {
  if ($a === 'a') {
    if ($b === 'b') {
      if ($c === 'c') {
        return 'is c';
      } else {
        return 'not c';
      }
    } else {
      return 'not b';
    }
  } else {
    return 'not a';
  }
}

関数hogeが何を返すか、簡単には理解できないと思います。
この関数はガード節を使って、以下のように書くことができます。

function hoge($a, $b, $c) {
  if ($a !== 'a') {
    return 'not a';
  }
  if ($b !== 'b') {
    return 'not b';
  }
  if ($c !== 'c') {
    return 'not c';
  }
  return 'is c';
}

条件を逆転させてreturnしているだけなのですが、かなり読みやすくなったのではないでしょうか。
実際のアプリケーションのコードはもっと複雑だと思いますが、エラー処理を早めにreturnするなどして、比較的簡単にリファクタリングできるので、皆さんもぜひやってみてください。

nouka
WEBデザイナーからエンジニアに転向し、現在はリードエンジニア的な立場で働いています。 好きな本:「コードコンプリート」「リーダブルコード」「レガシーコード改善ガイド」「JavaScript: The Good Parts」「メンタルブロックバスター」
https://www.wantedly.com/users/18366823
ozvision
購買プラットフォーム「ハピタス」を開発・運営するベンチャー企業
https://www.oz-vision.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away