【初心者向け】ガード節に関して解説します!

プログラミング

こんにちは。いっちー(@tetestkake_blog)です!

今回は初心者向エンジニア向けに「ガード節」に関して解説したいと思います。

エンジニア系投稿1回目です!!👏

スポンサーリンク

ガード節に関して

まずはガード節とは何かについて解説します。

定義としては以下になります。

ガード (Guard) とは、コンピュータ・プログラミング言語において、条件式ないし条件分岐のような意味を持つもので、ある分岐で処理を続けるために真 (true) と評価されなければならない[1]である。偽の場合は残りの処理のほうに進む。パターンマッチングのある言語の、パターンマッチングの能力をより強化したものと見ることもできる。すなわち、パターンマッチングとして構造がマッチしていても、その構造の中身の値を評価した結果によってはスキップさせることが可能なパターンのようなもの、である。

https://ja.wikipedia.org/wiki/%E3%82%AC%E3%83%BC%E3%83%89_(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0)

なんのこっちゃ。より噛み砕いていきます。

まず、ガード節でないプログラムの例を示します。

if value === "hoge"
  result = "hoge"
else
  if value === "fuga"
    result = "fuga"
  else
    if value === "hogefuga"
      result = "hogefuga"
end

return result

プログラムを勉強する時に、if文のサンプルでよく出てくるやつですね。

ネストがとても深くなっていますね。ネストが深いプログラムは良いプログラムではないと言われています。

ネストが深いプログラムがよくない理由
  • 可読性(プログラムの読みやすさ)が下がる
    • 実装者はわかっても、他の人がみて理解しにくいコードはチーム開発でNG
  • メンテナンス性が下がる
    • 結果的にバグも生まれやすい

次に、ガード節になっているプログラムの例を示します。

if value === "hoge"
  return "hoge"
end

if value === "huga"
  return "fuga"
end

return "hogefuga"

ガード節を用いて、条件に当てはまるものを早期にreturnすることで見通しの良いプログラムになります。

こちらの方がネストが浅い分、スッキリして理解もしやすいです。

エンジニアの現場では、可読性の観点からガード節を用いて書かれているプログラムをよく目にします。

また、ガード節になっていないプログラムをメンテナンス(保守)する際に、ネストが5個とかあると心がめげそうになるので、心理的にも非常に良いです!笑

今回紹介したガード節のように、知識と心がけ次第で読みやすいプログラムは書けます。

ぜひガード節をプログラミングで使ってみてください。

オススメ書籍

今回紹介したガード節の様に、より読みやすいコーディングに関して解説した「リーダブルコード」は、

全ての駆け出しエンジニアの方必見の書籍です!

コメント

タイトルとURLをコピーしました