システムに矛盾がない状態を作るための方法

例:ユーザ登録処理内の重複確認Existsメソッドは、複数のUserが並列して実行するとチェックをすり抜けてしまう

  • ユニークキーによる防衛
    • 結論、ルールを守る主体ではなく万が一のセーフティネットとして使うべき
    • Pros
      • お手軽
    • Cons
      • コードにドメインのルールが書かれない
      • 特定の技術基盤に依存する
  • トランザクションによる防衛
    • Pros
      • コード上にドメインルールを表現できる
    • Minos
      • 特定の技術基盤に依存する
        • C#のトランザクションスコープや、AOPによる@Transactionアノテーションを使えば特定の技術基盤から開放される
        • ユニットオブワークでトランザクションを実現する方法もある