Node.js, Разработка приложений в микросервисной архитектуре с нуля, Попова Ю.Ю., 2024.
Базовая книга по построению микросервисной архитектуры с практическими примерами на Node.js. Также рассмотрена работа с оркестратором Kubernetes и контейнерами Docker в среде Docker Compose. Разобраны основные принципы и техники разработки распределенных систем, в частности показано, как написать и развернуть три микросервиса, управлять СУБД, настроить брокер сообщений Kafka, внедрить кеш Redis. Объяснены паттерны проектирования. Особое внимание уделено распределенным транзакциям и разворачиванию микросервисов на удаленном сервере. Показано, как обеспечить расширяемость и отказоустойчивость приложений, как успешно бороться с усложнением клиентских интерфейсов, поддерживая высокую скорость загрузки страниц и приложений и не забывая о том, чтобы сайт оставался красивым и удобным в использовании.
Электронный архив на сайте издательства содержит дополнительные материалы к книге.

Выбор фреймворка: NestJS или Express.js?
Express долгое время оставался самым популярным и используемым фреймворком на Node.js. Главная задача, которую решает Express,— упрощение работы с маршрутами и в целом со всем, что связано с обработкой запросов и ошибок. Появился он в 2010 году, когда TypeScript еще не существовал, а стандартом языка считался ES5. Для контекста правильным будет сказать все же пару слов и о ES5. Сейчас код, соответствующий тому времени, уже очень редко встретишь,— разве что в совсем не обновляющихся проектах.
JavaScript, каким мы знаем его сейчас, начинается с ES6, или ES2015,— до этого момента писать поддерживаемый код было, мягко говоря, сложно. Если вы углублялись в тему «async/await» и промисов, вы наверняка слышали о такой проблеме, как «hell callback» — ад обратных вызовов. То есть, чтобы работать с асинхронностью, приходилось писать ужасные функции обратного вызова. В тот момент представить на JavaScript какой-либо бэкенд было трудно, а про большие проекты с долгой поддержкой и говорить не стоило. И это была не столько проблема языка, сколько проблема синтаксиса.
ОГЛАВЛЕНИЕ.
Введение.
Для кого эта книга?.
Обзор Node.js.
Выбор фреймворка: NestJS или Express.js?.
Сравнение монолитной и микросервисной архитектуры.
Список литераторы и источников.
Глава 1. Разработка первого микросервиса (User).
Настройка локального окружения.
Редактор кода и плагины.
Node.js и пакетные менеджеры.
NVM.
Установка NestJS.
Git. Codestyle.
Docker и Docker-Compose.
Тестирование API.
Вывод.
Создание структуры проекта.
Подключение необходимых библиотек.
Переменные окружения.
ORM.
Swagger.
Библиотеки class-transformer и class-validator.
Настройка ESLint.
Проектирование базы данных PostgreSQL.
Что такое «база данных» и какие они бывают?.
Нормализация данных.
Первая нормальная форма (1НФ).
Вторая нормальная форма (2НФ).
Третья нормальная форма (3НФ).
Разработка бизнес-логики и маршрутизации для модуля User.
Тестирование микросервиса.
Список литературы и источников.
Глава 2. Разработка микросервиса авторизации и аутентификации (Auth).
Теоретический обзор способов авторизации и аутентификации.
Аутентификация, идентификация и авторизация.
Аутентификация по паролю.
Аутентификация по сертификатам.
Аутентификация по одноразовым паролям.
Аутентификация по ключам доступа.
Аутентификация по токенам.
Базовые меры предосторожности от возможных уязвимостей.
Переполнение буфера.
Состояние гонки.
Атаки проверки ввода.
Атаки аутентификации.
Атаки авторизации.
Атаки на стороне клиента.
Разработка модуля Auth.
Список литературы и источников.
Глава 3. Способы взаимодействия между микросервисами.
НТТР-протокол.
Модель OSI.
Физический уровень.
Канальный уровень.
Сетевой уровень.
Транспортный уровень.
Сеансовый уровен.
Уровень представления.
Прикладной уровень.
Устройство НТТР-протокола.
Структура НТТР-запроса.
Структура НТТР-ответа.
gRPC.
RabbitMQ.
Apache Kafka.
Redis.
Разработка интеграции сервисов Auth и Account.
Список литературы и источников.
Глава 4. Разработка модуля Transaction.
Проектирование базы данных.
Нормальная форма Бойса — Кодда (НФБК) — частная форма третьей нормальной формы.
Четвертая нормальная форма.
Пятая нормальная форма.
Доменно-ключевая нормальная форма.
Шестая нормальная форма.
Понятия миграций и транзакций в контексте базы данных PostgreSQL.
Миграции.
Индексы.
Транзакции.
ACID.
Параллельные транзакции.
Уровни изоляции транзакций в SQL.
Разработка модуля Transaction.
Интеграция Transaction и Account.
Проблема распределенных транзакций.
Двухфазная фиксация.
Saga.
Реализация паттерна Saga.
Список литературы и источников.
Глава 5. Развертывание микросервисов.
Обертывание микросервисов в docker-контейнеры.
Масштабирование при помощи оркестратора Kubernetes.
Заключение.
Список литературы и источников.
Приложение. Описание электронного архива.
Предметный указатель.
Купить .
Теги: учебник по программированию :: программирование :: Попова :: микросервис :: фреймворк












