Node.js. Разработка серверов приложений и API
Научитесь работать с асинхронным кодом, проектировать, тестировать использовать API и базы данных на основе SQL. Курс проходит в асинхронном формате.
Старт курса
Длительность
любое время
2,5 месяца
Интенсивность
15−20 часов в неделю

Чтобы добиться высокого качества обучения, мы используем профессиональную триаду

Критерии

Разрабатываем критерии качества знаний и навыков с компаниями и профессиональным сообществом.

Личный проект

Выполняете проекты, максимально приближенные к проектам, которые будут у вас на работе.

Наставники

Ваши проекты проверяют профессиональные разработчики.

Кому будет полезен курс

Фронтенд-разработчикам

Обучение рассчитано на специалистов, уверенно применяющих JavaScript (ES6+) на практике — например, выпускников курса «JavaScript. Архитектура клиентских приложений»

Тимлидам

Прокачайте сотрудника или команду в проектировании и поддержке веб- серверов, API, баз данных

Чему вы научитесь

Работать с платформой Node.js и ее модулями
Писать асинхронный код и управлять им
Проектировать API c использованием фреймворка Express.js
Логировать, тестировать, отлаживать приложения
Проектировать СУБД с помощью PostgreSQL
В каждом разделе вы будете выполнять задания по учебному проекту. Он уже свёрстан: вы сфокусируетесь на главном — проектировании и программировании.
Разворачивать приложение на боевом сервере

Как устроен курс

Структурированная теория
В начале каждого раздела вы изучаете теорию из текстового учебника и отобранных нами материалов.

Мы не злоупотребляем видео и используем его только там, где оно необходимо.
Спикер не просто рассказывает сухую теорию, но постоянно общается с аудиторией и делится любопытными кейсами из личного опыта.

После каждой темы студенты выполняют задание на пару минут, чтобы сразу отработать знания и задать вопросы.
Практика
После изучения теории выполняете домашнее задание, в котором работаете над своим проектом и закрепляете учебный материал.
Спикер не просто рассказывает сухую теорию, но постоянно общается с аудиторией и делится любопытными кейсами из личного опыта.

После каждой темы студенты выполняют задание на пару минут, чтобы сразу отработать знания и задать вопросы.
Ревью кода
После каждого задания ваш личный наставник проверяет качество работы, делится опытом и рассказывает, как можно сделать лучше.
Спикер не просто рассказывает сухую теорию, но постоянно общается с аудиторией и делится любопытными кейсами из личного опыта.

После каждой темы студенты выполняют задание на пару минут, чтобы сразу отработать знания и задать вопросы.

Программа курса

Раздел 1

Знакомство с платформой

Познакомимся с основами Node.js, настроим редактор кода для отладки и обсудим особенности программирования на стороне сервера. Научимся создавать и запускать приложения в консоли, передавать им параметры. Познакомимся с практической стороной отладки.
Основы Node.js. Модули
Введение в модули
Встроенные модули
Менеджер пакетов npm
Command Line Interface. Отладка приложения
Отладка в редакторе
Отладка в консоли





Раздел 1
Знакомство с платформой
Раздел 2

Асинхронность

Продолжим знакомиться с платформой Node.js. Разберём на практике, как работает Event Loop и асинхронность. Узнаем, как правильно писать и управлять асинхронным кодом. Познакомимся с протоколом HTTP и напишем первый сервер.
Асинхронное программирование
Колбэк-функции
Промисы
Async и Await
Event Loop
Стэк вызовов
Порядок выполнения асинхронного кода
setImmediate, process.nextTick, setTimeout





Протокол HTTP
Знакомство с протоколом
Встроенный модуль http
Разработка первого сервера








Раздел 2
Асинхронность
Раздел 3

Express.js

В этом разделе мы начнём проектировать API. Обсудим теоретическую часть: что следует учитывать во время проектирования, примеры плохого и хорошего API, версионирование API. Затем обсудим, как Node.js может выступать в роли веб-сервера и обрабатывать запросы от клиентов. Подключим фреймворк Express.js и узнаем, как он может упростить задачу разработки API.
Обмен данными с клиентом. Express.js
Создание сервера
Обработка запросов
Маршрутизация
Middleware
Обработка форм
Шаблонизация
Pug
Server Side Rendering





REST API
Методы протокола HTTP
Проектирование API

Раздел 3

Express.js

Раздел 4

Логирование и тестирование

