Курс по Node.js [learn.javascript.ru] [Сергей Зеленов]

Огромная база актуальных инфопродуктов
Самый большой склад обучающих материалов в СНГ. Более 40000 уникальных курсов, схем заработка, книг, вебинаров, мануалов, тренингов
Получить доступ

Bot

Администратор
Команда форума
23 Янв 2020
138,641
750
113
Курс по Node.js
Курс для тех, кто ранее не разрабатывал на Node.JS или хочет получить хороший level-up в этой технологии.

Спойлер: О курсе
Этот курс посвящён профессиональной серверной разработке на Node.js.
Мы изучим, как писать современные серверные приложения.

Основные темы курса:

  • Фундаментальное понимание Node.js: важные встроенные и сторонние модули, потоки.
  • Работа с базой данных MongoDB (с другими базами она устроена аналогично).
  • Веб-сервисы и обычные страницы для обработки сетевых запросов.
  • Авторизация, в том числе через соц. сети.
  • Непрерывное соединение и общение при помощи Websockets.
  • Тестирование: unit-тесты, функциональное и e2e тестирование.
  • А также ряд других аспектов, которые не так заметны, но тоже важно сделать правильно: конфигурация, логи, обработка ошибок, роутинг и т.п.

Спойлер: Как организовано обучение?
Курс идёт примерно 1.5 месяца.

До начала обучения: вводные материалы:

  • За неделю до курса мы попросим вам посмотреть видео-лекции по основам Node.js. Они довольно простые, чтобы на первом занятии вы уже что-то знали.
  • Мы также будем использовать систему Git/GitHub для обмена исходным кодом, так делает большинство проектов. Для тех, кому это в новинку - дадим крэш-курс и поможем разобраться.
Онлайн-занятия с преподавателем 2 раза в неделю:
  • Занятие проходит в формате вебинара. Запись занятия доступна через 15 минут после окончания. Вы также сохраняете доступ к записям после окончания курса.
Домашние задания, обратная связь по ним:
  • Ваши решения присылаете преподавателю, он проверяет качество кода, использование правильных шаблонов проектирования, даёт обратную связь. К ряду заданий прилагаются тесты, которые частично позволяют проверить правильность решения самому.
Чат:
  • Между занятиями доступен групповой чат для общения и вопросов преподавателю.
Курсовой проект:
  • Делаем курсовой проект: интернет-магазин. Большую часть кода для проекта пишете вы.
Результат:
  • Вы хорошо разбираетесь в устройстве Node.JS, разрабатываете и отлаживаете программы на нём.
  • Вы знаете, как поднять проект малого и среднего размера, чтобы он стабильно работал, не падал, корректно отрабатывал при ошибках.
  • Вы можете разработать современный веб-сервис на Node.JS с использованием самого последнего стандарта JavaScript и фреймворков.
Сертификат:
По окончанию курсов вы получаете сертификат в электронном виде на русском и английском языках.
Хотя сертификатам в нашей профессии обычно не придают значения. Главное - знания и умения, которые вы получите, если будете полноценно участвовать в курсе.

Спойлер: Программа курса
Собрание:
Первая встреча традиционно является собранием. На нём мы знакомимся, проверяем подключение, обсуждаем организационные вопросы, взаимодействие с преподавателем, как учиться на курсе.
Фундаментальный Node.js
Изучим, как устроен Node.js, его внутреннюю архитектуру и основные приёмы разработки.

  • Настройка окружения для разработки.
  • Прием и обработка HTTP-запросов.
  • Организация кода Node.js-приложения: модули в старом (commonjs) и новом (ES modules) синтаксисе.
  • Отладка процесса Node.js: скрипты, утечки памяти.
  • Жизнь и смерть Node.JS-процесса, событийный цикл. Макротаски и микротаски, особенности работы в Node.js.
  • HTTP-сервер, асинхронная модель Node.js.
Потоки данных:
Потоки данных в Node.js используются при приёме и отправке multipart-форм, файлов, больших запросах к базе данных и во многих других ситуациях.
Когда разработчики переходят от обычного JavaScript к Node.js, у них всегда возникают сложности с потоками, поэтому мы уделяем им особое внимание.

  • Потоки для чтения, записи и преобразования данных. Область применения потоков, их правильное использование.
  • Внутреннее устройство потоков: буферизация данных, события, методы управления потоками.
  • Тип данных Buffer для бинарных данных.
  • Передача данных из потока в поток, обработка ошибок в цепочке.
  • Последние изменения и улучшения: потоки в Node.js постоянно меняются, мы даём самую последнюю версию.
Юнит- и функциональное тестирование:
Автоматизированное тестирование используют почти во всех проектах, хотя и в разном объёме. Если его правильно применять, оно делает разработку надёжнее и проще.
  • Типы тестирования, архитектурное устройство тестовых фреймворков, отличия, инструментарий.
  • Написание юнит-тестов при помощи Mocha и Sinon, для тестирования классов и функций.
  • Написание функциональных тестов HTTP-сервера для проверки полного цикла работы.
