notes mizzy.org

結果予測性に効く記述自由度は三つに絞れる

確認済み 出典: explorations/2026-04-26-cdk-pulumi-terraform-carina-comparison/chapter-1-notation-and-abstraction.md §1-3, explorations/2026-04-26-cross-dsl-design-position/README.md 作成

記述自由度は無数に立てられるが、「実行前にコードを読んだ時点で、resource graphの形と各ノードの属性値がどう決まるかを読み取れるか」に直接効く軸に絞ると、三つになる。

graph形状側 属性値側 抽象化の追加 module切り出し 値計算ヘルパー / 型抽象 複数量の制御 ノード数 コレクション要素数 実装の切替 source / クラス 計算ロジックの選択 結果 予測性 除外した軸:実行モデル / 型 / state / identity — これらは別軸である
三つの自由度はそれぞれgraph形状側と属性値側の二側面を持つ。表記/抽象化の層で説明できるものだけを残し、実行モデル・型・state・identityは別軸として除外している。

選定基準は二つ。(i) resource graphの形または各ノードの属性値を変える自由度に直接効くこと、(ii)表記/抽象化の層で説明できること — 実行モデル・型・state・identityは別軸なので除外する。

この三つは構成記述系DSL全般の比較軸としても有用だが、IaC固有の偏りもある。「実装の切替」(import pathの動的性)は構成記述系DSL 11個すべてに当てはまる。「複数量の制御」も適用可能だが、graphを出力しないDSL(Pkl / CUE / Dhall)では「graphの個数」ではなく「最終valueの集合サイズ」として読み替える必要がある。「抽象化の追加」は普遍的だが、graph形状への影響はIaC以外では希薄。つまり三自由度そのものは一般的で、「graph形状を変えるか」という基準の方がIaC固有である。

#比較軸 #dsl #設計判断