Ответ вслух Senior SOLID и принципы обновлено

Чистая архитектура на фронтенде

Вопрос

Что такое чистая/гексагональная архитектура и как она применима во фронтенде?

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Суть в одном правиле: зависимости направлены внутрь, к домену. В центре бизнес-правила, которые ничего не знают о мире.

Что должно прозвучать в ответе

  • домен в центре, зависимости направлены внутрь

  • снаружи адаптеры: UI, HTTP, хранилище

  • домен не знает ни про React, ни про fetch

  • даёт тестируемость логики без браузера и сменяемость UI

  • на типичном фронте избыточна: половина кода - разметка

  • разумно брать идею, а не букву: правила вычисления отдельно от компонентов

  • оправдана там, где логики много: тарифы, расчёты, редакторы

Что могут спросить следом

  • Чем отличается от слоистой n-tier?
  • Где в этой схеме место React Query?

Разбор

Суть в одном правиле: зависимости направлены внутрь, к домену. В центре бизнес-правила, которые ничего не знают о мире. Снаружи адаптеры - React, HTTP-клиент, localStorage; они знают про домен, а он про них - нет.

Что это даёт на фронте. Логику можно проверять юнит-тестами без рендера и мока браузера. UI можно заменить, не трогая правила. На проекте со сложными вычислениями (тарифы, расписания, редакторы) это окупается быстро.

Чем платишь. Абстракции и перекладывание данных. Там, где половина кода - разметка и запросы, легко получить пять файлов на одну кнопку и потерять больше, чем выиграть.

Как отвечать честно. «Целиком на фронте не применял и считаю избыточным. Беру идею: правила вычисления живут отдельными чистыми функциями и не знают про компоненты, - и этого обычно достаточно, чтобы логика тестировалась».

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.