По окончанию этого занятия вы понимаете, как разрабатывать на Node.js, как делать сервер и правильно обрабатывать запросы, автоматически тестировать свой код.
Серверные фреймворки, Koa.js:
Фреймворки облегчают написание приложений, за счет реализации типичных задач, стоящих перед разработчиком.

  • Принципы устройства широко распространённых фреймворков на Node.js: express.js и koa.js (новое поколение express).
  • Создаём простой сервер на koa.js.
  • Архитектура вложенных middleware, приём проектирования “цепочка обязанностей”.
Реализация основных задач:
  • Обработка запросов, роутинг.
  • Логирование.
  • Обработка ошибок.
  • Чтение больших POST-запросов.
  • Отдача статических файлов.
  • Конфигурация приложения в разных окружениях.
Базы данных:
Базы данных, такие как MongoDB, MySQL, Oracle и другие, хранят все данные нашего приложения: товары, пользователей и так далее, и позволяют быстро искать среди них. Они используются почти во всех современных приложениях, исключая самые простые.
  • NoSQL, используя Mongodb,
  • Поиск по тексту с морфологией на Elasticsearch
[*]Для проекта будем использовать mongodb, поэтому изучим ключевые особенности работы с этой базой.
[*]Создание REST API для работы с пользователями при помощи MongoDB и Koa.js
  • ООП при помощи Mongoose: модели, запросы, схемы, валидация и плагины.
  • Создание, сохранение и поиск пользователей в базе.
  • Индексы для быстрого поиска.
  • Валидация, обработка ошибок

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

  • Фронтенд-часть на React.js уже написана.
  • Веб-сервисы для авторизации.

Улучшаем приложение:
  • Вложенный роутинг
  • Организация файлов и модулей проекта.
[*]Интеграционное тестирование: написание скриптов, которые управляют браузером, позволяют автоматически открыть страницу, залогиниться, добавить товар в корзину и оплатить его.

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

Чаты, непрерывная подгрузка и обмен данными:
Способы поддержки непрерывного соединения с сервером и получения новых данных: нужно для создания чата, онлайн-игр и других интерактивных приложений.

  • Основные приёмы и техники, их плюсы и недостатки, область применения: Long polling, Server Sent Events, Websockets.
  • Используем Websockets (при помощи socket.io) для непрерывных соединений.
  • Единая авторизация, интеграция websocket с приложением.
  • Реконнект, отслеживание состояния соединения.
  • Кластеризация при высоких нагрузках.
Развёртывание и запуск приложения:
На этом занятии мы обсудим важнейшие вопросы, касающиеся запуска и обновлений готового приложения на сервере, в “боевом” окружении.
  • Heroku с github-интеграцией
  • Тестирование с travis-ci
[*]Хранение и использование секретных ключей.

После этого занятия вы понимаете в деталях весь цикл разработки приложения: не только написания кода, но и релиза, организации логов и запуска на сервере.
Занятие на дополнительные темы, нужные группе:
Несмотря на то, что курс является наиболее полным и покрывает все основные темы, касающиеся разработки и запуска веб-приложений на Node.js - всё равно есть темы, которые не вошли в программу курса, но обсудить их хочется.

Это занятие отведено специально для них и строится целиком и полностью на ваших вопросах. Можем обсудить как чисто технические вопросы, например преимущества и недостатки микросервисной архитектуры или отличия протокола REST от GraphQL, так и нетехнические - например, из каких источников можно получать новую информацию.

Спойлер: Курсовой проект
Онлайн-магазин:
  • С товарами в базе данных, сгруппированными по категориям.
  • С возможностью поиска по товарам.
  • С аутентификацией и регистрацией пользователей.
  • С чатом поддержки.
  • А также с отсылкой почты и другим функционалом, важным для реальных проектов.

Спойлер: Предварительные требования
  • Знание JavaScript, включая ООП, классы.
  • Понимание браузерного JavaScript/HTML/CSS (клиентский код писать не понадобится, этот курс про серверный JS).
  • Интернет 256kb/s или быстрее для видео.

Спойлер: Преподаватель
  • Сергей Зеленов. Ведёт курс с 28 июня 2016. Автор программы курса по Node.JS, а также автоматизированного задачника. Занимаюсь профессионально разработкой веб-приложений с 2009 года, а с 2013 в основном использую Node.JS. Являюсь главным разработчиком распределенной системы хранения и обработки больших данных для машинного обучения в режиме реального времени в компании SO1. Также разрабатываю платформу learn.javascript.ru: локализации движка, разработка мультиязычного поиска, а также создал автоматизированную систему проверки задач для разных курсов поверх Github и TravisCI. Основное внимание в обучении уделяю фундаментальным вещам а также тому, как писать архитектурно грамотный, качественный и тестируемый код.

Спойлер: Что говорят о курсе участники?
Мы занимаемся обучением с 2007 года. За это время у нас обучились тысячи разработчиков из разных стран и компаний. Все отзывы являются честными. Мы не модерируем их.

Спойлер: Гарантия
  • Если объяснения будут вам непонятны
  • Если курсы не дадут вам новых знаний и умений
  • Если вы не сможете подключиться к системе онлайн-обучения
…то вы сможете получить деньги назад.
Для этого достаточно не позже окончания первой недели курса написать, что именно вас не устраивает, и тогда ваше участие будет прекращено, а вы получите деньги обратно.

Спойлер: Цена курса
Цена курса составляет 23000₽

Спойлер: Продающий сайт
learn.javascript.ru/courses/nodejs