Курс по Node.JS

Курс для тех, кто ранее не разрабатывал на Node.JS или хочет получить хороший level-up в этой технологии.

Программа

Этот онлайн-курс посвящён профессиональной Node.JS-разработке.

В результате курса вы создадите реальный проект и, главное, хорошо разберётесь в Node.JS.

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

Мы будем использовать современные практики разработки, а не те, которые, хоть и широко представлены в интернете, но давно устарели.

Вы получите комплексное понимание, как строить архитектуру для Node.JS, какие задачи и как решать.

Курс можно условно разделить на три части.

  1. Node.JS, главные "строительные блоки" разработчика.
  2. Разработка веб-сервисов на современных технологиях и фреймворках.
  3. Архитектура сложных приложений, организация проекта.

Детали программы смотрите далее.

Набор в группы

Количество участников в группе ограничено.

Вы также можете подписаться на уведомления по набору новых групп по этой программе:

На ваш email придёт письмо с информацией о дате и деталях программы.

Основные темы программы

  • Первая часть курса
  • Вторая часть курса
  • Третья часть курса

Первая часть курса

  1. Фундаментальный Node.JS

    Здесь мы изучим особенности работы Node.JS, его важнейшие модули и приёмы разработки.

    • Настройка окружения, редактора, инструменты для разработки и отладки.
    • Модули: организация приложения
    • Встроенные модули http, path, fs, events и другие.
    • Жизнь и смерть Node.JS-процесса, важные особенности работы Event Loop в примерах.
    • Потоки в Node.JS, частые ошибки при работе с ними.
  2. Сервер на Node.JS

    Создадим код и тесты для веб-сервера на Node.JS, а также разберёмся с асинхронностью.

    • Создание чат-сервера на Node.JS, частые ошибки.
    • Тестирование с использованием mocha и других фреймворков.
  3. Асинхронный код

    Изучим способы работы с асинхронным кодом, делающие его простым и удобным.

    • Промисы (promises)
    • Async/Await их особенности в Node.JS.

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

Вторая часть курса

  1. Современный веб-сервис
    • Фреймворк Koa.JS: основы, роутинг.
    • Конфигурация через модуль config.
    • Koa.JS: структура middleware, готовые middleware – какие внешние модули для чего использовать.
  2. Работа с базой данных

    Мы будем использовать MongoDB, однако изучаемые принципы применимы к другим базам, в частности MySQL, PostgreSQL, Redis и т.п.

    • База MongoDB, её особенности.
    • Объектно-ориентированная работа с MongoDB через Mongoose.
    • Полная картина работы с базой: запросы, схемы, валидация, плагины и middleware.
  3. Авторизация с Passport.JS
    • Модель пользователя, регистрация.
    • Сессии с Node.JS.
    • Passport.JS: сериализация, стратегии, авторизация.
    • CSRF-защита от взлома для форм и AJAX.
  4. Gulp для запуска задач
    • Типы задач gulp, написание своих задач.
    • Запуск сервера, загрузка фикстур и тестирование через gulp
  5. COMET при помощи Socket.IO
    • Вебсокеты.
    • Обмен сообщениями при помощи Socket.IO.
    • Интеграция Socket.IO с Koa.JS, авторизацией и другими сервисами.
  6. По окончании этой части мы умеем создавать сервер со страницами, веб-сервисами, авторизацией и чатом.

    При желании можно дописать к нему новые сервисы и страницы, существующая архитектура позволяет это.

Третья часть курса

  1. Архитектура проекта

    В среднем Node.JS-проекте – сотни файлов. Это нормально, и даже вполне удобно, если их правильно организовать.

    • Архитектура HMVC для Koa.JS.
    • Организация шаблонов, тестов, клиентских скриптов.
  2. Выкладка Production
    • Организация git-репозитария и модулей.
    • Запуск с кластеризацией на все ядра процессора через PM2.
    • Обзор методов deployment'а.

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

Как проходит обучение?

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

Время обучения: месяц, включая собрание на первом занятии, при необходимости курс удлиняется, чтобы освоить всю программу.

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

На следующей встрече мы смотрим, что и как у вас получилось, как сделать лучше. Чтобы получить от курса максимум результата, нужно это что-то делать и показывать. Только тогда вы будете действительно понимать, что и как.

Этот курс требует вашего активного участия, просто смотреть и слушать недостаточно, надо делать.

Результат обучения

  1. Вы хорошо разбираетесь в устройстве Node.JS, разрабатываете и отлаживаете программы на нём.
  2. Вы знаете, как поднять проект малого и среднего размера, чтобы он стабильно работал, не падал, корректно отрабатывал при ошибках.
  3. Вы можете разработать современный веб-сервис на Node.JS с использованием ES2015 и фреймворков.
  4. Успешное прохождение обучения гарантировано в том случае, если вы будете регулярно заниматься и делать домашнее задание.

Системные требования

Windows или Mac поддерживаются полностью.

Под Linux доступно участие онлайн, но для просмотра записей занятий нужен Dual Boot в Win/MacOS.

Для онлайн-общения желателен интернет от 256kb/s.

Комментарии

перед тем как писать…
  • Приветствуются комментарии, содержащие дополнения и вопросы по статье, и ответы на них.
  • Для одной строки кода используйте тег <code>, для нескольких строк кода — тег <pre>, если больше 10 строк — ссылку на песочницу (plnkr, JSBin, codepen…)
  • Если что-то непонятно в статье — пишите, что именно и с какого места.