Пер. с англ. С. Черников. — Астана: Спринт Бук, 2025. — 304 с.: ил. — ISBN: 978-601-08-4356-1.
Раскройте потенциал паттернов проектирования JavaScript. Найдите структурированные решения распространенных задач разработки, пригодные для многократного использования и повышающие масштабируемость, производительность и удобство сопровождения кода. Узнайте, как применение этих паттернов позволяет создавать более чистый и понятный код, способствует организации совместной работы в команде, сокращает количество ошибок и экономит время и силы.
Автор дает исчерпывающее представление о паттернах проектирования в современном JavaScript (ES6+) и приводит практические примеры их применения. Сначала вы познакомитесь с порождающими, структурными и поведенческими паттернами проектирования в идиоматическом для JavaScript стиле, а затем переключитесь на архитектурные паттерны и паттерны пользовательского интерфейса. Вы узнаете, как применять паттерны, характерные для таких библиотек, как React, и распространять их на фронтенд и микрофронтенд. В последней части книги представлены и проиллюстрированы паттерны улучшения производительности и безопасности, включая обмен сообщениями, события и стратегии загрузки ресурсов, а также паттерны высокопроизводительных асинхронных вычислений.
В издании приводятся примеры использования React и Next.js, а также JavaScript и Web API. Они помогут выбрать и внедрить проверенные паттерны проектирования в различных веб-экосистемах и изменить ваш подход к разработке.
Для кого эта книгаИздание предназначено для разработчиков и архитекторов программного обеспечения (ПО), которые хотят использовать JavaScript и веб-платформу для повышения продуктивности, качества ПО и производительности своих приложений.
Знакомство с паттернами проектирования программного обеспечения будет преимуществом, но не является обязательным.
Вот три основные проблемы, с которыми сталкиваются разработчики и архитекторы:они знакомы с концепциями программирования, но не знают, как эффективно реализовать их на JavaScript;
им требуется структурировать код JavaScript и приложения таким образом, чтобы их можно было поддерживать и расширять;
они хотят обеспечить бо́льшую производительность для пользователей своих JavaScript-приложений
Структура издания«Работа с порождающими паттернами проектирования» говорится о порождающих паттернах проектирования, которые помогают организовать создание объектов. Мы рассмотрим реализацию паттернов Прототип (Prototype), Одиночка (Singleton) и Фабрика (Factory) в JavaScript.
«Реализация структурных паттернов проектирования» рассматриваются структурные паттерны проектирования, помогающие выстроить связи между сущностями. Мы реализуем паттерны Заместитель (Proxy), Декоратор (Decorator), Приспособленец (Flyweight) и Адаптер (Adapter) в JavaScript.
«Использование поведенческих паттернов проектирования», посвящена поведенческим паттернам проектирования, которые служат для организации взаимодействия между объектами. Мы узнаем о паттернах Наблюдатель (Observer), Состояние (State), Стратегия (Strategy) и Посетитель (Visitor) в JavaScript.
«Изучение паттернов библиотек реактивных представлений» рассматриваются библиотеки реактивных представлений, такие как React. С этими библиотеками появляются новые паттерны для изучения, внедрения и сравнения.
«Стратегии рендеринга и гидратации страниц» говорится об оптимизации производительности страниц, что в наше время является одной из главных задач. Это важно как для повышения конверсии клиентов на странице, так и для поисковой оптимизации, поскольку поисковые системы, такие как Google, учитывают основные показатели сайта.
«Микрофронтенды, зоны и островные архитектуры», посвящена микрофронтендам. Подобно движению микросервисов на уровне сервисов, микрофронтенды предназначены для разделения большой площади на более мелкие фрагменты, которые можно быстрее обрабатывать и доставлять.
«Паттерны производительности асинхронного программирования» говорится об однопоточной модели параллелизма JavaScript, основанной на циклах событий. Она является одной из его самых сильных сторон, но часто неправильно понимается или недостаточно используется в ситуациях, когда важна производительность. Написание асинхронного кода на JavaScript с высокой производительностью и расширяемостью — ключевой момент в обеспечении бесперебойной работы пользователей при масштабировании системы.
«Паттерны событийно-ориентированного программирования» говорится, что событийно-ориентированное программирование на JavaScript имеет первостепенное значение для приложений, чувствительных к безопасности, поскольку это способ передачи информации из различных веб-контекстов и в них. Приложения, ориентированные на события, часто можно оптимизировать для повышения производительности и масштабируемости.
«Максимизация производительности — отложенная загрузка и разделение кода» рассказывается о том, как для достижения максимальной производительности JavaScript-приложения сократить количество загружаемого и интерпретируемого неиспользуемого кода JavaScript. Приемы, которые можно использовать для решения этой проблемы, называются отложенной загрузкой и разделением кода.
«Стратегии загрузки активов и выполнение кода вне основного потока», рассматривается, как в жизненном цикле приложения возникают ситуации, когда загрузка большего количества кода JavaScript или активов неизбежна. Вы узнаете об оптимизации загрузки активов в конкретном случае JavaScript, а также других веб-ресурсов и, наконец, о том, как выполнять JavaScript вне основного потока браузера.