Продолжительность
21 ч 32 мин 39 сек
Количество уроков
11 Видео
Дата добавления
24.12.2018
Дата обновления
09.01.2019
Курс для тех, кто ранее не разрабатывал на Node.JS или хочет получить хороший level-up в этой технологии. Этот курс посвящён профессиональной Node.JS-разработке. В результате курса вы создадите реальный проект и, главное, хорошо разберётесь в Node.JS. Мы будем использовать современные практики разработки, а не те, которые, хоть и широко представлены в интернете, но давно устарели. Вы получите комплексное понимание, как строить архитектуру для Node.JS, какие задачи и как решать.
Курс можно условно разделить на три части.
Node.JS, главные "строительные блоки" разработчика.
Разработка веб-сервисов на современных технологиях и фреймворках.
Архитектура сложных приложений, организация проекта.
Первая часть курса
- Фундаментальный Node.JS
Здесь мы изучим особенности работы Node.JS, его важнейшие модули и приёмы разработки.- Настройка окружения, редактора, инструменты для разработки и отладки.
- Модули: организация, подключение.
- Встроенные модули http, path, fs, events и другие.
- Все стадии жизни Node.JS-процесса, важные для разработчика.
- Потоки в Node.JS, частые ошибки при работе с ними.
- Сервер на Node.JS
Создадим код и тесты для веб-сервера на Node.JS, а также разберёмся с асинхронностью.- Создание чат-сервера на Node.JS, частые ошибки.
- Тестирование с использованием mocha, supertest и других фреймворков.
- Асинхронный код
Изучим способы работы с асинхронным кодом, делающие его простым и удобным.- Асинхронность через callback'и, модуль async (old school).
- Promises, Iterators, Generators, их особенности в Node.JS
- Объединение Promises + Generators, "плоский" асинхронный код через библиотеку "co".
По окончанию первой части курса вы понимаете, как разрабатывать на Node.JS, как делать сервер и правильно обрабатывать запросы, автоматически тестировать свой код.
Вторая часть курса
- Работа с базой данных
Мы будем использовать MongoDB, однако изучаемые принципы применимы к другим базам, в частности MySQL, PostgreSQL, Redis и т.п.- База MongoDB, её особенности.
- Объектно-ориентированная работа с MongoDB через Mongoose.
- Полная картина работы с базой: запросы, схемы, валидация, плагины и middleware.
- Современный веб-сервис
- Фреймворк Koa.JS: основы, роутинг.
- Конфигурация через модуль config.
- Koa.JS: структура middleware, готовые middleware – какие внешние модули для чего использовать.
- CLS и его грамотное использование для получения текущего запроса в любом модуле.
- Правильное логирование и обработка ошибок.
- Улучшенное тестирование, загрузка фикстур.
- Gulp для запуска задач
- Типы задач gulp, написание своих задач.
- Запуск сервера, загрузка фикстур и тестирование через gulp
- Авторизация с Passport.JS
- Модель пользователя, регистрация.
- Сессии с Node.JS.
- Passport.JS: сериализация, стратегии, авторизация.
- CSRF-защита от взлома для форм и AJAX.
- COMET при помощи Socket.IO
- Вебсокеты.
- Обмен сообщениями при помощи Socket.IO.
- Интеграция Socket.IO с Koa.JS, авторизацией и другими сервисами.
- По окончании этой части мы умеем создавать сервер со страницами, веб-сервисами, авторизацией и чатом.
При желании можно дописать к нему новые сервисы и страницы, существующая архитектура позволяет это.
Третья часть курса
- Архитектура проекта
В среднем Node.JS-проекте – сотни файлов. Это нормально, и даже вполне удобно, если их правильно организовать.- Архитектура HMVC для Koa.JS.
- Организация шаблонов, тестов, клиентских скриптов.
- Выкладка Production
- Организация git-репозитария и модулей.
- Запуск с кластеризацией на все ядра процессора через PM2.
- Обзор методов deployment'а.
После окончания третьей части вы понимаете, как разрабатывается современный Node.JS-проект и можете производить такую разработку самостоятельно.
Примечание: будет интересно также тем, кто уже просматривал такой же курс ранее. Курс на 50% опирается на вопросы участников, поэтому в разных группах могут быть рассмотрены разные нюансы разработки.