Из блога OpenReplay
Три альтернативы Vercel для современного веб-хостинга
Сравнение Netlify, Cloudflare Pages и Fly.io как альтернатив Vercel помогает выбрать подходящую edge-платформу для современных веб-проектов.
Странная жизнь NaN в JavaScript
NaN в JavaScript следует правилам IEEE 754 и вызывает скрытые сбои; для обнаружения используется Number.isNaN, входные данные валидируются до JSON-сериализации.
Легковесный подход к всплывающим подсказкам в React
Сравнение нативного title, CSS-паттернов, хуков и Floating UI для создания доступных тултипов в React с определением коллизий и минимальным бандлом.
Пять плагинов ESLint, которые улучшают качество кода
Пять плагинов ESLint, typescript-eslint, eslint-plugin-import, unicorn, jsx-a11y и CSS-линтинг, позволяют командам выявлять баги до продакшна.
Как мигрировать ваши тесты с Enzyme на React Testing Library
Переход с Enzyme на React Testing Library охватывает паттерны рефакторинга, доступные запросы и async-обработку для поведенческого тестирования компонентов.
Как создавать пользовательские ошибки в JavaScript
Статья показывает, как строить классы ошибок на основе Error.cause и синтаксиса классов для диагностики сбоев в асинхронных потоках приложений.
Руководство для начинающих по образам и контейнерам Docker
Статья охватывает основы образов и контейнеров Docker, создание Dockerfile, управление volumes и запуск многоконтейнерных приложений через Docker Compose.
Настройка редактора с помощью улучшенных шрифтов для программирования
Сравнение Fira Code, JetBrains Mono, Cascadia Code и Monaspace; настройка лигатур и Nerd Fonts в VS Code и JetBrains IDE для повышения читаемости кода.
Исправление ошибки 'TypeError: Cannot Read Property of Undefined' в JavaScript
Устранение TypeError 'cannot read property of undefined' в JavaScript с помощью optional chaining, nullish coalescing и инициализации состояния React.
Как добавить социальную авторизацию с помощью BetterAuth
Добавление социальной авторизации в TypeScript-приложения с BetterAuth, настройка провайдеров Google и GitHub, расширение OAuth2 через плагин Generic OAuth.
JavaScript-объекты 101: Строительные блоки вашего кода
Статья охватывает объекты JavaScript, цепочки прототипов и современные методы Object.groupBy и Object.hasOwn для написания эффективного кода.
Распространённые ошибки при работе с JSX и способы их избежать
Статья разбирает типичные ошибки JSX в React Server Components и автоматическом рантайме: нестабильные ключи, инлайн-функции и нарушения условного рендеринга.
Пять встроенных API Node.js, которые заменяют npm-пакеты
Пять встроенных API Node.js заменяют пакеты axios, Jest, rimraf, uuid и ws, сокращая зависимости без потери функциональности в современных проектах.
Как эффективно управлять состоянием в Angular
Выбор между Angular Signals, RxJS-сервисами, NgRx и SignalStore на основе практического подхода с учётом области состояния и потребностей приложения.
Понимание индексирования баз данных для повышения производительности
Ускорение запросов достигается освоением B-tree, составных и покрывающих индексов в PostgreSQL и MySQL с учётом рисков избыточного индексирования.
Руководство по Cloudflare Workers для начинающих
Статья охватывает разработку full-stack приложений с Cloudflare Workers: базы данных D1, Hyperdrive, статические ресурсы и совместимость с Node.js на edge.
Поля-ловушки (Honeypot) 101: Останавливаем ботов без CAPTCHA
Поля-ловушки блокируют спам в формах без CAPTCHA, перехватывая ботов через скрытые поля; для полной защиты требуется серверная валидация и rate limiting.
Начало работы с Nuxt.js
Создание первого приложения на Nuxt 4 с Vue 3, Vite, TypeScript и Nitro, файловой маршрутизацией, SSR, composables и вариантами развёртывания.
normalize.css: Простой способ обеспечить согласованность стилей
normalize.css создаёт единую CSS-базу во всех браузерах, не сбрасывая стандартные стили. Статья показывает интеграцию через CSS layers для контроля каскада.
Понимание ролей доступности в HTML
Роли доступности в HTML сообщают вспомогательным технологиям назначение элементов; охватываются ARIA-роли, семантический HTML, тестирование в NVDA и VoiceOver.
Как добавить фавикон на ваш сайт
Статья показывает, как настроить набор фавиконов с использованием SVG, PNG, Apple Touch Icon и web manifest для корректного отображения сайта во всех браузерах.
Как создать переключатель темного режима с помощью CSS и JavaScript
Реализация переключателя тёмного режима на CSS custom properties и JavaScript с определением системных предпочтений и сменой темы без мерцания.
Когда запускать ваш код: объяснение событий загрузки страницы
Сравнение DOMContentLoaded, события load, Page Visibility API и React useEffect помогает выбрать подходящий хук инициализации JavaScript для любого проекта.
Приносим ИИ в вашу командную строку с Cursor CLI
Cursor CLI позволяет генерировать React-компоненты, обновлять конфигурации Vite и автоматизировать frontend-задачи прямо в терминале, не переключая инструменты.