IaCでは賢い抽象より退屈で逐語的な記述の方が価値が高い
インフラ記述の主要な読者はレビューアと将来の運用者である。彼らが問うのは「このコードは何を計算するか」ではなく「この記述から実際に何が作られるか」の判読性である。抽象の層が厚くなるほど記述と成果物の距離が開き、plan / diffの判読コストが上がる。だからIaCでは、賢い抽象より退屈で逐語的な記述の方が価値が高い。
これは一般のソフトウェア開発の価値観とは逆向きである。通常のプログラミングでは重複の除去と抽象化の巧みさが美徳になるが、IaCでは成果物(実インフラ)との対応が読み取れることが優先される。抽象化は距離を作るという一点で、このドメインではコストの側に数えられる。
同じ判断は「言語が決める」側の得るものとしても現れる。文法の上で「読めない書き方」を構造的に書けなくすると、ベテランも新人も同じ表現力に揃い、レビュアーは「文法が通っているなら最低ラインは満たす」と判断できる。静的解析・LSP・自動修正ツールも効きやすい。規約を作って教育する組織コストも要らない。
代償として逃げ道がなくなる。文法の表現力を超える構成を書きたいとき、別アプローチ(module分割、外部スクリプトでの生成)に逃げる必要が出る。この立場は、その代償を払ってでも判読性を取るという選択である。