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

«Почему гексагональная архитектура называется архитектурой портов и адаптеров» — вопрос из категории Архитектура, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Гексагональная архитектура называется архитектурой портов и адаптеров, потому что она разделяет приложение на ядро (бизнес-логику) и внешние взаимодействия.

Порты — это интерфейсы, определяющие, как ядро может общаться с внешним миром (например, API для работы с базой данных или внешним сервисом). Они абстрагируют взаимодействие.

Адаптеры — это реализации портов, которые преобразуют внешние запросы в формат, понятный ядру, и наоборот. Например, REST-контроллер (адаптер) преобразует HTTP-запрос в вызов метода ядра.

// Порт (интерфейс)
interface UserRepository {
  save(user: User): Promise<void>;
}

// Адаптер (реализация)
class MongoUserRepository implements UserRepository {
  async save(user: User) {
    await mongoClient.save(user);
  }
}

Такое разделение делает приложение гибким: можно легко заменить адаптер (например, перейти с MongoDB на PostgreSQL), не меняя ядро.