Что такое микрофронтенды и когда они оправданы?
- Что такое Module Federation?
Микрофронтенды — разделение интерфейса на части, которые разные команды разрабатывают и выкатывают независимо, а оболочка собирает их в одно приложение (Module Federation, импорт-карты, iframe, серверная композиция). Это организационное решение: оправдано, когда много команд мешают друг другу в одном приложении. Цена — сложность, дублирование зависимостей, единый UX и общий код становятся труднее.
- Для одной-двух команд почти всегда лучше модульный монолит или монорепозиторий
- Общие зависимости (React) — общими, иначе бандл растёт кратно
- Общение частей — через события и URL, а не общий глобальный стейт
А ещё Независимый релиз требует обратной совместимости контрактов между частями
Подробно
Способы композиции:
| способ | плюсы | минусы |
|---|---|---|
| Module Federation | загрузка модулей в рантайме, общие зависимости | связка со сборщиком, версии |
| iframe | полная изоляция | UX, производительность, общение |
| серверная композиция | быстрый первый показ | сложная инфраструктура |
| сборка как пакетов | просто | нет независимого релиза |
Проблемы: согласованный дизайн (нужна дизайн-система), производительность, сквозная авторизация и маршрутизация, отладка проблем на стыках, версии общих библиотек.
Когда да: десятки команд, разные циклы релизов, постепенная миграция legacy-приложения по частям.
Что хотят услышать
- Суть как организационного решения.
- Способы композиции и их цена.
- Когда не нужно.
Проверьте себя
Один верный вариант. Подумайте, потом откройте ответ.
Показать варианты и ответ
- ✗Микрофронтенды всегда ускоряют загрузку страницы и уменьшают объём JavaScript
- ✓Организационное решение: многие команды выкатывают свои части интерфейса независимо
- ✗Их стоит вводить в любом проекте с самого начала, даже если над ним работает одна команда
- ✗Микрофронтенды нужны одной небольшой команде
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.