# 宣言型

プログラムはできるだけ「命令型」よりも「宣言型」で書きましょう。

# 命令型

問題の「解法」を記述します。(HOW)

// textから#で始まる行以外を出力

for (const line of text.split("\n")) {
  if (line.startsWith("#")) {
    continue;
  }
  console.log(line);
}

# 宣言型

問題の「定義」を記述します。(WHAT)

text.split("\n")
  .filter(line => !line.startsWith("#"))
  .forEach(line => {
    console.log(line);
  });

宣言型で書くメリットは以下です。

  • ifによる分岐やforによるループがないため理解しやすい
  • 各処理が役割ごとに分かれているので理解しやすい
    • 修正の影響範囲も小さくて済む

一方命令型では処理の詳細を記述するため、環境に合わせてパフォーマンスが良いコードを書けるというメリットがあります。早すぎる最適化 はNGのため基本的には宣言型で書くべきですが、状況に応じて使い分けましょう。

NOTE

✏️ なるべく宣言型で書く