Node Js практический курс
Содержание курса:
- Node.js Введение в технологию, обзор API, основные идеи: за счет чего реализована экономия памяти, cpu, I/O
- Системы модулей CJS (
CommonJS) and ESM (ECMAScrip modules), особенности в Node.js, зависимости и пакетыnpm - Асинхронное программирование:
event loop,async hooks,race condition,callbacks,async/await,thenable,promises - Параллельное программирование:
threads,semaphore,mutex,spin locks,Atomics,SharedArrayBuffer, Web Locks API - Реактивное программирование:
Observer,EventEmitter,RxJS, асинхронные и конкурентные очереди,async collectors - Изоляция кода и данных в Node.js:
vm,v8, защитаglobal, контекстов, модулей и прототипов от патчинга - Работа с файлами:
fs,Buffer,Stream,pipe,backpressure, Web streams API, наблюдение за файловой системой - Структура и архитектура проекта, слои,
DDD,Clean architecture, связанность и связность кода, протекание абстракций - Принципы
GRASPиSOLIDвJavaScriptс адаптацией для Node.js,IoC(инверсия управления) иDI(внедрение зависимостей) - Сетевые протоколы:
HTTP(S),HTTP2,TCP,UDP,TLS,Websocket,SSE,HTTP/3(QUIC) - Принципы взаимодействия систем:
REST,RPC,Pipeline,Event-bus,Event-broker, клиент-сервер,peer-to-peer - API на принципах транспорт-агностик и фреймворк-агностик, контракты, реализация сессий и сервиса аутентификации
- Приложения, приближенные к реальному времени, интерактивность и коллаборативные приложения на вебсокетах
- Распространенные паттерны и антипаттерны в приложениях на Node.js
- Распределенные системы, высоконагруженные системы, балансировка нагрузки, кластеризация и масштабирование, IP sticky
- Вопросы безопасности:
DoS,XSS,Path traversal,CSRF,SQL-инъекции - Работа с базами данных, слой доступа к данным, описание структуры данных, доступ к данным,
postgres,redis,in-memory - Сравнение подходов
domain in the middle,ORM,active record,repository,data mapper, схемы данных,query builder - Утечки памяти и ресурсов, количественная оценка надежности, устойчивости, доступности, гибкости, качества
- Инфраструктура и инструментарий: логирование, тестирование, линтеры, отладка, CI/CD, встроенный testing framework
Performance hooks, телеметрия ресурсов и оптимизация: I/O bound, CPU bound, memory bound, профилированиеGraceful shutdownв Node.js, работа с ошибками и исключениями,unhandled exceptions,stack trace- Встроенная криптография в Node.js (
openssl),addons,plugins,Node-API(ранееN-API),WASI(Webassembly) Serverlessи облачныеFaaSрешения на базе Node.js- Практическое использование интроспекции, рефлекcии и скаффолдинга