Robot
Складчик
- #1
[НТМL Academy] Node.js и Nest.js. Микросервисная архитектура
- Ссылка на картинку
14 марта — 15 мая 2023
Курс разработан для тех, кто хочет сменить профессию и стать высокооплачиваемым профессионалом. Он подойдёт для работающих людей, у которых мало времени.
Программа курса
Раздел 1
Введение в микросервисы
Знакомимся с микросервисной архитектурой. Узнаем о плюсах и минусах микросервисов. Разберёмся, когда выгодно применять микросервисы, а в каких случаях оставаться на монолите. Обсудим стратегии декомпозиции и разобьём приложение на отдельные сервисы. Обсудим способы взаимодействия между сервисами.
Организационные вопросы.
Обзор личных проектов.
Схема работы на курсе.
Репозиторий демо-проекта.
Монорепозитории.
Проектирование микросервисов.
Стратегия декомпозиции приложения.
Практика
Подготовка рабочего окружения.
Декомпозиция функциональности приложения.
Подготовка диаграммы архитектуры приложения.
Подготовка монорепозитория с помощью NX.
Раздел 2
Введение в Nest
Знакомимся с фреймворком Nest. Обсуждаем архитектуру и его особенности. Учимся применять CLI для автоматизации рутинных операций и генерации шаблонного кода. Знакомимся с базовыми абстракциями Nest: модули, контроллеры, сервисы и провайдеры.
Знакомство с фреймворком Nest.
Когда выгодно применять Nest.
Nest CLI.
Базовые абстракции Nest.
Практика
Модули, контроллеры, провайдеры.
Формирование спецификации в OpenAPI.
Интеграция Nest CLI с NX.
Общие библиотеки в NX.
Имплементация REST API в Nest.
Раздел 3
Nest и базы данных. MongoDB
Разбираемся как интегрировать Mongo с Nest. Описываем модели. Настраиваем сервисы и решаем задачу по сохранению пользователей в базе данных. Знакомимся с паттерном «Репозиторий».
Docker и микросервисы.
Проверка состояния сервисов в контейнерах.
Управление конфигурацией приложения.
Валидация.
Динамические модули.
Пользовательские провайдеры.
Паттерн «Репозиторий».
Практика
Установка MongoDB в Docker.
Взаимодействие с MongoDB из Nest.
Практика управления конфигурацией приложения.
joi, class-validator, class-transform.
Раздел 4
Nest и базы данных. PostgreSQL
Знакомимся с объектно-реляционной системой управления базами данных — PostgreSQL. Осваиваем азы синтаксиса SQL. Проектируем схему базы данных. Знакомимся с PrismaORM для взаимодействия с базой данных.
Реляционные базы данных.
Введение в PostgreSQL.
Когда выгодно применять PostgreSQL.
Язык структурированных запросов (SQL).
Инструменты для взаимодействия с PostgreSQL (pgAdmin, psql).
ORM для Node.js
Практика
Установка PostgreSQL в Docker.
Подключаем PrismaORM к сервису.
Prisma CLI.
Миграции в Prisma ORM.
Проектируем и генерируем модели.
Добавляем связи между таблицами.
Имплементация CRUD.
Prisma ORM: наполнение базы тестовыми данными.
Раздел 5
Валидация и авторизация
Узнаем как реализовать аутентификацию и авторизацию в приложениях Nest на основе JWT. Учимся валидировать данные от клиента. Знакомимся с новыми абстракциями Nest: пайпы (pipes), guards, interceptors. Продолжаем разбираться с Prisma ORM. Учимся ограничивать выборки, создавать постраничную пагинацию, применять сортировки.
Nest и валидация входных данных.
Знакомство с абстракциями: pipes, guards, interceptors.
JWT и Nest.
Ограничение выборки данных.
Практика
Аутентификация и авторизация.
Паттерны DTO, RDO.
Валидация данных от клиента.
Пайпы (декораторы, ValidationPipe).
Пользовательские пайпы.
Prisma ORM. Постраничная пагинация.
Prisma ORM. Фильтрация, сортировки.
Обработка параметров запроса (query string).
Guards, interceptors.
Раздел 6
Взаимодействие между микросервисами. RabbitMQ
Узнаем про разные способы (синхронные и асинхронные) взаимодействия между микросервисами. Обсудим их преимущества и недостатки. Познакомимся с новым инструментом RabbitMQ (брокер сообщений). Научимся взаимодействовать с RabbitMQ из Nest-приложений.
Раздел 7
BFF (Backend For Frontend)
Знакомимся с паттерном BFF (Backend For Frontend). Какие задачи решает паттерн, когда его необходимо применять. Обсуждаем пути к имплементации, подводные камни. Разбираемся как взаимодействовать из Node.js с почтовыми серверами, протоколом SMTP. Реализуем отправку почтовых уведомлений из Nest.
Паттерн Backend For Frontend.
Слой BFF: какие задачи решает.
Инструменты для имплементации паттерна.
Несколько BFF?!
Практика
Дополнительная практика с RabbitMQ.
Разворачиваем в Docker SMTP-сервер для тестирования отправки email.
Рассылка email из Nest.
BFF.
Раздел 8
Деплой
Узнаем как подготовить и запустить приложение на настоящем сервере. Практикуемся работать с Docker. Продолжаем знакомиться с возможностями Nest: Exception Filters, загрузка файлов (на диск и в базу данных). Обсуждаем потенциальные улучшения для проекта. Задаём вектор дальнейшего развития.
Что такое деплой.
Подготовка приложения к деплою.
Публикация приложения (VDS).
Абстракции Nest: Exception Filters, Middleware.
Практика
Деплой приложения.
Exception Filters на практике.
Загрузка файлов.
Раздел 9
Финал
Подведём итоги и обсудим план дальнейшего развития.
Курс разработан для тех, кто хочет сменить профессию и стать высокооплачиваемым профессионалом. Он подойдёт для работающих людей, у которых мало времени.
Программа курса
Раздел 1
Введение в микросервисы
Знакомимся с микросервисной архитектурой. Узнаем о плюсах и минусах микросервисов. Разберёмся, когда выгодно применять микросервисы, а в каких случаях оставаться на монолите. Обсудим стратегии декомпозиции и разобьём приложение на отдельные сервисы. Обсудим способы взаимодействия между сервисами.
Организационные вопросы.
Обзор личных проектов.
Схема работы на курсе.
Репозиторий демо-проекта.
Монорепозитории.
Проектирование микросервисов.
Стратегия декомпозиции приложения.
Практика
Подготовка рабочего окружения.
Декомпозиция функциональности приложения.
Подготовка диаграммы архитектуры приложения.
Подготовка монорепозитория с помощью NX.
Раздел 2
Введение в Nest
Знакомимся с фреймворком Nest. Обсуждаем архитектуру и его особенности. Учимся применять CLI для автоматизации рутинных операций и генерации шаблонного кода. Знакомимся с базовыми абстракциями Nest: модули, контроллеры, сервисы и провайдеры.
Знакомство с фреймворком Nest.
Когда выгодно применять Nest.
Nest CLI.
Базовые абстракции Nest.
Практика
Модули, контроллеры, провайдеры.
Формирование спецификации в OpenAPI.
Интеграция Nest CLI с NX.
Общие библиотеки в NX.
Имплементация REST API в Nest.
Раздел 3
Nest и базы данных. MongoDB
Разбираемся как интегрировать Mongo с Nest. Описываем модели. Настраиваем сервисы и решаем задачу по сохранению пользователей в базе данных. Знакомимся с паттерном «Репозиторий».
Docker и микросервисы.
Проверка состояния сервисов в контейнерах.
Управление конфигурацией приложения.
Валидация.
Динамические модули.
Пользовательские провайдеры.
Паттерн «Репозиторий».
Практика
Установка MongoDB в Docker.
Взаимодействие с MongoDB из Nest.
Практика управления конфигурацией приложения.
joi, class-validator, class-transform.
Раздел 4
Nest и базы данных. PostgreSQL
Знакомимся с объектно-реляционной системой управления базами данных — PostgreSQL. Осваиваем азы синтаксиса SQL. Проектируем схему базы данных. Знакомимся с PrismaORM для взаимодействия с базой данных.
Реляционные базы данных.
Введение в PostgreSQL.
Когда выгодно применять PostgreSQL.
Язык структурированных запросов (SQL).
Инструменты для взаимодействия с PostgreSQL (pgAdmin, psql).
ORM для Node.js
Практика
Установка PostgreSQL в Docker.
Подключаем PrismaORM к сервису.
Prisma CLI.
Миграции в Prisma ORM.
Проектируем и генерируем модели.
Добавляем связи между таблицами.
Имплементация CRUD.
Prisma ORM: наполнение базы тестовыми данными.
Раздел 5
Валидация и авторизация
Узнаем как реализовать аутентификацию и авторизацию в приложениях Nest на основе JWT. Учимся валидировать данные от клиента. Знакомимся с новыми абстракциями Nest: пайпы (pipes), guards, interceptors. Продолжаем разбираться с Prisma ORM. Учимся ограничивать выборки, создавать постраничную пагинацию, применять сортировки.
Nest и валидация входных данных.
Знакомство с абстракциями: pipes, guards, interceptors.
JWT и Nest.
Ограничение выборки данных.
Практика
Аутентификация и авторизация.
Паттерны DTO, RDO.
Валидация данных от клиента.
Пайпы (декораторы, ValidationPipe).
Пользовательские пайпы.
Prisma ORM. Постраничная пагинация.
Prisma ORM. Фильтрация, сортировки.
Обработка параметров запроса (query string).
Guards, interceptors.
Раздел 6
Взаимодействие между микросервисами. RabbitMQ
Узнаем про разные способы (синхронные и асинхронные) взаимодействия между микросервисами. Обсудим их преимущества и недостатки. Познакомимся с новым инструментом RabbitMQ (брокер сообщений). Научимся взаимодействовать с RabbitMQ из Nest-приложений.
Раздел 7
BFF (Backend For Frontend)
Знакомимся с паттерном BFF (Backend For Frontend). Какие задачи решает паттерн, когда его необходимо применять. Обсуждаем пути к имплементации, подводные камни. Разбираемся как взаимодействовать из Node.js с почтовыми серверами, протоколом SMTP. Реализуем отправку почтовых уведомлений из Nest.
Паттерн Backend For Frontend.
Слой BFF: какие задачи решает.
Инструменты для имплементации паттерна.
Несколько BFF?!
Практика
Дополнительная практика с RabbitMQ.
Разворачиваем в Docker SMTP-сервер для тестирования отправки email.
Рассылка email из Nest.
BFF.
Раздел 8
Деплой
Узнаем как подготовить и запустить приложение на настоящем сервере. Практикуемся работать с Docker. Продолжаем знакомиться с возможностями Nest: Exception Filters, загрузка файлов (на диск и в базу данных). Обсуждаем потенциальные улучшения для проекта. Задаём вектор дальнейшего развития.
Что такое деплой.
Подготовка приложения к деплою.
Публикация приложения (VDS).
Абстракции Nest: Exception Filters, Middleware.
Практика
Деплой приложения.
Exception Filters на практике.
Загрузка файлов.
Раздел 9
Финал
Подведём итоги и обсудим план дальнейшего развития.
Зарегистрируйтесь
, чтобы посмотреть скрытый авторский контент.