В этом разделе мы поговорим о тестировании приложений на Node.js. Узнаем, что следует тестировать и каковы особенности тестирования приложений, созданных на платформе Node.js. Подготовим окружение для тестирования и попрактикуемся в написании тестов.
Логирование
Какие задачи решает логирование
Pino
Автоматизированное тестирование
Виды автотестов
Unit-тесты
Тестирование REST
Jest




Переменные окружения. Модуль debug


Раздел 4

Логирование и тестирование

Раздел 5

Введение в базы данных. PostgreSQL

Любому приложению требуется где-то хранить данные. Они могут храниться в разных источниках: файлы, базы данных и т.д. Базы данных применяются особенно часто. В этом разделе разберём, какие бывают базы данных и чем они отличаются. Научимся проектировать структуру базы данных и познакомимся с языком запросов SQL.
Базы данных
Хранение данных
Проектирование схемы базы данных
PostgreSQL
Установка
pgAdmin
psql



Практика написания запросов


SQL
Выборка данных (SELECT)
Изменение данных (UPDATE)
Удаление данных (DELETE)
Соединение запросов (LEFT JOIN и RIGHT JOIN)
Объединение результатов запросов (UNION и UNION ALL)
Ограничение выборки (WHERE)






















Раздел 5

Введение в базы данных. PostgreSQL

Раздел 6

PostgreSQL и Node.js

Научимся взаимодействовать с PostgreSQL из Node.js несколькими способами. Начнём с установки соединения с СУБД и отправки запросов на получение/обновление данных из Node.js. Затем обсудим вопросы безопасности (SQL-Injection). А после этого подключим к проекту ORM и посмотрим на работу с базой данных с совершенно новой стороны.
Node.js и PostgreSQL
pg
Пул соединений
Выполнение запросов
Безопасность: SQL-Injection. ORM
Введение в ORM
Sequelize
CRUD
Настройка связей
Hooks
Выполнение SQL-запросов








Раздел 6

PostgreSQL и Node.js

Раздел 7

Аутентификация и авторизация

Разберём термины «аутентификация» и «авторизация». Узнаем, чем они отличаются и на практике рассмотрим реализацию аутентификации в приложении. Научимся валидировать данные, полученные от клиента. Познакомимся с механизмом сессий и JWT (JSON Web Token). Обсудим вопросы безопасности: XSS, CSRF.
Cookies. Безопасность
CORS
XSS
CSRF
Валидация
Аутентификация
Сессии
JWT





Раздел 7
Аутентификация и авторизация
Раздел 8

Реалтайм

Посмотрим на сервер с другой стороны. Узнаем что из себя представляют приложения реального времени и познакомимся с протоколом WebSocket. Добавим в приложение реалтайм и познакомимся с библиотекой Socket.IO
Запуск нескольких Node.js приложений. EventEmitter
Протокол WebSocket
Библиотека Socket.IO
Реалтайм



Раздел 8

Реалтайм

Раздел 9

Деплой. Доставка и запуск приложения на сервере

Разберём вопросы, связанные с доставкой приложения на сервер и запуском в боевой среде. Рассмотрим настройку менеджера процессов, обратного прокси-сервера (Nginx) и мониторинг ошибок. Научимся доставлять приложение на сервер (Heroku, VDS).
Деплой и хостинг
Настройка сервера
Доставка приложения
Dokku
Деплой на VDS


Раздел 9

Деплой. Доставка и запуск приложения на сервере

Менеджер процессов
Деплой на Heroku
Альтернативные фреймворки для Node.js

Ваши наставники — опытные профессионалы, работающие в индустрии

Мы убеждены, что обратную связь ученику должен давать опытный специалист, который прямо сейчас работает на рынке, решает современные задачи, использует актуальные подходы и инструменты. Мы отбираем наставников в три этапа.

Как мы отбираем наставников

1 этап
2 этап
3 этап
После каждого курса мы собираем обратную связь, которая помогает наставникам совершенствоваться.
Проводим собеседование, на котором проверяем знание предметной области и умение объяснять тему.
Проверяем, кем и где кандидат в наставники работал, какой у него опыт, смотрим на его код.

Стоимость обучения

Стандартный курс

5 часов работы с личным наставником
Цена со скидкой
26 400 ₽
Полная цена
32 000 ₽
Бесплатная консультация
Познакомимся, поможем понять, работает ли курс на ваши цели.

Расскажем, как проходит урок и как отвечают наставники.

Ответим на вопросы об оплате.
Оставляя заявку, вы принимаете условия соглашения