SSoT

Single Source of Truth——ある情報に対して「正しいのはここだけ」と定められた唯一の情報源。同じ情報が複数箇所に存在するとき、どちらが正しいか分からなくなる問題(二重管理問題)を回避するための原則。

DRY原則との関係

SSoTはDRY原則(Don't Repeat Yourself)と密接に関連するが、同一ではない。DRYは「同じ知識を重複させない」という実装上の原則であり、SSoTは「どこが真実か」という情報アーキテクチャ上の原則である。DRYに従うことはSSoTを実現する手段の一つ。

ソフトウェア開発におけるSSoTの所在

SSoTをどこに置くかは設計上の重要な判断である。

自然言語のspecをSSoTにする場合の問題

仕様駆動開発が提唱する「自然言語のspecをSSoTにする」アプローチには本質的な問題がある。

ImplementationをSSoTにする根拠

  1. Implementationは意図を含有する — 型制約・不変条件・モジュール構造が意図を形式的に表現する
  2. Implementationからの翻訳は収束的翻訳方向の非対称性により、コードから意図を読み取る方向は情報の損失が少ない
  3. Implementationは強制力を持つ — コンパイラやランタイムが制約違反を検出する
  4. 二重管理の回避 — コードが唯一の真実であれば「どちらが正しいか」という認知負荷が生じない

これはDomain-Driven Designの「コードとモデルの深い結びつき」という思想とも整合する。

関連