Forwarded from Node.JS [ru] | Серверный JavaScript
Инфраструктурный мониторинг продолжает уходить в сторону глубокой observability — и новый шаг в этом направлении сделала Yandex B2B Tech, запустив платформу Monium. Решение, разработанное командой Yandex Infrastructure, уже доступно для внешних пользователей и изначально создавалось для контроля критичных внутренних сервисов компании.
Если коротко о сути продукта — Monium позволяет видеть состояние системы как целостную картину, а не набор разрозненных метрик. Платформа одновременно обрабатывает телеметрию приложений, инфраструктуры и цифровых сервисов, вне зависимости от их расположения - в облаке или on-prem.
Техническая сторона решения рассчитана на высокие нагрузки: до 3 млрд семплов метрик в секунду, около 44 млн спанов трассировки и порядка 60 ГБ логов ежесекундно. Для инженеров важна поддержка Prometheus и OpenTelemetry, позволяющая встроить систему в существующие DevOps-процессы без жесткой привязки к инструментам.
Среди первых внешних пользователей платформы — ОТП Банк. В целом запуск отражает общий тренд роста рынка observability, который отмечает Gartner.
Если коротко о сути продукта — Monium позволяет видеть состояние системы как целостную картину, а не набор разрозненных метрик. Платформа одновременно обрабатывает телеметрию приложений, инфраструктуры и цифровых сервисов, вне зависимости от их расположения - в облаке или on-prem.
Техническая сторона решения рассчитана на высокие нагрузки: до 3 млрд семплов метрик в секунду, около 44 млн спанов трассировки и порядка 60 ГБ логов ежесекундно. Для инженеров важна поддержка Prometheus и OpenTelemetry, позволяющая встроить систему в существующие DevOps-процессы без жесткой привязки к инструментам.
Среди первых внешних пользователей платформы — ОТП Банк. В целом запуск отражает общий тренд роста рынка observability, который отмечает Gartner.
Ведомости
«Яндекс» запустил платформу для анализа работы ИТ-систем
Подробности читайте на vedomosti.ru
Forwarded from Node.JS [ru] | Серверный JavaScript
Советы по написанию короткого, лаконичного и чистого кода на JavaScript
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Node.JS [ru] | Серверный JavaScript
Файл utils2.js, функция handleData, переменная x. Ты и сам не понимаешь, что это значит.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Node.JS [ru] | Серверный JavaScript
В статье рассматриваются проблемы, которые создают рекурсивные зависимости на фронте. Обсуждаются способы их обнаружения и решения, ведь часто разработчики даже не знают, что в проекте есть циклические зависимости.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Node.JS [ru] | Серверный JavaScript
• Быстрее пули: как найти счастье с PostgreSQL
• Куда движется Laravel? Обзор интервью с Taylor Otwell
• Nexus-IoC — хорошо знакомый незнакомец в мире TypeScript и DI
• Как сделать React Server Components в Electron с помощью Next.js и без открытых портов
• 10 не самых очевидных причин, чтобы уволиться
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Node.JS [ru] | Серверный JavaScript
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from xCode Journal
Исследование Selecty и hh․ru показало: >200 тыс. рублей в месяц получают 51,5% мужчин и только 34,8% женщин. В тестировании этот порог пробивают 60% парней и 45% девушек, а в бэкенде высокие доходы лишь у 26,5% разработчиц.
Почему так? Мужчины чаще забирают руководящие посты и сеньорские грейды.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Node.JS [ru] | Серверный JavaScript
Сегодня мы рассмотрим, как обнаружить и реагировать на изменение атрибутов веб-компонента.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Node.JS [ru] | Серверный JavaScript
Глубокое погружение в V8: что нужно знать Node.js разработчику
Введение в V8
V8 — это высокопроизводительный JavaScript и WebAssembly движок, разработанный Google на
Роль V8 в Node.js
В Node.js V8 отвечает за выполнение JavaScript-кода на сервере. Благодаря V8, Node.js может обрабатывать множество одновременных соединений, используя неблокирующую модель ввода-вывода и событийно-ориентированную архитектуру. (nodejs.org)
Оптимизация производительности с помощью V8
V8 использует JIT-компиляцию для преобразования JavaScript в машинный код во время выполнения, что значительно ускоряет выполнение кода. Также V8 поддерживает современные функции ECMAScript, такие как оператор возведения в степень (
Управление памятью и сборка мусора
V8 оснащен продвинутым сборщиком мусора Orinoco, который автоматически управляет выделением и освобождением памяти. Это снижает вероятность утечек памяти и повышает стабильность приложений, особенно длительно работающих. (arunangshudas.medium.com)
Инструменты мониторинга V8 в Node.js
Node.js предоставляет модуль
Примеры кода:
Базовый пример использования модуля
Практическое использование метода
Типичная ошибка: блокирующая операция, замедляющая выполнение:
Факты:
👉 V8 компилирует JavaScript в машинный код во время выполнения, обеспечивая высокую производительность.
👉 Сборщик мусора Orinoco в V8 автоматически управляет памятью, снижая вероятность утечек.
👉 Node.js предоставляет модуль
❗️Понимание работы V8 критично для эффективной разработки на Node.js. Знание его механизмов компиляции, управления памятью и доступных инструментов позволяет создавать более производительные и стабильные серверные приложения.
Источники
V8 JavaScript engine.
Node.js — The V8 JavaScript Engine.
Node.js v7 has updated V8 to 5.4.
6 Reasons to Use V8 with Node.js for JavaScript.
V8 | Node.js v11.2.0 Documentation.
Введение в V8
V8 — это высокопроизводительный JavaScript и WebAssembly движок, разработанный Google на
C++. Он используется в браузере Chrome и в среде выполнения Node.js. V8 компилирует JavaScript в машинный код, обеспечивая быструю и эффективную работу приложений. (v8.dev)Роль V8 в Node.js
В Node.js V8 отвечает за выполнение JavaScript-кода на сервере. Благодаря V8, Node.js может обрабатывать множество одновременных соединений, используя неблокирующую модель ввода-вывода и событийно-ориентированную архитектуру. (nodejs.org)
Оптимизация производительности с помощью V8
V8 использует JIT-компиляцию для преобразования JavaScript в машинный код во время выполнения, что значительно ускоряет выполнение кода. Также V8 поддерживает современные функции ECMAScript, такие как оператор возведения в степень (
**) и методы Object.values/Object.entries, что позволяет разработчикам использовать новые возможности языка. (nodejs.org)Управление памятью и сборка мусора
V8 оснащен продвинутым сборщиком мусора Orinoco, который автоматически управляет выделением и освобождением памяти. Это снижает вероятность утечек памяти и повышает стабильность приложений, особенно длительно работающих. (arunangshudas.medium.com)
Инструменты мониторинга V8 в Node.js
Node.js предоставляет модуль
v8, который позволяет получать статистику о состоянии кучи памяти и пространствах кучи. Это полезно для мониторинга и оптимизации использования памяти в приложениях. (nodejs.org)Примеры кода:
Базовый пример использования модуля
v8 для получения статистики кучи:const v8 = require('v8');
console.log(v8.getHeapStatistics());
Практическое использование метода
Object.entries для итерации по объекту:const obj = { a: 1, b: 2, c: 3 };
for (const [key, value] of Object.entries(obj)) {
console.log(`${key}: ${value}`);
}
Типичная ошибка: блокирующая операция, замедляющая выполнение:
const fs = require('fs');
const data = fs.readFileSync('/file.md'); // Блокирующая операция
console.log(data);
Факты:
👉 V8 компилирует JavaScript в машинный код во время выполнения, обеспечивая высокую производительность.
👉 Сборщик мусора Orinoco в V8 автоматически управляет памятью, снижая вероятность утечек.
👉 Node.js предоставляет модуль
v8 для мониторинга состояния памяти и оптимизации приложений.❗️Понимание работы V8 критично для эффективной разработки на Node.js. Знание его механизмов компиляции, управления памятью и доступных инструментов позволяет создавать более производительные и стабильные серверные приложения.
Источники
V8 JavaScript engine.
Node.js — The V8 JavaScript Engine.
Node.js v7 has updated V8 to 5.4.
6 Reasons to Use V8 with Node.js for JavaScript.
V8 | Node.js v11.2.0 Documentation.
v8.dev
V8 JavaScript engine
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Forwarded from Node.JS [ru] | Серверный JavaScript
Статья объясняет появление метода setHTMLUnsafe для работы с HTML в браузерах. Разбираются особенности безопасности, отличия от setHTML и innerHTML, а также поддержка в разных браузерах и значение нового подхода к именованию методов.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from xCode Journal
This media is not supported in your browser
VIEW IN TELEGRAM
Систему, которую в компании запускают почти на каждом PR. За последний год объём кода на инженера в Anthropic вырос примерно на 200%. При такой скорости неудивительно, что ревью стало узким местом.
Теперь Code Review автоматически проверяет PR: несколько ИИ-агентов параллельно ищут баги, перепроверяют результаты и ранжируют проблемы по серьёзности. Причем чем более объемным и сложным будет PR — тем больше агентов туда пойдет работать.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Node.JS [ru] | Серверный JavaScript
Представь, что ты отправляешь сообщение в мессенджере, а оно доходит с задержкой в минуту. Бесит? А теперь представь, что у тебя сервис с миллионами пользователей, и каждое их действие должно мгновенно отражаться везде. Звучит как кошмар? Спокойно, есть четыре проверенных способа решить эту головоломку, и они реально работают.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Node.JS [ru] | Серверный JavaScript
Уроки из Массового Паралича Серверов в 2025 году: Правильное Использование Cluster Модулей в Node.js
В 2025 году мир информационных технологий содрогнулся от неожиданного происшествия — массового паралича серверных систем, причиной которого стало неправильное использование cluster модулей в Node.js. Этот инцидент стал напоминанием о том, что всегда стоит думать о потенциальных ловушках.
Cluster модули в Node.js, предназначенные для улучшения производительности приложений за счёт использования всех доступных ядер процессора, при неправильной конфигурации могут стать источником серьёзных проблем. В погоне за масштабируемостью и высокой доступностью многие разработчики упустили из виду важные детали настройки.
Основной ошибкой стала неправильная балансировка нагрузки между процессами. Разработчики, не уделившие внимание корректной обработке распределения запросов, столкнулись с последствием: одни процессы были перегружены до отказа, в то время как другие простаивали. Такая диспропорция разрушила предполагаемую устойчивость систем и сделала их уязвимыми.
Ещё одной распространённой проблемой стало игнорирование необходимости обработки ошибок и отказоустойчивости. Вместо надёжных механизмов перезапуска затухших воркеров, системы просто останавливались, ожидая вмешательства человека. Каждый узел кластера, падая из-за невнимательной работы с асинхронными операциями, приносил свою ноту диссонанса в общий хаос.
Этот урок 2025 года стал важной вехой в техносообществе. Разработчики стали пересматривать свои подходы к проектированию распределённых систем, поняв, что производительность достигается не только применением мощных инструментов, но и вниманием к деталям их применения.
В 2025 году мир информационных технологий содрогнулся от неожиданного происшествия — массового паралича серверных систем, причиной которого стало неправильное использование cluster модулей в Node.js. Этот инцидент стал напоминанием о том, что всегда стоит думать о потенциальных ловушках.
Cluster модули в Node.js, предназначенные для улучшения производительности приложений за счёт использования всех доступных ядер процессора, при неправильной конфигурации могут стать источником серьёзных проблем. В погоне за масштабируемостью и высокой доступностью многие разработчики упустили из виду важные детали настройки.
Основной ошибкой стала неправильная балансировка нагрузки между процессами. Разработчики, не уделившие внимание корректной обработке распределения запросов, столкнулись с последствием: одни процессы были перегружены до отказа, в то время как другие простаивали. Такая диспропорция разрушила предполагаемую устойчивость систем и сделала их уязвимыми.
Ещё одной распространённой проблемой стало игнорирование необходимости обработки ошибок и отказоустойчивости. Вместо надёжных механизмов перезапуска затухших воркеров, системы просто останавливались, ожидая вмешательства человека. Каждый узел кластера, падая из-за невнимательной работы с асинхронными операциями, приносил свою ноту диссонанса в общий хаос.
Этот урок 2025 года стал важной вехой в техносообществе. Разработчики стали пересматривать свои подходы к проектированию распределённых систем, поняв, что производительность достигается не только применением мощных инструментов, но и вниманием к деталям их применения.
Forwarded from Геныч.
Недавно решил разобраться с фичей skills в Claude Code. Если коротко, это инструмент, который пришел на смену кастомным slash-командам и значительно расширяет их возможности.
В процессе изучения нашел несколько интересных моментов:
- Генерация маркетингового контента:
Анализирует приложение и помогает писать посты для продвижения, например для Хабра.
- Подбор свободных доменов:
Проверяет доступность доменов по теме проекта и предлагает варианты.
- Поиск потенциальных клиентов:
Помогает находить аудиторию, которой может быть интересен ваш продукт. Эту штуку я еще не тестил но звучит как магия.
- Улучшение фронтенда:
Помогает привести сгенерированный нейросетью фронтенд в более аккуратный и продакшен-подобный вид. Так как фронт это мое основное направление то эта штука это то что я протестил чуть больше. Разница в качестве генерируемого кода мне показалась довольно заметной.
Вообще про skills я слышал уже несколько раз, но игнорировал. Для работы мне обычно хватало базовых команд вроде проверки кода. На данный момент я еще продолжаю изучать этот инструмент но уже выглядит как что то довольно интересное.
👉 Геныч.
В процессе изучения нашел несколько интересных моментов:
- Генерация маркетингового контента:
Анализирует приложение и помогает писать посты для продвижения, например для Хабра.
- Подбор свободных доменов:
Проверяет доступность доменов по теме проекта и предлагает варианты.
- Поиск потенциальных клиентов:
Помогает находить аудиторию, которой может быть интересен ваш продукт. Эту штуку я еще не тестил но звучит как магия.
- Улучшение фронтенда:
Помогает привести сгенерированный нейросетью фронтенд в более аккуратный и продакшен-подобный вид. Так как фронт это мое основное направление то эта штука это то что я протестил чуть больше. Разница в качестве генерируемого кода мне показалась довольно заметной.
Вообще про skills я слышал уже несколько раз, но игнорировал. Для работы мне обычно хватало базовых команд вроде проверки кода. На данный момент я еще продолжаю изучать этот инструмент но уже выглядит как что то довольно интересное.
👉 Геныч.
Forwarded from Node.JS [ru] | Серверный JavaScript
🧭 Разбираем React вместе с Podlodka React Crew
Современные React-приложения становятся всё сложнее. Разработчики регулярно сталкиваются с проблемами производительности, утечками памяти и архитектурными вызовами.
Базового понимания фреймворка становится недостаточно для результативной работы.
💡Эксперты Podlodka React Crew решили разобраться с этой проблемой на онлайн-конференции под названием «Продвинутый React».
С 23 по 27 марта ее участники:
⚙️ узнают, как устроен рендер и внутренние механизмы в современном React
🧠 познакомятся с архитектурой приложений, где применяются React Server Components
📊 научатся профилировать React-приложения и выявлять медленные рендеры, memory leak
🛠️познакомятся с дополнительными инструментами, которые помогут упростить отладку и выявить сложные проблемы
Формат — удобный и ламповый: пять дней, живые Zoom-сессии утром и вечером, закрытое профессиональное сообщество в Telegram и общение со спикерами.
Если хотите углубить свои знания про React в компании крутых экспертов, присоединяйтесь к Podlodka React Crew👇
🎟Забрать early-bird билет: https://podlodka.io/reactcrew
Современные React-приложения становятся всё сложнее. Разработчики регулярно сталкиваются с проблемами производительности, утечками памяти и архитектурными вызовами.
Базового понимания фреймворка становится недостаточно для результативной работы.
💡Эксперты Podlodka React Crew решили разобраться с этой проблемой на онлайн-конференции под названием «Продвинутый React».
С 23 по 27 марта ее участники:
⚙️ узнают, как устроен рендер и внутренние механизмы в современном React
🧠 познакомятся с архитектурой приложений, где применяются React Server Components
📊 научатся профилировать React-приложения и выявлять медленные рендеры, memory leak
🛠️познакомятся с дополнительными инструментами, которые помогут упростить отладку и выявить сложные проблемы
Формат — удобный и ламповый: пять дней, живые Zoom-сессии утром и вечером, закрытое профессиональное сообщество в Telegram и общение со спикерами.
Если хотите углубить свои знания про React в компании крутых экспертов, присоединяйтесь к Podlodka React Crew👇
🎟Забрать early-bird билет: https://podlodka.io/reactcrew
Forwarded from Node.JS [ru] | Серверный JavaScript
Idempotency в API — почему это важнее, чем кажется
Принято считать, что идемпотентность — это просто теоретическое свойство HTTP-методов.
Типа
На практике идемпотентность часто решает очень реальные прод-проблемы.
Что вообще означает idempotency
Идемпотентный запрос можно выполнить несколько раз подряд,
и результат будет тем же, что и после первого.
Пример:
Первый запрос удалит товар.
Второй запрос ничего не изменит.
Где начинаются реальные проблемы
Сеть не гарантирует, что запрос выполнится ровно один раз.
Иногда происходит так:
👉 клиент отправил запрос
👉 сервер его обработал
👉 ответ потерялся
👉 клиент повторил запрос
Если операция не идемпотентная, начинаются сюрпризы.
Классический пример:
Без защиты это может привести к:
👉 двойной оплате
👉 повторному созданию заказа
👉 дублированию записей
Как это обычно решают
Чаще всего используют idempotency key.
Клиент отправляет уникальный ключ вместе с запросом.
Сервер сохраняет этот ключ и результат операции.
Если тот же ключ приходит снова —
сервер просто возвращает предыдущий ответ.
Где это особенно важно
👉 платежи
👉 создание заказов
👉 бронирование
👉 webhook-обработчики
👉 любые retry-механизмы
Там, где дубликат операции может стоить денег.
Что важно понимать
Идемпотентность — это не только про HTTP-методы.
Это дизайн API.
Можно сделать идемпотентным даже
если контролировать повторные вызовы.
Главная мысль
Сеть ненадёжна.
Повторы запросов — это норма.
Если API не учитывает это,
рано или поздно появятся странные баги.
Принято считать, что идемпотентность — это просто теоретическое свойство HTTP-методов.
Типа
GET идемпотентный, POST нет — и на этом всё.На практике идемпотентность часто решает очень реальные прод-проблемы.
Что вообще означает idempotency
Идемпотентный запрос можно выполнить несколько раз подряд,
и результат будет тем же, что и после первого.
Пример:
DELETE /cart/item/42
Первый запрос удалит товар.
Второй запрос ничего не изменит.
Состояние системы остаётся тем же.
Где начинаются реальные проблемы
Сеть не гарантирует, что запрос выполнится ровно один раз.
Иногда происходит так:
👉 клиент отправил запрос
👉 сервер его обработал
👉 ответ потерялся
👉 клиент повторил запрос
Если операция не идемпотентная, начинаются сюрпризы.
Классический пример:
POST /payments
Без защиты это может привести к:
👉 двойной оплате
👉 повторному созданию заказа
👉 дублированию записей
Как это обычно решают
Чаще всего используют idempotency key.
Клиент отправляет уникальный ключ вместе с запросом.
POST /payments
Idempotency-Key: 9f7c1a
Сервер сохраняет этот ключ и результат операции.
Если тот же ключ приходит снова —
сервер просто возвращает предыдущий ответ.
Операция не выполняется второй раз.
Где это особенно важно
👉 платежи
👉 создание заказов
👉 бронирование
👉 webhook-обработчики
👉 любые retry-механизмы
Там, где дубликат операции может стоить денег.
Что важно понимать
Идемпотентность — это не только про HTTP-методы.
Это дизайн API.
Можно сделать идемпотентным даже
POST,если контролировать повторные вызовы.
Главная мысль
Сеть ненадёжна.
Повторы запросов — это норма.
Если API не учитывает это,
рано или поздно появятся странные баги.
И чаще всего они появляются
в самых дорогих местах системы.
Forwarded from xCode Journal
Свежее исследование 4261 спеца подтвердило, что честность сегодня не кормит. Рынок сломан HR-фильтрами, и выживают на нем только накрутчики. Крутят все и всё:
— 66% опрошенных рисуют опыт. Мидлы делают это так же часто, как джуны, чтобы просто пробить стену из ATS-ботов;
— Без «подкрутки» цифр соискателей не зовут даже на скрининги, зато с нарисованным стажем люди залетают в бигтех и финтех на хорошие ЗП и успешно проходят испыталку;
— В 77% случаев работодатели вообще не вдупляют, что опыт фейковый. Служба безопасности ловит лишь 4%;
— Кандидаты массово используют нейросети для резюме, чтобы обмануть нейросети рекрутеров
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from xCode Journal
CEO Y Combinator выкатил свой сетап для Claude Code
Это целая виртуальная команда из 10+ ролей, которая живёт внутри CLI. Теперь мы живем в реальности, где один человек гоняет 5–10 агентов параллельно: они пишут код, тесты, сами находят баги и фиксят их. У самого Гарри получается до 10–20к строк кода в день при работе «параллельно с CEO».
По факту это превращает Claude в управляемый софтверный завод с ролями, процессами и гейтами.
✖️ xCode Journal
Это целая виртуальная команда из 10+ ролей, которая живёт внутри CLI. Теперь мы живем в реальности, где один человек гоняет 5–10 агентов параллельно: они пишут код, тесты, сами находят баги и фиксят их. У самого Гарри получается до 10–20к строк кода в день при работе «параллельно с CEO».
По факту это превращает Claude в управляемый софтверный завод с ролями, процессами и гейтами.
Please open Telegram to view this post
VIEW IN TELEGRAM