Скачать 

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

Цена: 495 РУБ
Организатор: Robot
В списке нет видимых участников.
Robot
Robot
Складчик
  • #1

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

Ссылка на картинку
Мы изучим, как писать современные серверные приложения.

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

Программа курса:

Фундаментальный 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: модели, запросы, схемы, валидация и плагины.
    • Создание, сохранение и поиск пользователей в базе.
    • Индексы для быстрого поиска.
    • Валидация, обработка ошибок
Пользователи, авторизация:
  • Принципы безопасного хранения паролей, использование криптографических алгоритмов для генерации хэшей.
  • Регистрация, вход и выход из приложения.
  • Пользовательские сессии (cookie для браузера, jwt для микросервисов).
  • Использование библиотеки passport.js, которая предоставляет готовые модули авторизации. Создание и подключение OAuth 2.0 стратегий на примере социальной сети vkontakte (по желанию можем рассмотреть и другие).
  • Создание серверной части для фронтенд-приложения:

    • Фронтенд-часть на React.js уже написана.
    • Веб-сервисы для авторизации.
Улучшаем приложение:
  • Шаблонизация (модуль pug).
  • Email: отправка, важные нюансы (внешние сервисы, защита от спама, инлайнинг стилей, картинки).
  • Архитектура сложных приложений:
    • Вложенный роутинг
    • Организация файлов и модулей проекта.
  • Интеграционное тестирование: написание скриптов, которые управляют браузером, позволяют автоматически открыть страницу, залогиниться, добавить товар в корзину и оплатить его.
После этого занятия вы умеете создавать сервер для SPA или обычного приложения с веб-сервисами, тестами, авторизацией. При желании можно дописать к нему новые сервисы, архитектура и ваши навыки легко позволяют это.

Чаты, непрерывная подгрузка и обмен данными:

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

Занятие на дополнительные темы, нужные группе:

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

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

Войдите или зарегистрируйтесь, чтобы комментировать и скачивать складчины!

Учетная запись позволит вам участвовать в складчинах и оставлять комментарии

Регистрация

Создайте аккаунт на форуме. Это не сложно!

Вход

Вы уже зарегистрированы? Войдите.

Сверху