[javascript.ru] Курс по Node.js 2020
Программа
Этот онлайн-курс посвящён профессиональной Node.JS-разработке.
В результате курса вы не только в деталях разберетесь с тем, как работает Node.JS, но и создадите полноценный сервер для SPA, написанного на React.
В процессе разработки мы посмотрим на следующие вещи:
- аутентификация и авторизация (в том числе через социальные сети)
- регистрация (с подтверждением email)
- использование базы данных
- технология Websockets для интерактивности
- конфигурирование, логирование
- unit, а также функциональное и e2e тестирование
Мы будем использовать современные практики разработки, а не те, которые, хоть и широко представлены в интернете, но давно устарели.
Вы получите комплексное понимание, как строить архитектуру для Node.JS, какие задачи и как решать.
Курс можно условно разделить на три части.
- Node.JS, главные 'строительные блоки' разработчика.
- Разработка веб-сервисов на современных технологиях и фреймворках.
- Архитектура сложных приложений, организация проекта.
- Фундаментальный Node.JS
Здесь мы изучим особенности работы Node.JS, его важнейшие модули и приёмы разработки.- Настройка окружения, редакторы кода, инструменты для разработки и отладки.
- Модули: организация приложения.
- Встроенные модули http, path, fs, events и другие.
- Жизнь и смерть Node.JS-процесса, важные особенности работы Event Loop.
- Потоки в Node.JS, частые ошибки при работе с ними.
- Сервер на Node.JS
Создадим веб-сервер на Node.JS, а также разберёмся с асинхронностью.- Создание чат-сервера на Node.JS, частые ошибки.
- Особенности обработки пользовательских запросов в контексте Event Loop.
- Асинхронный код
Изучим способы работы с асинхронным кодом, делающие его простым и удобным.- Промисы (promises)
- Async/Await их особенности в Node.JS.
- Тестирование
Здесь мы изучим основные приемы тестирования кода.- Библиотеки и фреймворки для тестирования: mocha, assert, sinon, nock и другие
- Принципы и примеры unit-тестов
- Особенности и примеры функциональных и e2e тестов
- Другие виды тестирования: нагрузочные, интеграционные и другие
Вторая часть курса
- Современный веб-сервис
- Фреймворк Koa.JS: основы, роутинг.
- Конфигурация через модуль config.
- Koa.JS: структура middleware, готовые middleware – какие внешние модули для чего использовать.
- Работа с базой данных
Мы будем использовать MongoDB, однако изучаемые принципы применимы к другим базам, в частности MySQL, PostgreSQL, Redis и т.п.- База MongoDB, её особенности.
- Объектно-ориентированная работа с MongoDB через Mongoose.
- Полная картина работы с базой: запросы, схемы, валидация, плагины и middleware.
- Авторизация с Passport.JS
- Модель пользователя, регистрация.
- Сессии с Node.JS.
- Passport.JS: сериализация, стратегии, авторизация.
- CSRF-защита от взлома для форм и AJAX.
- Socket.IO
- Вебсокеты.
- Обмен сообщениями при помощи Socket.IO.
- Интеграция Socket.IO с Koa.JS, авторизацией и другими сервисами.
При желании можно дописать к нему новые сервисы, существующая архитектура позволяет это.
Третья часть курса
- Архитектура проекта
В среднем Node.JS-проекте – сотни файлов. Это нормально, и даже вполне удобно, если их правильно организовать.- Архитектура HMVC для Koa.JS.
- Логирование
- Процесс релиза приложения
- Путь от git репозитория до сервера
- Облачные CI/CD (Travis)
- Облачные SaaS платформы (Heroku)
- Деплой тестового приложения