Материал будет включать видеозапись занятий, клон гит-репозитория с примерами разбираемыми на курсе, а также задачник и клон гит-репозитория с задачами и тестами к ним. Программа Этот онлайн-курс посвящён профессиональной 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 тестов Другие виды тестирования: нагрузочные, интеграционные и другие По окончанию первой части курса вы понимаете, как разрабатывать на Node.JS, как делать сервер и правильно обрабатывать запросы, автоматически тестировать свой код. Вторая часть курса Современный веб-сервис Фреймворк 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, авторизацией и другими сервисами. По окончании этой части мы умеем создавать сервер для SPA приложения с веб-сервисами, авторизацией и чатом. При желании можно дописать к нему новые сервисы, существующая архитектура позволяет это. Третья часть курса Архитектура проекта В среднем Node.JS-проекте – сотни файлов. Это нормально, и даже вполне удобно, если их правильно организовать. Архитектура HMVC для Koa.JS. Логирование Процесс релиза приложения Путь от git репозитория до сервера Облачные CI/CD (Travis) Облачные SaaS платформы (Heroku) Деплой тестового приложения После окончания третьей части вы понимаете в деталях весь цикл разработки приложения, не только написания кода, но и процесс релиза, организации логов и запуска на сервере.