Опубликовано

Внимание, бестселлер: “Создание микрофронтендов”

Создание микрофронтендов

Книга подробно рассказывает о методах разработки и масштабирования фронтендов веб-приложений с использованием архитектуры, схожей по идеологии с микросервисами. Освещены все аспекты внедрения микрофронтендов, начиная с этапа проектирования и заканчивая организацией команд для миграции существующих или новых проектов на микрофронтенды. Приводятся примеры внедрения микрофронтендов на практике, показаны доступные архитектуры, стратегии автоматизации, описаны шаблоны для интеграции архитектур микрофронтендов с использованием микросервисов или монолитного 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

Лука Меццалира

Лука Меццалира — вице-президент по архитектуре в облачном стриминговом сервисе DAZN с более чем 15-летним опытом работы, архитектор решений на платформе AWS, всемирно известный спикер и автор. На протяжении последних 18 лет занимается созданием фронтендов для облачных приложений и сервисов, работал над передовыми проектами для мобильных, настольных и веб-приложений, телевизоров, приставок и встраиваемых устройств. В свободное время пишет для национальных и международных технических журналов, также является рецензентом в издательствах APress, Packt Publishing, Pragmatic Bookshelf и O’Reilly.