読書ログ:『ドメイン駆動設計入門-9、10章』
このnoteは「ドメイン駆動設計入門」の読書記録です。
9章-複雑な生成処理を行う「ファクトリ」と10章-データの整合性を保つを読みました📚
ファクトリの目的
複雑なオブジェクトはその生成過程も複雑。この生成を責務とするオブジェクトのことを道具を作る工場になぞらえて「ファクトリ」という。ファクトリによって生成処理をカプセル化することでロジックの意図を明確にしながら、柔軟性を確保できる。
データの整合性を保つ
ソフトウェアを構築する上で必ず必要。システムの不正終了や重複チェックのすり抜け等により矛盾やズレなどの不整合なデータが発生する。
ユニークキー制約
データの整合性を守るために有効だが、リレーショナルデータベースのユニークキー制約という特定の技術基盤だけに依存してしまうことは問題。ユニークキー制約はセーフティネットとして活用し、より安全性を高めるためにはコードでのチェックとユニークキー制約を併用するとよい。
トランザクション
一貫した状態を保つために、相互依存的な操作の完了、取消を保証する。一度のトランザクションで保存するオブジェクトを一つに限定し、さらにそのオブジェクトをなるべく小さくするなどトランザクションが引き起こすロックは可能な限り小さくする。
この記事が気に入ったらサポートをしてみませんか?