раздел 06
Node.js
Event loop, модули, http, fs, crypto. Серверный рантайм без магии.
Начать раздел
Хочу пройти
Не получилось изменить список. Попробуй ещё раз.
Без входа у каждого урока видно начало. Войди, чтобы читать целиком, отмечать пройденное и решать задачи. войти
Уроки раздела
Понятия курса
Понятия разобраны внутри уроков. Нажми на понятие, чтобы открыть урок, где оно объясняется.
Junior
- Базовые концепции Nodepnpm, REPL, CommonJS/ESM, package.json, npx, http, fs, Buffer, crypto, path, cluster.урок 1 · Node.js как платформаопираются: урок 2, урок 4
- Где Node применима, где плохоIO-bound сервисы, BFF, скрипты, инструменты. Слабые стороны: CPU-bound, числодробилки, ML без воркеров. Альтернативы: Bun, Deno.урок 1 · Node.js как платформа
- Глобалы и встроенные API__dirname, __filename, process, Buffer, fetch, URL, globalThis. V8 движок vs API Node.js.урок 1 · Node.js как платформа
- Релизный цикл и LTSCurrent, Active LTS, Maintenance, EOL. Чёткие чётные мажоры идут в LTS, нечётные нет.урок 1 · Node.js как платформа
- REPLRead-Eval-Print Loop, top-level await, .editor, отличия окружения от скрипта.урок 1 · Node.js как платформа
- Single executable applicationsСборка приложения в один бинарник через --experimental-sea-config. Когда полезно, какие ограничения.урок 1 · Node.js как платформа
Middle
- Как Node обрабатывает запросОт net.Server до http/http2, парсинг, IncomingMessage и ServerResponse, keep-alive. Как это оборачивает Express/Fastify.урок 3 · Файлы, процессы, Node-стримы
- Модульная система: CJS vs ESMmodule.exports vs exports, require vs import, node: префикс, у каждого файла свой module, dual packages, Singleton через кеш.урок 2 · Модульная система: CJS, ESM и свой loaderопираются: урок 3
- Наблюдение за файловой системойfs.watch, fs.watchFile, ограничения inotify/FSEvents, почему существует chokidar.урок 3 · Файлы, процессы, Node-стримы
- Реализация системы модулейСвой мини-loader: обёртка в IIFE, module/exports, кэш по абсолютному пути. Сравнение с реальным разрешением Node.урок 2 · Модульная система: CJS, ESM и свой loader
- Синхронные методы fsКогда допустим readFileSync (CLI, конфиги при старте), почему нельзя в обработчике запроса. fs.promises и fs/promises.урок 3 · Файлы, процессы, Node-стримы
- Стратегия ошибок в Nodetry/catch вокруг await, .catch цепочкой, uncaughtException, unhandledRejection, SIGTERM, fast-fail vs graceful.урок 4 · Crypto, ошибки, graceful shutdown
- Хеширование паролей и node:cryptonode:crypto.scrypt и pbkdf2 нативно. bcrypt/argon2 как зависимости. randomBytes, timingSafeEqual.урок 4 · Crypto, ошибки, graceful shutdown
- AbortController в Nodefetch, fs.readFile, setTimeout с signal, http server.close, child_process. Кооперативная отмена.урок 4 · Crypto, ошибки, graceful shutdown
- Adapter в стандартной библиотеке Nodeutil.promisify, util.callbackify, Stream <-> AsyncIterator, EventEmitter <-> events.on, Web Streams <-> Node Streams.урок 3 · Файлы, процессы, Node-стримы
- Buffer, ArrayBuffer, TypedArrayBuffer для бинарных данных, его API, конвертация в строки и обратно. Buffer vs ArrayBuffer/DataView, кодировки.урок 3 · Файлы, процессы, Node-стримы
- child_process и IPCspawn vs exec vs fork vs execFile, IPC-канал, безопасная передача аргументов, stdio inherit/pipe/ipc.урок 3 · Файлы, процессы, Node-стримы
- Error.captureStackTrace и кастомные ошибкиЗачем captureStackTrace, как обрезать фрейм фабрики, паттерн собственных Error-классов с code.урок 4 · Crypto, ошибки, graceful shutdown
- Streams и backpressureReadable/Writable/Duplex/Transform, paused vs flowing, object mode, pipe vs pipeline, ошибки и утечки.урок 3 · Файлы, процессы, Node-стримыопираются: урок 6
Middle+
- Антипаттерны middlewareReference pollution, race и data corruption, abstraction leak, fat controller, high coupling. Что не так с Connect/Koa контрактом.урок 5 · Контекст, middleware-антипаттерны и контракты
- Контракты API в рантаймеzod, valibot, @effect/schema. parse-don't-validate. Где валидировать: на границе процесса.урок 5 · Контекст, middleware-антипаттерны и контракты
- Процесс Node.jsDebugger, conditional breakpoints, perf_hooks, профилирование памяти / event loop, IPC, child process, graceful shutdown.урок 6 · Performance hooks, профайлинг, телеметрия
- Async и многопоточноеStreams (backpressure), EventEmitter, Async Hooks, Worker Threads, Mutex/Semaphore, Atomics, Web Locks API.урок 8 · Cluster, worker pool, HTTP proxy
- AsyncLocalStorage и AsyncResourceХранилище контекста через цепочку async-вызовов. Когда теряется (setImmediate, worker), как чинить через AsyncResource.урок 5 · Контекст, middleware-антипаттерны и контракты
- perf_hooks и профилированиеperformance.mark/measure, monitorEventLoopDelay, --inspect, --prof, 0x flamegraph, clinic.js, heap snapshot.урок 6 · Performance hooks, профайлинг, телеметрия
- Web API в Nodefetch, URL, Headers, Web Crypto, Web Streams, Intl, Blob, FormData. Что общее с браузером, что отличается.урок 7 · Native, WebAssembly, изоляция кода
Senior
- Нативные модули и WASMnapi, node-gyp, WASM. Отладка нативных модулей.урок 7 · Native, WebAssembly, изоляция кода
- Реализация HTTP Proxyhttp.createServer плюс http.request, проксирование headers, обработка CONNECT и Connection: upgrade для WebSocket.урок 8 · Cluster, worker pool, HTTP proxy
- Системное программирование глубжеV8/os модули, изоляция на V8, native OS events. epoll/kqueue/io_uring и когда Node его подхватит.урок 7 · Native, WebAssembly, изоляция кода
- Системное программирование: базисКомпилятор vs линковщик vs интерпретатор. node-gyp. Нативные модули.урок 7 · Native, WebAssembly, изоляция кода
- cluster и worker poolcluster pre-fork, round-robin vs IP sticky. worker_threads, MessageChannel, Transferable, SharedArrayBuffer.урок 8 · Cluster, worker pool, HTTP proxy
- Permissions API--experimental-permission, --allow-fs-read/write/--allow-child-process/--allow-worker. Минимизация прав процесса.урок 7 · Native, WebAssembly, изоляция кода
- vm и изоляцияvm.runInContext, его ограничения, isolated-vm как настоящий sandbox. Защита global, freeze prototype.урок 7 · Native, WebAssembly, изоляция кода