Сколько слоев нужно будет заменить при добавлении Web Socket в чистой архитектуре

«Сколько слоев нужно будет заменить при добавлении Web Socket в чистой архитектуре» — вопрос из категории Архитектура, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Добавление WebSocket в чистой архитектуре (Clean Architecture) обычно затрагивает 2 слоя:

  1. Инфраструктурный слой - здесь реализуется сам WebSocket сервер/клиент (например, через gorilla/websocket). Это техническая деталь, которая не должна просачиваться в бизнес-логику.

  2. Слой интерфейсов - добавляется новый интерфейс для работы с WebSocket, который будет использоваться в use cases. Например:

type WebSocketHandler interface {
    Send(message []byte) error
    Receive() ([]byte, error)
    Close() error
}

Бизнес-логика (use cases) и доменный слой остаются неизменными, так как работают через абстракции. Это главное преимущество чистой архитектуры - изоляция изменений.