いつ読むか?

  • ドメインモデルのリファレンス実装として

読書メモ

複雑な業務ロジックに対処するための10の設計パターン。

初級編

  • 値の種類: 単位・範囲・関係で分類し適切な型定義
  • 範囲型: 範囲判定を専用クラスにカプセル化
  • 階段型: 段階的計算ルール(割引率等)をenumで宣言的に表現

中級編

  • 状態遷移: 状態とアクションの関係を表で管理
  • 入出金履歴と残高: イベントソーシングで履歴を不変データとして記録
  • 未来在庫: 入出庫予定から将来の在庫を投影

上級編

  • セット演算: 複数条件の一致度をSet操作で判定(スキルマッチング等)
  • 割合と端数: 比例配分時の端数を厳密に処理
  • 決定表: Predicate型で複合条件をAND/OR/NOTで表現
  • 経路探索: ネットワーク構造を隣接リストで表現