TGViewer
S0ER S0ER @softwareengineervlog · 10.4K subscribers
Post #1791 8.2K
Чистая архитектура на frontend. Что это такое? Особенности, преимущества и недостатки

Интересный вопрос. Не знаю проголосуют ли за него, чтобы я разобрал на стриме. Но мне кажется в отношении чистой архитектуры нужно понять следующие моменты.

1. Основная идея чистой архитектуры - это управление зависимостями таким образом, чтобы изолировать бизнеслогику от всего кроме непосредственно бизнес-фич
2. Изоляция выполняется через создание интерфейсов, которые формируют границы модулей и позволяют выстраивать логику внутри модуля
3. Роберт Мартин считает, что уровень абстракции тем выше, чем дальше от ввода/вывода данных он находится, таким образом в чистой архитектуре бизнес логика должна быть слабо зацеплена на ввод/вывод
4. Поток управления может не совпадать с зависимостями, а по факту не будет совпадать, так как вызов функций всегда идет между вводом и выводом, посредством слоя бизнес-логики
5. Ядром архитектуры являются - варианты использования и сущности, которые окружены инфраструктурными и управленчискими конструкциями

Таким образом, чтобы фронтенд соотвествовал чистой архитектуре необходимо выполнить следующие шаги:
1. выделить бизнес-логику в виде сущностей и вариантов использования
2. изолировать бизнес логику от низкого уровня (а именно ввод/вывод, проверка и очистка данных)
3. выделить интерфейсы для взаимодействия низкого и высокого уровня абстракции (интерфейсы нужно выделять со стороны бизнес-логики)
4. Для преодоления границы через интерфейсы разработать DTO, которые необходимы только для переноса данных (короткий срок жизни)
5. Сформировать инфраструктурные и управленческие функции отдельно от БЛ

В зависимости от фреймворка можно делать по-разному, например, в ангуляре модуль уже является достаточно изолированным, с сильной границей, поэтому там нужно просто сформировать модули БЛ и инфраструктурные так, чтобы они были отделены друг от друга, а общались посредством интерфейсов.

В реакте наоборот, нужно продумать каким образом провести границы, так чтобы удовлетворять условиям выше.

Но в целом чистая архитектура бэкнеда не сильно отличается от чистой архитектуры фронтенда, обычно границы хорошо видны по файловой структуре проекта, различия есть в источниках данных (БД или  HTTP-API) и нюансах инфраструктуры.
  • 🔥 49
  • 👍 10
  • ⚡ 2
More from @softwareengineervlog
  1. Sep 3, 2026Google выпустила Gemini 3.8 Flash — новая быстрая модель уже обходит гигантов в кодинге. П…
  2. Sep 3, 2026Сейчас использую DeesSeek v4 Flash, на готовой кодовой базе решать стандартные таски из тр…
  3. Aug 6, 2026Полезное: разраб сделал интерактивный мануал, который по шагам показывает, что происходит…
  4. Aug 5, 2026Ты ненастоящий программист! Это происходит снова и снова, и каждый раз одинаково. Я начал…
  5. Jul 27, 2026Внимание, скам! Появился бот который выдает себя за бота моего канала. Я НИЧЕГО ЧЕРЕЗ БОТО…
  6. Jul 25, 2026У Сбера есть интересный whitepaper где он описывает технологию разработки продукта с помощ…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →