【ふはいぼうしそう】
腐敗防止層(Anti-Corruption Layer) とは?
💡 お隣のゴチャゴチャを持ち込ませない、ドメインの『空気清浄機』
📌 このページのポイント
- 外部・レガシーシステムの設計思想が自ドメインに漏れるのを防ぐ翻訳層
- アダプター、ファサード、トランスレーターを組み合わせて実装する
- マイクロサービス間やシステム統合の境界で特に重要になる
- ストラングラーフィグパターンと併用してレガシー移行に活用されることも多い
腐敗防止層って名前が怖いんだけど、何が「腐敗」するの?
具体的にはどうやって防ぐの?
間に変換層を挟むんだ。外部システムのデータ形式を受け取って、自分のドメインモデルに翻訳するアダプターを作る。逆方向も同じ。こうすれば外部の都合が内部に漏れないよ
ただのラッパーと何が違うの?
どんなときに使うのが一番効果的なの?
レガシーシステムとの統合や、外部APIとの連携が代表的だね。特にストラングラーフィグパターンでレガシーを段階的に置き換えるときに、腐敗防止層で新旧を隔離しておくと安全に移行できるんだよ
まとめ:ざっくりこれだけ覚えればOK!
「腐敗防止層」って出てきたら「外部システムの都合を自分のコードに持ち込ませない変換レイヤー」と思えればだいたいOK!
📖 おまけ:英語の意味
「Anti-Corruption Layer」 = 腐敗(モデルの汚染)を防止する層
💬 DDDの文脈で「腐敗」とはドメインモデルが外部の設計に引きずられて崩れることを指すよ。かなり強い言葉だけど、それだけ重要なパターンなんだよ