SYSTEM ATLASЗагрузка материала

Антикоррупционный слой DDD

DDD Anti-Corruption Layer

Защищает модель домена от чужих терминов и ограничений интеграции.

Простыми словами

Представьте переводчика между двумя организациями, которые одинаковые слова понимают по-разному. Антикоррупционный слой переводит чужие данные и правила в язык вашей модели, поэтому внешняя система не диктует внутренние понятия и ограничения.

Пример от @Vibeclakr

Пример при разработке

Старый CRM называет клиента account, а новый продукт - customer. Адаптер переводит модели, не позволяя чужим терминам растечься по новому коду.

Это редакционный пример применения, а не часть определения или доказательство концепции.

Механизм действия

Сначала проверяют, есть ли исходное условие из определения. Затем смотрят, как оно влияет на структуру компонентов, потоки данных, ограничения и действия участников. Если эту связь не удаётся наблюдать, принцип не стоит использовать как готовое объяснение.

Пример в работе

Нерабочий подход

Применять локальное решение без проверки контекста, ограничений и вторичных последствий.

Системный подход

Сначала определить механизм, затем выбрать минимальное изменение и измерить результат.

Ограничения

«Антикоррупционный слой DDD» объясняет только часть происходящего в области «Архитектура ПО». Сам принцип не говорит, насколько сильным будет эффект в вашем случае, и не заменяет измерения. При другом масштабе, среде или временном горизонте результат может отличаться.

Источник

Eric Evans. Domain-Driven Design: Tackling Complexity in the Heart of Software (2003).

Первоисточник