Книга подробно рассказывает о методах разработки и масштабирования фронтендов веб-приложений с использованием архитектуры, схожей по идеологии с микросервисами. Освещены все аспекты внедрения микрофронтендов, начиная с этапа проектирования и заканчивая организацией команд для миграции существующих или новых проектов на микрофронтенды. Приводятся примеры внедрения микрофронтендов на практике, показаны доступные архитектуры, стратегии автоматизации, описаны шаблоны для интеграции архитектур микрофронтендов с использованием микросервисов или монолитного API.
Для системных архитекторов, разработчиков и руководителей ИТ-проектов
Создание микрофронтендов» — один из тех редких примеров, когда все самые важные аспекты для успешного применения технической идеи на практике собраны в одной книге.
Алессандро Чинелли, руководитель департамента разработки
Если вы — технический руководитель или программист, ищущий исчерпывающее руководство по разработке и внедрению микрофронтендов в организации, то Лука Меццалира написал эту книгу специально для вас.
Йенс Оливер Мейерт, руководитель проектов и автор сайта meiert.com
МАСШТАБИРОВАНИЕ КОМАНД И ПРОЕКТОВ, РАСШИРЕНИЕ ВОЗМОЖНОСТЕЙ РАЗРАБОТЧИКОВ
Микрофронтенды — ответ на растущую сложность современных веб-приложений. Основанный на модели микросервисов, этот подход позволяет дробить интерфейсы на отдельные функции, реализуемые разными командами разработчиков. Данная книга рассказывает программным архитекторам, техническим руководителям и разработчикам, как создавать и развертывать интерфейсы веб-приложений атомарно, в противовес традиционной монолитной архитектуре.
Вы узнаете, как микрофронтенды позволят вашей команде выбирать разные библиотеки и фреймворки, что придает разработке техническую гибкость и позволяет нанимать талантливых специалистов разного профиля. Микрофронтенды также открывают возможность более эффективно использовать возможности распределенных и удаленных команд разработчиков.
- Изучите доступные архитектуры разработки фронтендов
- Узнайте, как принципы микросервисов применяются к разработке фронтендов
- Освойте четыре столпа для создания успешной программной архитектуры
- Изучите преимущества и подводные камни существующих архитектур микрофронтендов
- Освойте принципы и лучшие практики для создания успешных стратегий автоматизации
- Откройте для себя шаблоны для интеграции архитектур микрофронтендов с использованием микросервисов или монолитного API
Книгу “Создание микрофронтендов” можно купить со скидкой в интернет-магазине издательства “БХВ“.
Об авторе. 11
Предисловие. 13
Введение. 15
Почему я написал эту книгу. 15
Для кого эта книга. 16
Как устроена книга. 16
Условные обозначения и соглашения. 18
Благодарности. 18
ГЛАВА 1. Виды фронтендов. 21
Микрофронтенд-приложения. 21
Одностраничные приложения. 23
Изоморфные приложения. 25
Статические сайты.. 27
Jamstack. 27
Резюме. 28
ГЛАВА 2. Принципы микрофронтендов. 29
От монолита к микросервисам.. 30
Переход на микросервисы.. 32
Введение в микрофронтенды.. 33
Принципы работы микросервисов. 35
Разделение на домены.. 36
Культура автоматизации. 36
Скрытые детали реализации. 36
Децентрализованное управление. 36
Независимое развертывание. 36
Изоляция сбоев. 37
Хорошая наблюдаемость. 37
Применение принципов к микрофронтендам.. 37
Разделение на домены.. 37
Культура автоматизации. 38
Сокрытие деталей реализации. 38
Децентрализованное управление. 38
Независимое развертывание. 38
Изоляция сбоев. 39
Хорошая наблюдаемость. 39
Микрофронтенды не универсальное решение. 39
Резюме. 40
ГЛАВА 3. Микрофронтенд-архитектуры и связанные с ними трудности. 41
Структура принятия решений. 41
Определение микрофронтендов. 42
Предметно-ориентированный подход к микрофронтендам.. 43
Как определить ограниченный контекст. 45
Композиция микрофронтендов. 46
Маршрутизация для микрофронтендов. 48
Взаимодействие между микрофронтендами. 50
Микрофронтенды на практике. 53
Zalando. 53
HelloFresh. 53
Allegro Tech. 53
Spotify. 54
SAP. 55
OpenTable. 55
DAZN.. 55
Резюме. 56
ГЛАВА 4. Типы микрофронтенд-архитектуры.. 57
Структура принятия решений в действии. 57
Вертикальное разделение. 58
Горизонтальное разделение. 59
Анализ архитектуры.. 61
Архитектура и компромиссы.. 62
Архитектуры с вертикальным разделением.. 63
Оболочка приложения. 63
Сложности. 65
Реализация системы проектирования. 72
Простота и скорость разработки. 75
SEO-оптимизация. 75
Производительность и микрофронтенды.. 76
Доступные фреймворки. 79
Примеры применения. 80
Характеристики архитектуры.. 81
Архитектуры с горизонтальным разделением.. 83
На стороне клиента. 84
Сложности. 87
SEO-оптимизация. 94
Простота и скорость разработки. 95
Примеры применения. 96
Module Federation. 97
Iframe. 103
Веб-компоненты.. 110
На стороне сервера. 114
На границе сети. 124
Резюме. 128
ГЛАВА 5. Техническая реализация микрофронтендов. 129
Проект. 129
Введение в Module Federation. 132
Техническая реализация. 134
Структура проекта. 134
Оболочка приложения. 136
Микрофронтенд аутентификации. 142
Микрофронтенд каталога. 144
Микрофронтенд управления аккаунтами. 146
Развитие проекта. 150
Внедрение традиционного приложения. 150
Разработка интерфейса оформления заказа. 152
Реализация динамических удаленных контейнеров. 154
Зависимость от webpack. 154
Резюме. 155
ГЛАВА 6. Создание и развертывание микрофронтендов. 157
Принципы автоматизации. 158
Быстрая обратная связь. 159
Частые итерации. 160
Поддержка команд. 161
Установка ограничений. 161
Разработка стратегии тестирования. 162
Простота и скорость разработки. 162
Горизонтальное и вертикальное разделение. 163
Шаблоны микрофронтендов. 164
Стратегия деления на среды.. 165
Контроль версий. 165
Монорепозиторий. 165
Несколько репозиториев. 169
Возможное будущее для системы контроля версий. 172
Стратегии непрерывной интеграции. 173
Тестирование микрофронтендов. 174
Функции проверки соответствия. 178
Операции, специфические для микрофронтендов. 180
Стратегии развертывания. 181
Сине-зеленое развертывание и канареечные релизы.. 181
Паттерн “душитель”. 184
Наблюдаемость. 186
Резюме. 187
ГЛАВА 7. Конвейер автоматизации для микрофронтендов:
практический пример. 189
Подготовка. 189
Контроль версий. 191
Инициализация конвейера. 192
Проверка качества кода. 193
Сборка. 194
Проверка после сборки. 195
Развертывание. 197
Итоги по стратегии автоматизации. 197
Резюме. 198
ГЛАВА 8. Бэкенд-архитектуры, совместимые с микрофронтендами. 199
Интеграция API и микрофронтенды.. 199
Работа со словарем сервисов. 201
Работа со шлюзом API 208
Работа с паттерном BFF. 213
Использование GraphQL с микрофронтендами. 218
Рекомендации. 222
Резюме. 226
ГЛАВА 9. Миграция с монолита на микрофронтенды: практический пример 227
Контекст. 228
Стек технологий. 228
Взаимодействие пользователя с платформой. 229
Технические цели. 232
Стратегия миграции. 233
Структура принятия решений в действии. 233
Разделение одностраничного приложения на несколько поддоменов. 237
Выбор технологий. 240
Детали реализации. 244
Задачи оболочки приложения. 244
Инициализация приложения. 244
Связь для обмена данными. 245
Интеграция бэкенда. 247
Интеграция аутентификации в микрофронтенды.. 247
Управление зависимостями. 250
Интеграция дизайна. 251
Общие компоненты.. 252
Реализация канареечных релизов. 253
Локализация. 255
Резюме. 256
ГЛАВА 10. Внедрение микрофронтендов в организации. 259
Зачем нам микрофронтенды?. 259
Связь между организациями и программной архитектурой. 260
Как комитеты изобретают новое?. 261
Команды по функциям и команды по компонентам.. 264
Реализация системы управления для потоков коммуникации. 267
Запрос комментариев. 267
Реестр архитектурных решений. 268
Совершенствование потоков коммуникации. 270
Работай, начиная с конца. 270
Сообщество практиков и общие собрания. 271
Управление внешними зависимостями. 272
Децентрализованная организация. 274
Децентрализация и микрофронтенды.. 276
Резюме. 278
ПРИЛОЖЕНИЕ. Что сами разработчики и архитекторы думают
о микрофронтендах. 279
Предметный указатель. 317
-
Создание микрофронтендов
930 ₽
725 ₽
Лука Меццалира — вице-президент по архитектуре в облачном стриминговом сервисе DAZN с более чем 15-летним опытом работы, архитектор решений на платформе AWS, всемирно известный спикер и автор. На протяжении последних 18 лет занимается созданием фронтендов для облачных приложений и сервисов, работал над передовыми проектами для мобильных, настольных и веб-приложений, телевизоров, приставок и встраиваемых устройств. В свободное время пишет для национальных и международных технических журналов, также является рецензентом в издательствах APress, Packt Publishing, Pragmatic Bookshelf и O’Reilly.