手当たり次第に書くんだ

飽きっぽいのは本能

YAML リストのインデント論争

インデントで迷う瞬間

YAML を書いていると、こんな疑問にぶつかります。

「リストの前って、スペースを入れるの?行頭から-で始めていいの?」

検索しても、どちらの例も出てくる。そして最初に感じるのは——どっちが正しいんだ? という混乱です。

答え:どちらも正しい

インデントあり:

items:
  - apple
  - banana
  - grape

インデントなし:

items:
- apple
- banana
- grape

どちらも YAML として正しく、まったく同じ構造として解釈されます。

YAMLのリストは、インデントではなく ハイフン(-)によって構造を表現しているからです。

つまり、インデントの有無は構文上は無関係です。

技術的な仕組み:キーとリストの違い

YAML で階層を決めるのはインデントですが、リストだけはハイフンが階層の印になります。

a:
- 1
- 2
b:
- 3

これは次の書き方と完全に等価です。

a:
  - 1
  - 2
b:
  - 3

つまり、キーはインデントが命、リストはハイフンが命。構文的に壊れるのは前者だけなんです。

見た目の哲学:インデント派 vs 非インデント派

どちらを選ぶかは、文法ではなく美意識の問題になります。

スタイル特徴向いている場面
インデントあり構造がきれいにそろい、安心感がある(インデントがあるのが正しいと思う安心感)階層が多い設定や共同編集
インデントなし行頭に-が並び、リスト構造がすぐ目に入るシンプルな構成や短い定義

人間の視覚は、左端に並ぶ記号をリスト構造として最速で認識します。つまり「非インデント派」は、構文よりも読むスピードと視覚的リズムを重視しているとも言えます。

ツールが作る無機質な YAML

手で書くときは整えていても、ツールが吐き出す YAML を見るとこうなっていたりします。例えば、kubectl-o yaml などもそうなっています。

values:
- one
- two
- three

これは間違いではなく、単に「出力最適化」された結果です。

ツールは人間の美意識よりも、構文の最小限性を優先します。

つまり、YAML の世界では「正しい書き方」ではなく「読みたい書き方」が存在するのです。

結論:たった 2 スペースの思想

結局のところ、YAML のリストのインデント問題は文法ではなく感性の問題であり、どっちでも良いですが、あえていうなら、そのツールの出力に合わせて書いたほうが個人的には好きですね。比較もやりやすいので。

こういう割とどうでもいいことを言語化して基底とするのは結構大事だったりします。

YAML リストのインデント論争

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る