GyaanSetu JavaScript

Экосистема JavaScript и TypeScript.

100 articlesDeep, practical knowledge

Единообразие — это не цель, которой можно достичь. Это подписка, которую нужно оплачивать. Каждая инженерная организация рано или поздно это осознает

Единообразие — это не цель, которой можно достичь. Это подписка, которую нужно оплачивать. Каждая инженерная организация рано или поздно это осознает, обычно когда начинает работу вторая или третья команда…

JavaScript · 6 мин чтения

Большинство веб-приложений до сих пор обрабатывают загрузку изображений как «черный ящик». Пользователь перетаскивает файл, браузер отправляет его, а сервер

Большинство веб-приложений до сих пор обрабатывают загрузку изображений как «черный ящик». Пользователь перетаскивает файл, браузер отправляет его, и сервер либо принимает данные, либо выдает ошибку 413, которую никто...

JavaScript · 5 мин чтения

Поступил отчет об ошибке, который противоречил всем инстинктам отладки. Пользователи бюджетных Android-смартфонов говорили, что приложение просто исчезает

Поступил отчет об ошибке, который противоречил всем инстинктам отладки. Пользователи бюджетных Android-смартфонов сообщали, что приложение просто исчезает. Не при запуске. Не во время какого-то конкретного нажатия или свайпа. Грубо…

JavaScript · 6 мин чтения

При разработке на Node.js обработка ошибок поначалу кажется слишком простой. Вы оборачиваете маршрут в try catch, отправляете

При разработке на Node.js обработка ошибок поначалу кажется почти слишком простой. Вы оборачиваете маршрут в try catch, отправляете статус-код 500, и клиент сам решает, что делать дальше.…

JavaScript · 5 мин чтения

Конфигурационный файл, который работал пять секунд назад, теперь превратился в 347-байтовый фрагмент битого JSON. Ваш CLI-инструмент не запускается.

Конфигурационный файл, который работал пять секунд назад, теперь представляет собой 347-байтовый фрагмент битого JSON. Ваш CLI-инструмент не запускается. Пользователь, который просто нажал Ctrl+C, потому что обновление было так…

JavaScript · 6 мин чтения

Если вы когда-либо просили разработчика «сделать логотип побольше» или говорили дизайнеру «исправить ошибку в базе данных», то вы не

Если вы когда-либо просили разработчика «сделать логотип побольше» или говорили дизайнеру «исправить ошибку в базе данных», вы не одиноки. Большинство людей, не связанных с технологиями, используют понятия «дизайн сайта» и «...»

JavaScript · 3 мин чтения

Работа с массивами в JavaScript теперь редко требует написания циклов. Язык предоставляет выразительные т

Работа с массивами в JavaScript теперь редко требует написания циклов. Язык предоставляет выразительные инструменты, которые превращают сложные, зашумленные вложенные данные в чистые и читаемые транс…

JavaScript · 5 мин чтения

Игроки ненавидят проигрывать забег из-за технических нюансов. Платформа была свободна, тайминг — идеальным, и вдруг игра их убила

Игроки ненавидят проигрывать забег из-за технических нюансов. Платформа была свободна, тайминг — идеальным, и вдруг игра их убила не из-за ошибки, а из-за того, что браузер…

JavaScript · 6 мин чтения

Переписывание TypeScript 7 на Go сокращает время компиляции VS Code в 11,9 раза — до 1,3 с

Microsoft переписала компилятор на Go, заменив старый движок на базе Node.js. Параллельный парсинг и проверка типов сокращают время компиляции в VS Code с 17,5 секунд до менее чем 1,3 секунды, а также снижают потребление памяти в огромных кодовых базах на величину до 26%.

JavaScript · 2 мин чтения

Скрытые ошибки Supabase-JS обнаружены новой TypeScript-оберткой для мутаций

Легкая TypeScript-обертка заставляет разработчиков обрабатывать поле `error`, возвращаемое supabase-js, логируя каждую отклоненную запись в Sentry и предотвращая появление UI-бейджeв «успех», которые маскируют отсутствие изменений в данных.

JavaScript · 4 мин чтения

SolidJS 2.0 позволяет командам React сохранять стабильность интерфейса при обновлении данных

SolidJS 2.0 представляет нативную модель асинхронных данных, в которой промисы являются полноценными реактивными значениями. Благодаря этому состояние загрузки (fallback) отображается только при первой загрузке, а последующие обновления данных сохраняют текущий DOM на экране, избавляя от мелькания спиннеров, которое вызывает React Suspense.

JavaScript · 5 мин чтения

Команды React снизили INP ниже 200 мс, разделяя длинные задачи и используя startTransition

Даже при идеальных результатах Lighthouse, показатель Interaction to Next Paint (INP) реальных пользователей может превышать 500 мс. Разделяя длинные задачи с помощью scheduler.yield, оборачивая несрочные обновления в startTransition и удаляя невидимые элементы DOM, можно снизить INP ниже порога «быстрого» отклика в 200 мс.

JavaScript · 2 мин чтения

TypeScript 7 сокращает время сборки монорепозиториев благодаря параллельной проверке деклараций

Новый режим изолированных деклараций распределяет проверку .d.ts между ядрами процессора, что значительно сокращает циклы компиляции в репозиториях с сотнями пакетов и позволяет мгновенно экономить ресурсы CI-агентов, работающих на многоядерном оборудовании.

JavaScript · 2 мин чтения

pnpm v12 Alpha сокращает время теплой установки с 381 мс до 12 мс благодаря переписыванию на Rust

Новый нативный бинарный файл на Rust ускоряет теплую установку в 30 раз, сокращает время установки без кэша до 40 мс и уменьшает время установки полного дерева зависимостей до 2,2 с, обеспечивая значительное ускорение CI-конвейеров при сохранении прежних флагов CLI и формата lock-файла.

JavaScript · 2 мин чтения

Черные прямоугольники для скрытия данных обманывали: новый метод превращает конфиденциальные страницы в изображения

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

JavaScript · 3 мин чтения

Auto-Animate добавляет анимации списков без написания кода в Marko 6

Новый пакет @formkit/auto-animate/marko устанавливается через npm, оборачивает родительский элемент списка в <AutoAnimate> и использует MutationObserver для анимации добавления, удаления и изменения порядка элементов без использования дополнительного JavaScript или хуков жизненного цикла.

JavaScript · 2 мин чтения