intermediate
Adapter
Оборачивайте incompatible dependency за interface, который ожидает application, изолируя translation и error semantics.
Adapter оборачивает стороннюю или legacy-зависимость в интерфейс, который уже ожидает приложение. Перевод охватывает имена методов, формы ошибок, пагинацию и async-семантику. Хорошие adapters тонкие: маппят протоколы без переизобретения бизнес-правил.
На интервью: пример адаптации vendor SDK к repository port. Где mapping, а где domain services.
Типовые ошибки: adapter как свалка бизнес-логики; утечка vendor types через port; один adapter на несвязанные контексты.
Компромисс — гибкость против сложности: знайте, когда достаточно более простого пути.
Чеклист:
- Целевой port определён до написания adapter.
- Ошибки маппятся в application-level result types.
- По возможности stateless adapter.
- Тесты adapter с recorded vendor fixtures.