最小驚きの原則 (POLA - Principle of Least Astonishment ・ Principle of Least Surprise) MOC

定義

最小驚きの原則 (POLA - Principle of Least Astonishment ・ Principle of Least Surprise) MOCとは、POLA - Principle of Least Astonishment ・ Principle of Least Surpriseという概念・技法である。適用の目的は、表題が扱う判断を一つの境界へ集め、利用側が内部の都合ではなく明示された契約へ依存できるようにすることにある。

仕組みと具体例

POLA - Principle of Least Astonishment ・ Principle of Least Surprise。実装では入力、出力、状態遷移、失敗条件を列挙し、表題の責務を担当する境界だけがその判断を行う。

実装前には、正常入力だけでなく、空値、境界値、重複要求、途中失敗を含む例を表にする。たとえば注文処理なら「未確定から確定へは遷移できるが、取消済みから確定へは戻せない」のように許可する状態遷移を具体化する。最小驚きの原則 (POLA - Principle of Least Astonishment ・ Principle of Least Surprise) MOCを担当する処理がこの規則を一か所で検査すれば、別の入口から不正な更新が混入するのを防げる。

適用時の確認

採用前に、解決する変更理由が実在するか、導入により依存先が減るか、単体テストで契約を検証できるかを確認する。採用後は、利用側が具象型や保存形式を知っていないこと、例外やエラー値が呼び出し側の回復判断に必要な情報を持つことをレビューする。

限界とトレードオフ

最小驚きの原則 (POLA - Principle of Least Astonishment ・ Principle of Least Surprise) MOCは、境界を追加すれば自動的に品質が上がるという規則ではない。抽象化、変換、状態管理にはコード量と運用コストが伴う。実装が一種類で変化の見込みがなく、直接表現の方が契約を明確にできる場合は導入を遅らせる方がよい。また性能や一貫性の要求が優先される場合は、単純さとの交換条件を計測結果とともに記録する。