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.