Все курсы

Курс по Node.js

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

Программа

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

В результате курса вы не только в деталях разберетесь с тем, как работает Node.JS, но и создадите полноценный сервер для SPA, написанного на React.

В процессе разработки мы посмотрим на следующие вещи:

  • аутентификация и авторизация (в том числе через социальные сети)
  • регистрация (с подтверждением email)
  • использование базы данных
  • технология Websockets для интерактивности
  • конфигурирование, логирование
  • unit, а также функциональное и e2e тестирование

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

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

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

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

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

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

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

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

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

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

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

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

    • Создание чат-сервера на Node.JS, частые ошибки.
    • Особенности обработки пользовательских запросов в контексте Event Loop.
  3. Асинхронный код

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

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

    Здесь мы изучим основные приемы тестирования кода.

    • Библиотеки и фреймворки для тестирования: mocha, assert, sinon, nock и другие
    • Принципы и примеры unit-тестов
    • Особенности и примеры функциональных и e2e тестов
    • Другие виды тестирования: нагрузочные, интеграционные и другие

По окончанию первой части курса вы понимаете, как разрабатывать на 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. Socket.IO

    • Вебсокеты.
    • Обмен сообщениями при помощи Socket.IO.
    • Интеграция Socket.IO с Koa.JS, авторизацией и другими сервисами.
  5. По окончании этой части мы умеем создавать сервер для SPA приложения с веб-сервисами, авторизацией и чатом.

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

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

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

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

    • Архитектура HMVC для Koa.JS.
    • Логирование
  2. Процесс релиза приложения

    • Путь от git репозитория до сервера
    • Облачные CI/CD (Travis)
    • Облачные SaaS платформы (Heroku)
    • Деплой тестового приложения

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

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

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

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

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

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

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

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

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

Гарантия

  • Если объяснения будут вам непонятны
  • Если курсы не дадут вам новых знаний и умений
  • Если вы не сможете подключиться к системе онлайн-обучения

…то вы сможете получить деньги назад.

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

Преподаватели

Photo
Сергей Зеленов

Занимаюсь профессионально разработкой веб-приложений с 2009 года, а с 2013 в основном использую Node.JS.

С 2017 года являюсь главным разработчиком поисковой системы адресов и организаций в компании ReachNow. Система использует Node.JS как основную технологию и обрабатывает более 100 тыс. запросов в минуту, ей пользуются более 1 миллиона человек в месяц по всему миру.

Также занимаюсь разработкой платформы learn.javascript.ru: участвовал в локализации движка, разработке поиска по сайту, а также создал автоматизированную систему проверки задач для разных курсов.

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

Photo
Антон Грядченко

Senior Software Engineer в компании EPAM, основная технология – Node.js. Использую его с разными базами данных (MongoDB, MySQL, PostgerSQL), поиском ElasticSearch, брокерами сообщений (RabbitMQ, Kafka) и другими сервисами.

В частности, делаю систему для мониторинга аналитики по просмотру страниц с последующей агрегацией аналитики (более 500 просмотров в секунду), а также авторизационные сервисы.

Обучаю разработчиков на Node.js последние несколько лет.

Что говорят о курсе участники

Дополнительная информация

  • Для участия в этом курсе необходимо знание JavaScript.

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

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

Комментарии

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