lenec ru

Николай Ломов

@nikolay_lomov

с 1 февраля 2026 г.

Подписаться

15 постов 0 подписчиков 0 подписок 0 лайков

Node.js event loop: как работает и почему блокируется — разбор с примерами

Event loop — сердце Node.js. Один поток обрабатывает тысячи соединений, пока каждый callback быстрый. Но стоит одному занять 200 мс — и весь сервер замирает. Разберём фазы цикла, разницу между micro-…

0 19K
Николай Ломов

Node.js + TypeScript: настройка проекта с нуля в 2026 — tsx, paths, ESM

Настроить TypeScript-проект на Node.js в 2026 — задача на 15 минут, если знаешь правильные опции. Но выбор между ESM и CJS, tsx и ts-node, tsc и tsup может запутать. Разберём актуальный стек: ESM по…

0 19K
Николай Ломов

Pino vs Winston в 2026: бенчмарки, настройка и выбор логгера для Node.js

JWT стал стандартом де-факто для аутентификации в SPA и микросервисах. Но простота формата обманчива — за ней скрываются ловушки, которые превращают токен из инструмента безопасности в уязвимость.…

0 10K
Николай Ломов

Node.js Cluster и PM2: масштабирование приложения на все ядра CPU

Если вы строите контентный сайт — блог, документацию, лендинг — и устали от того, что Next.js тащит на клиент сотни килобайт JavaScript ради одной кнопки, пора посмотреть на Astro. Этот фреймворк по…

0 15K
Николай Ломов

PostgreSQL CTE: рекурсивные запросы, материализация и подводные камни

Common Table Expressions (CTE) — один из самых мощных инструментов PostgreSQL для сложных запросов. Но за удобством скрываются нюансы: материализация может убить производительность, рекурсия — уйти в…

0 13K
Николай Ломов

Node.js memory leaks: находим и устраняем утечки памяти в продакшене

Сервис работает неделю, потом начинает тормозить и падает с OOM. Знакомо? Утечки памяти в Node.js коварны: GC не может собрать объекты, на которые кто-то ссылается, даже если вы про них забыли.…

0 19K
Николай Ломов

Python Celery vs arq: выбираем очередь задач для асинхронного бэкенда

Фоновые задачи — неотъемлемая часть любого бэкенда: отправка email, обработка изображений, генерация отчётов. В Python-экосистеме два основных подхода: проверенный временем Celery и минималистичный…

0 11K
Николай Ломов

Node.js graceful shutdown: корректно завершаем сервер в Kubernetes

Деплой новой версии — и часть пользователей получает 502. Kubernetes послал SIGTERM, а сервер оборвал соединения на полуслове. Graceful shutdown — обязательная часть production-ready сервиса:…

0 14K
Николай Ломов

Grafana Alerting: настраиваем оповещения для микросервисов — от PromQL до notification policies

Мониторинг без алертинга — это просто красивые графики. Grafana Alerting превращает PromQL-запросы в автоматические оповещения нужной команде в нужный канал. Разбираем полный путь: от alert rule до…

0 10K
Николай Ломов

Node.js worker_threads: параллелизм для CPU-интенсивных задач

Node.js — однопоточный. Event loop справляется с I/O, но CPU-bound задачи (парсинг JSON, ресайз картинок, криптография) блокируют весь сервер. Модуль worker_threads даёт настоящие потоки с…

0 12K
Николай Ломов

Node.js native fetch и undici: HTTP-клиент без axios в 2026

В 2026 году axios всё ещё стоит в dependencies у миллионов проектов, хотя Node.js давно имеет встроенный HTTP-клиент. Начиная с Node 21 fetch() доступен без флагов, а под капотом работает undici —…

0 10K
Николай Ломов

Node.js diagnostics_channel: встроенная трассировка без внешних библиотек

В Node.js есть встроенный механизм трассировки, о котором мало кто знает — diagnostics_channel. Он появился в Node 16 и позволяет подписываться на внутренние события рантайма без monkey-patching и…

0 10K
Николай Ломов

Go: утечки горутин — как находить и предотвращать в продакшене

Вы написали сервис, он работает в tmux на проде, и вы молитесь, чтобы никто не закрыл сессию. Знакомо? Systemd решает эту проблему: автозапуск, рестарты, изоляция, логи — всё из коробки. Нужен только…

0 12K
Николай Ломов

Docker Buildx Bake: декларативная сборка мульти-образов через HCL/JSON

В типичном монорепозитории с микросервисами CI-пайплайн содержит десятки команд docker build с разными аргументами, платформами и контекстами. Docker Buildx Bake решает эту проблему — один…

0 15K
Николай Ломов

Node.js Streams: обработка больших файлов без утечек памяти

Вызов fs.readFile('data.csv') на файле в 10 GB — гарантированный OOM. Весь файл загружается в память целиком. Streams решают проблему: данные обрабатываются порциями (chunks), и в памяти одновременно…

0 18K
Николай Ломов