Курс: Node.js - Разработка серверов приложений и API

Курс: Node.js - Разработка серверов приложений и API

Курс: Node.js - Разработка серверов приложений и API


Продолжительность курса: 170 ак. ч.

Описание курса:
На этом курсе вы научитесь делать настоящие проекты, такие же по уровню сложности, как в индустрии. И будете делать их правильно, чтобы после обучения выдавать результат высокого уровня, за который компании готовы платить.

Аудитория:
• Новички, которые выучили основы JavaScript и знают об архитектуре приложений;
• Специалисты из других областей, которые хотят получить хорошую профессию;
• Разработчики из других ИТ-областей, которые хотят освоить инструмент Node.

Необходимая подготовка:
• Уверенное владение JavaScript;
• Знание ES6+;
• Опыт работы фронтенд-разработчиком.

Результат обучения:
Ключевые навыки, которые вы освоите на этом курсе:
• мониторинг ошибок;
• настройка менеджера процессов;
• использование библиотеки Socket.IO;
• основы серверного программирования;
• работа с СУБД PostgreSQL;
• отправление запросов к БД;
• проектирование структуры БД;
• версионирование API;
• работа с EventLoop;
• тестирование приложений;
• логирование событий;
• написание асинхронного кода;
• подключение Express.js;
• проектирование API.

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

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

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

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

Модуль 5. Введение в базы данных. PostgreSQL
Любому приложению требуется где-то хранить данные. Они могут храниться в разных источниках: файлы, базы данных и т.д. Базы данных применяются особенно часто. В этом разделе разберём какие бывают базы данных, чем они отличаются. Научимся проектировать структуру базы данных и познакомимся с языком запросов (SQL).
Базы данных.
• Хранение данных.
• Проектирование схемы базы данных.
PostgreSQL.
• Установка.
• pgAdmin.
• psql.
SQL.
• Выборка данных (SELECT).
• Изменение данных (UPDATE).
• Удаление данных (DELETE).
• Соединение запросов (LEFT JOIN и RIGHT JOIN).
• Объединение результатов запросов (UNION и UNION ALL).
• Ограничение выборки (WHERE).
Практика написания запросов.

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

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

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


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

Характеристики курса

  • Начало: Ведется набор
  • Вендор: JavaScript
  • Код курса: JS13
  • Город: Екатеринбург, Пермь,
  • Направление: JavaScript
  • Академических часов: 170
  • Количество мест: 8
  • Очно: 49900 ₽
  • Дистанционно: 49900 ₽
Записаться на курс

Курсы повышения квалификации
и профессиональной переподготовки


График работы:
Мы отвечаем на звонки и письма в будние дни с 7:00 до 16:00 по Мск

Юридический адрес организации:
614010, г. Пермь, ул. Клары Цеткин, д. 14, офис 32

8 800 (600)-66-16

learning@eshift.ru