Современный курс по Node.js в 2020
Дорогие товарищи инженеры, сообщество Метархия представляет вашему вниманию современный курс по Node.js, который включает глубокий разбор всех возможностей и аспектов платформы. Основной упор делается на то, как создавать надежные высоконагруженные сервера приложений и API без привязки к конкретному фреймворку и даже протоколу, т.е. абстрагировать бизнес-логику в отдельный слой. К лекциям прикреплено множество примеров кода, демонстрирующих гибкую структуру приложений и архитектурные приемы, в том числе работу с СУБД через слой доступа к данным, создание интерактивных приложений на вебсокетах, обеспечение безопасности, Graceful shutdown, межпроцессовое взаимодействие, предотвращение утечек памяти, масштабирование и кластеризацию при помощи процессов и потоков. На текущий момент в курсе 38 лекций (около 35 и ½ часов видео), 37 репозиториев с примерами кода, 4 PDF со слайдами. Перед основной частью курса по Node.js нужно сначала освоить хоть частично курс по асинхронному программированию.
Введение и основы
- Node.js Введение в технологию
-
Node.js в 2019 году
-
Асинхронное программирование в Node.js
- Это только обзорная лекция, ссылка на курс по асинхронному программированию
находится выше, перед оглавлением
- Это только обзорная лекция, ссылка на курс по асинхронному программированию
-
Обзор встроенного Node.js API
- Ссылка на документацию: https://nodejs.org/api/documentation.html
-
Настройка среды: Node.js, npm, git, eslint
- Репозиторий с инстрементами: https://github.com/HowProgrammingWorks/Tools
-
Работа с файлами, буферами и файловыми потоками в Node.js
- Работа с файлами: https://github.com/HowProgrammingWorks/Files
- Файловые потоки: https://github.com/HowProgrammingWorks/Streams
- Буферы: https://github.com/HowProgrammingWorks/Buffers
-
Наблюдение за файловой системой в Node.js
- Файловая система в Node.js: https://github.com/HowProgrammingWorks/Files
- Наблюдение за файлами: https://github.com/HowProgrammingWorks/FilesystemWatch
-
Консоль и командная строка в JavaScript и Node.js
- Примеры кода: https://github.com/HowProgrammingWorks/CommandLine
Структура и архитектуре приложений на Node.js
- Архитектурный подход к программированию
-
Модули, слои, структура проекта, песочницы в JavaScript и Node.js
- Пример проекта: https://github.com/HowProgrammingWorks/Project
- Абстрактные слои: https://github.com/HowProgrammingWorks/AbstractionLayers
- Песочницы: https://github.com/HowProgrammingWorks/Sandboxes
-
Инверсия управления и внедрение зависимостей в Node.js
- Инверсия управления: https://github.com/HowProgrammingWorks/InversionOfControl
- Внедрение зависимостей: https://github.com/HowProgrammingWorks/DependencyInjection
-
Межпроцессовое взаимодействие в Node.js
-
Слои, связанность и связность кода
- Примеры кода: https://github.com/HowProgrammingWorks/Abstractions
Разработка серверов приложений и API на Node.js
-
Клиент-сервер на Node.js TCP и UDP, DNS
- Примеры кода: https://github.com/HowProgrammingWorks/Socket
-
HTTP сервер на Node.js (routing, cluster, IP sticky)
- Примеры кода: https://github.com/HowProgrammingWorks/NodeServer
-
HTTP сессии и cookies на чистом Node.js
- Примеры кода: https://github.com/HowProgrammingWorks/Session
-
HTTP запросы в браузере и Node.js: XMLHttpRequest, fetch
- Примеры кода: https://github.com/HowProgrammingWorks/HttpRequest
-
Разработка API на Node.js (клиент и сервер)
- Примеры кода: https://github.com/HowProgrammingWorks/API
-
WebSocket сервер на Node.js (электронные таблицы и чат)
-
Скаффолдинг для API, UI и данных
- Примеры кода: https://github.com/HowProgrammingWorks/Scaffolding
- Высоконагруженные распределенные приложения на Node.js
-
Отдача статики в Node.js
- Примеры кода и задачи: https://github.com/HowProgrammingWorks/ServeStatic
Работа с базами данных на Node.js
-
Слой доступа к данным, курсор, транзакция
- Примеры кода: https://github.com/HowProgrammingWorks/Transaction
-
Работа с базами данных в Node.js на примере PostgreSQL
- Примеры кода: https://github.com/HowProgrammingWorks/Databases
Лекции по CQRS и Event Sourcing
-
Паттерн Команда (Command) действие и параметры как объект
- Этот паттерн понадобится для следующей лекции
- Примеры кода: https://github.com/HowProgrammingWorks/Command
-
CQS, CQRS, Event Sourcing — Разделение запросов и модификации данных
-
Применение EventSourcing
- См. примеры из предыдущей лекции
-
Модель акторов (Actor Model)
- Примеры кода: https://github.com/HowProgrammingWorks/ActorModel
Управление памятью и параллельное программирование
-
Утечки памяти в Node.js и JavaScript, сборка мусора и профилирование
- Примеры кода: https://github.com/HowProgrammingWorks/MemoryLeaks
-
Atomics, SharedArrayBuffer, worker_threads в Node.js
- Потоки: https://github.com/HowProgrammingWorks/Threads/
- Атомарные операции: https://github.com/HowProgrammingWorks/Atomics/
-
Семафоры и мьютексы в JavaScript и Node.js
-
Разделяемая память в многопоточном Node.js — доклад на конференции JS Fest 2019 Spring
Безопасность, надежность, развертывание и управление инфраструктурой
-
Необработанные ошибки в промисах
- Примеры кода: https://github.com/HowProgrammingWorks/PromiseError
-
Проблема асинхронного стектрейса в JavaScript и Node.js
- Примеры кода: https://github.com/HowProgrammingWorks/StackTrace
-
Логирование на Node.js и JavaScript
- Примеры кода: https://github.com/HowProgrammingWorks/Logging
-
Graceful Shutdown в Node.js
- Примеры кода и задачи: https://github.com/HowProgrammingWorks/GracefulShutdown
-
Безопасность приложений Node.js
-
Serverless Clouds (FaaS) и изоляция контекстов запросов в Node.js