Независимо доставляемые клиентские компоненты в браузере объединяются в единое целое. Здесь мы представляем веб-приложение как набор функций, за каждую из которых отвечает отдельная команда.
Что дают микрофронтенды?
- Упрощение координации задач. Команды больше сфокусированы на своих предметных областях, у каждой чёткая зона ответственности. Например, одна команда может делать только блок меню, а другая только футер приложения.
- Возможность независимого развертывания. Позволяет командам быть автономнее — отдельно развёртывать разные части приложения.
- Сокращение цикла поставки. Каждая команда быстрее доставляет свой код в Продакшн. Более быстрая сборка и тесты, как нового функционала, так и исправления ошибок.
- Снижение сложности. Отдельные части меньше и легче для понимания, чем большой сложный монолит.
- Изоляция ошибок. Проще изолировать сбои в отдельных частях приложения, пока другие части работают. Если в одном сервисе ошибка, то она будет влиять на остальные меньше, чем если бы это был монолит.
С одной стороны микрофронтенды похожи на микросервисы, с другой — есть коренные отличия.
Микросервисы | Микрофронтенды |
---|---|
Очень похожи в разработке | Не похожи в рантайме |
Разные репозитории | Общий DOM |
Разные CI/CD | Общий event loop |
Общая адресная строка | |
Общие globals (window) |
Зрелость методов и технологий гораздо ниже, чем у микросервисов, потому что подход стал использоваться позже, чем в бэкенде. Но некоторые решения всё же появились.