レッスン 12

インデントと改行

整形が人間に役立つとき、最小化バイトが重要なとき、チームの慣習。

JSON はトークン間に空白を要求しません。インデントと改行は編集上の選択 — パース後の値は変わりませんが、人間と diff ツールの見え方は変わります。

同じデータ、2 つの表現

コンパクト:

{"user":{"name":"Ada","roles":["admin","editor"]}}

インデント付き(2 スペース):

{
  "user": {
    "name": "Ada",
    "roles": ["admin", "editor"]
  }
}

パーサーは同等とみなします。レビュアーは pull request では後者を好みます。

チームの慣習

よくある標準:

  • 2 スペース — 多くの JavaScript と Web プロジェクトのデフォルト
  • 4 スペース — 一部のエンタープライズスタイルガイド
  • タブ — JSON では稀。多くの linter がスペースを期待するため

リポジトリごとに 1 つの幅を決め、CI でフォーマッタチェックを強制しましょう。

コンパクトのままにすべきとき

  • 帯域幅を追跡する本番 HTTP ボディ
  • サイズ上限の厳しい埋め込み設定
  • 人間が読まないマシン間通信

ワイヤー上はコンパクトに保存し、必要ならログやデバッグビルドで整形します。

diff に優しいレイアウト

安定したキー順序と一貫したインデントは、コードレビューで回帰を見えやすくします。ランダムなキー順や混在したスペーシングは、本当のロジック変更を隠すノイズの多い diff を生みます。

レイアウトは人間への伝達手段として扱い、JSON データモデルの一部ではありません。

実践したいときは関連する DevCove ツールを使えます。任意であり、このレッスンの必須部分ではありません。

関連ツールを開く

コース概要へ戻る