Сервис развивается: тестируем формат, собираем идеи, улучшаем сервис. Есть идеи?

Написать
Войти
По 37 материалам из 11 источников
Схема безопасного failover PostgreSQL в Kubernetes с Patroni, ZooKeeper и синхронными standby

Риски автоматического failover: как построить по-настоящему отказоустойчивый PostgreSQL в Kubernetes

ЛонгридPostgreSQLKubernetesАвтоматизацияБезопасность

Опыт инженеров Datadog по устранению критической уязвимости в кластерах PostgreSQL на Kubernetes. Рассматриваются тонкости настройки Patroni и ZooKeeper, переход на strict-режим синхронной репликации и результаты бенчмарков производительности при различных уровнях коммита для защиты от потери данных.

Графовые запросы и GROUP BY ALL: что принесет разработчикам PostgreSQL 19

КраткоPostgreSQLДанныеРазработкаOpen Source

Ближайший мажорный релиз PostgreSQL 19 расширяет возможности работы с данными, добавляя встроенную поддержку графовых запросов стандарта SQL/PGQ и удобную конструкцию GROUP BY ALL. В экосистеме также вышли обновления роутера SPQR 3.0 для шардинга и фреймворка pgrx v0.19 для написания расширений на Rust.

Databow: минималистичный CLI-инструмент для быстрых запросов к базам данных

КраткоБазы данныхРазработкаАвтоматизацияOpen Source

Представлен новый открытый консольный инструмент Databow, написанный на Rust и TypeScript, который позволяет выполнять SQL-запросы к базам данных напрямую из терминала. Утилита призвано заменить тяжелые графические интерфейсы для разработчиков, которым требуется быстрый и легкий доступ к данным.

Схема консолидации Vite, Vitest, Oxlint, Oxfmt и Node.js runtime management в Vite+ CLI

Эволюция VoidZero: как Vite+ объединяет весь фронтенд-стек в едином CLI

ЛонгридViteFrontendРазработкаЭффективность

Новый проект Vite+ от VoidZero меняет подход к разработке на JavaScript, объединяя Vite, Vitest, линтер Oxlint, форматировщик Oxfmt и менеджер версий Node.js в один бинарный инструмент. Анализ преимуществ консолидации, текущих ограничений и правил постепенной миграции проектов на новый инструмент.

Когда использовать оператор satisfies в TypeScript вместо as const

КраткоTypeScriptРазработкаОбучениеПрактика

Оператор satisfies в TypeScript позволяет эффективно проверять соответствие структуры объекта заданному типу без расширения (widening) типов значений. Это дает возможность сохранять точную информацию о литералах и автодополнение в редакторах, что делает его более гибкой альтернативой as const.

Анимируем элемент <dialog> с помощью View Transitions API

КраткоCSSДизайнРазработкаПрактика

Использование View Transitions API позволяет создавать плавные анимации для стандартного HTML-элемента dialog, визуально связывая кнопку вызова с модальным окном. Подход на основе прогрессивного улучшения гарантирует корректную работу интерфейса и учитывает системные предпочтения пользователей.

Критический баг в Go: потеря случайности uuid.NewV7() под WebAssembly

КраткоGoБезопасностьРазработкаАлгоритмы

В готовящемся стандартном пакете uuid для Go обнаружен баг: при компиляции под WebAssembly (js/wasm) функция uuid.NewV7() генерирует предсказуемые UUIDv7, где 12-битное поле rand_a всегда заполняется нулями. Ошибка вызвана некорректным поведением криптографического генератора случайных чисел в браузере.

Опасность голых горутин: как паника в одной ветке роняет весь fan-out воркер в Go

КраткоGoРазработкаАвтоматизацияПрактика

Необработанная паника в любой горутине завершает работу всего приложения в Go. Реальный кейс из продакшена показывает, как сбой при обработке вебхука для одного получателя остановил всю доставку событий, и как решить эту проблему с помощью паттерна безопасного запуска горутин через обертку recover.

Скрытые угрозы AsyncLocalStorage in Node.js: гонки данных при мультиплексировании HTTP/2

КраткоNode.jsРазработкаБезопасностьПрактика

Использование AsyncLocalStorage в Node.js для хранения контекста запросов при переходе на HTTP/2 с мультиплексированием может приводить к гонкам данных. Когда параллельные асинхронные потоки пишут в один общий объект, данные пользователей перемешиваются, что требует явной изоляции состояния.

Как WeakRef в Node.js может блокировать сборщик мусора на секунды

КраткоNode.jsРазработкаЭффективностьПрактика

Использование слабых ссылок WeakRef в EventEmitter для предотвращения утечек памяти в высоконагруженных Node.js приложениях может вызвать GC-паузы длительностью до 2–5 секунд. Это происходит из-за затягивания объектов в old-space и повышения нагрузки на фазу Mark-Sweep-Compact сборщика мусора V8.

Деоптимизация ESM в Node.js: почему глубокий статический импорт замедляет cold start

КраткоNode.jsРазработкаЭффективностьПрактика

Глубокие цепочки статических импортов в ESM-модулях Node.js заставляют рантайм синхронно резолвить и парсить весь граф зависимостей до запуска кода. Это увеличивает время холодного старта приложения на 30–50% и переносит сетевые или дисковые задержки на первый запрос даже при использовании lazy loading.