Обновить
256K+

JavaScript *

Прототипно-ориентированный язык программирования

239,18
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

ShadowRealm API: изоляция исполнения кода в JavaScript

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели6.3K

Джаваскриптеры давно мечтают о безопасной изоляции кода, чтобы можно было выполнить сторонний скрипт или библиотеку в своём песочном замке, без риска повредить глобальные объекты или залезть друг другу в прототипы. Сейчас для этого есть костыли, либо создавать скрытый <iframe> (у которого свой глобальный контекст), либо городить сложные рентаймы. В Node.js есть модуль vm и контексты, но и они далеки от идеала. Но на горизонте замаячило штатное решение от TC39, ShadowRealm API. От названия веет чем-то мистическим, но по сути это просто способ создать новый глобальный JavaScript-контекст в рамках текущего потока, и исполнить в нём код изолированно от основного.

Читать далее

SVG, Canvas, WebGL, WebGPU — кто здесь вообще главный? Большой тест 2D-графики в браузере

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели7.6K

В последние годы спрос на 2D/3D-инструменты в веб-сервисах растет довольно стремительно, технологии развиваются, появляются новые подходы и библиотеки — а вместе с ними растёт и путаница: что где использовать, где грань между похожими решениями и почему у разработчиков часто возникают противоположные мнения?

Так что я решила устроить небольшой тест 2D-решений: посмотреть, на что они реально способны, понять, почему результаты местами вызывают большое удивление, и ответить себе (и вам) на вопрос: а WebGPU вообще зачем?

Спойлер: всё далеко не так очевидно, как кажется.

Читать далее

Общая концепция локаторов и их специфика в Playwright

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели11K

Локаторы являются одним из ключевых элементов UI‑автоматизации. От того, насколько устойчиво тест находит нужный элемент, зависит стабильность всего тестового набора. Несмотря на кажущуюся простоту, выбор правильного локатора часто становится самым критичным и самым недооценённым аспектом автоматизации.

В этой статье мы разберём общую концепцию локаторов, критерии их качества и ограничения классических подходов. Затем рассмотрим, как Playwright переосмыслил эту философию.

Читать далее

Baseline: октябрь 2025

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели9K

Обзор на браузерные API, которые стали Widely available в октябре 2025. Раз в месяц я буду вам напоминать, что вы уже можете использовать в проде.

Каждый месяц выходят новые CSS-свойства, HTML-атрибуты, JavaScript-методы и WebAPI, но применять в проде мы их конечно же не будем. 2.5 года назад также каждый месяц выходили новые фичи в браузере, а вот их уже пора начинать применять.

Узнать, что можно взять в прод

Грани полиморфизма React: паттерн FACC

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели9K

Привет, с вами снова Костя из Cloud.ru. Мы поговорили про паттерн as для типа безопасного полиморфизма и asChild для чистой композиции. Но сегодня поговорим о подходе, который даёт такую гибкость в вариативном дизайне, что дизайнеры будут гордиться вами - FACC (Function as Child Component).

Читать статью

Делаем простой фитнес-трекер на React Native + Expo

Уровень сложностиСредний
Время на прочтение34 мин
Охват и читатели7.7K

Лето уже давно позади, зима на носу, а значит — самое время начинать подготовку к следующему лету. Для многих это означает одно: попытку выбраться из состояния «тюленя» хотя бы в состояние «тюленя, который слегка похудел».

Чтобы совместить полезное с полезным, заодно соберём небольшое приложение — простой трекер веса и тренировок — и посмотрим, как на практике работает мультиплатформенная разработка на React с Expo. Спойлер: почти то же самое, что и обычная разработка на React — и, похоже, именно она окончательно забивает гвоздь в гроб Dart/Flutter и прочих попыток конкурентов сделать вид, что React — это страшный сон, который можно забыть.

Читать далее

Shai-Hulud 2.0: 25 000 npm-репозиториев могут потерять свои данные

Время на прочтение3 мин
Охват и читатели10K

Несколько поставщиков средств безопасности (Aikido, HelixGuard, Koi Security, Socket, Step Security и Wiz) подали сигнал тревоги о второй волне атак на реестр npm, напоминающих атаку Shai-Hulud. Новая кампания в цепочке поставок получила название Sha1-Hulud и затронула более 25 000 репозиториев через npm с кражей учетных данных на этапе preinstall. Вредоносные (троянизированные) пакеты npm загрузили в реестр между 21 и 23 ноября 2025 года.

Подобно атаке Shai-Hulud, выявленной в сентябре 2025 года, нынешняя версия также публикует украденные секреты в GitHub, но теперь с описанием репозитория «Sha1-Hulud: The Second Coming» — «Sha1-Hulud: Второе пришествие».

Читать далее

Отображение возраста контактов в Гугл календаре в день их рождения через People API

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели9K

Если вы пользуетесь Гугл календарём, то стандартное напоминание выглядит как «ДР у Петра» и очень хорошо что Гугл теперь отображает и саму дату рождения — ещё несколько лет назад этого не было. Приходилось гадать — сколько лет‑то человеку?

Хотя задача упрощается и дата рождения уже перед глазами, а контакт можно открыть одним кликом, но всё равно приходится считать в уме — это круглая дата или нет?

В 2025 году с отображением даты рождения стало гораздо проще, но проблема стара как сам Google Calendar. В 2019 году я уже писал о попытках решить её разными способами: через громоздкие скрипты и старые методы Calendar API в 2022 году. Но многое из того давно сломалось, а Calendar API устарело.

Поэтому сейчас решил сделать через People API аккуратную автоматизацию, которая будет показывать в календаре не только «ДР у Ивана», но и сколько ему исполняется.

Читать далее

О дивный новый анимированный мир — ViewTransition в React

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели12K

Всем привет. Я Артем Курочкин, frontend разработчик компании DD Planet.

Сегодня я расскажу об одном из ключевых нововведений в React, представленных на React Conf 2025. Прошу любить и жаловать ViewTransition - нативная поддержка view transition api в экосистеме реакта.

Что это значит для React-разработчиков и как нам всем это поможет, мы и разберем в этой статье.

Читать далее

Автоматически скрываем лишние истории в VK: простой браузерный скрипт

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели9.1K

У меня в VK несколько тысяч друзей, и истории давно превратились в шум: много людей, с которыми я не общаюсь, старые контакты, рабочие связи.

При этом удалять всех подряд из друзей не хочется, потому что сеть полезна для проектов и продвижения.

Поэтому я написал простой браузерный скрипт, который автоматически скрывает истории почти от всех, кроме тех, кого я явно добавил в список исключений по имени или ID.

Скрипт запускается из консоли, продолжает работать даже в неактивной вкладке и доступен в открытом репозитории.

GitHub

Читать далее

Микрофронтенды: прихоть разработчиков или реальная польза для бизнеса

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели15K

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

Читать далее

Reactive Web Components: реактивность без фреймворка

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели8.2K

После работы с React/Vue/Angular захотелось вернуться к основам, но с современными возможностями. Сделал RWC — библиотеку реактивных веб-компонентов.

Ключевые преимущества:
• Совместимость — компоненты работают в любом проекте
• Производительность (сигналы для реактивности) — точечные обновления DOM
• Простота — минимальный API, легко обучать команду
• TypeScript-first — типизация из коробки без костылей

Компоненты, написанные на RWC, можно встроить в React, Vue, Angular или даже legacy jQuery-проект. Никакого vendor lock-in.

Библиотека весит <10KB, компоненты работают в любом проекте.

Читать далее

Анализ аудио потока HLS с помощью Web Audio API и hls.js

Время на прочтение7 мин
Охват и читатели11K

В современных веб-приложениях для потокового видео всё чаще требуется не просто воспроизводить контент, но и анализировать аудиодорожку в реальном времени. Например, строить индикаторы уровня громкости (VU/PPM метры), визуализировать спектрограммы или детектировать тишину. В этой статье разберём, как корректно объединить hls.js и Web Audio API для анализа аудио из HLS-потока в браузере, избежав типичных подводных камней.

Читать далее

Ближайшие события

Числовой тип данных с плавающей точкой double IEEE 754

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели14K

Данный пост посвящён детальному разбору вещественного типа данных с плавающей точкой удвоенной точности double

Читать далее

Как настроить SEO в Next.js так, чтобы проект реально индексировался

Уровень сложностиСложный
Время на прочтение15 мин
Охват и читатели9K

Во многих проектах на Next.js возможности для SEO остаются неиспользованными: страницы индексируются не полностью, структурированные элементы отсутствуют, а ссылки в соцсетях отображаются неправильно. Чтобы этого избежать, существуют проверенные инструменты и подходы, которые помогают сделать SEO понятным, полным и эффективным.

В данной статье рассмотрены ключевые аспекты настройки SEO в проектах на Next.js: работа с метаданными, генерация sitemap и robots.txt, оптимизация изображений и внедрение структурированных данных. 

Читать далее

Структура против хаоса — практическая валидация форм с помощью Zod

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели6.7K

Всем привет, с вами Артем Леванов, Front Lead в компании WebRise.

В прошлой статье мы разобрали, как навести порядок в создании форм — выделили примитивы, ячейки и типовые поля.

Следующая проблема, с которой сталкивается любая форма — валидация.

Формы могут быть красивыми и структурными, но без единого подхода к валидации они быстро превращаются в хаос.

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

Читать далее

Как скопировать дерево, но не точь-в-точь

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели7.4K

На собеседованиях и литкоде любят вращать бинарные деревья. Но что насчёт трансформации обычного дерева в другое? Как решить эту задачу, и какие могут быть подходы? Рассмотрим на опыте трансляции одного синтаксического в другое, чтобы разобраться.

Читать далее

Как я с нуля культивировал свою open-source платформу для изучения японского до 10 000 ежемесячных пользователей

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели5.9K

Когда я только начал создавать KanaDojo, я не планировал строить серьёзную образовательную платформу или что‑то в этом роде. Мне просто нужен был простой, красивый и бесплатный способ практиковаться и учить японскую кану (по сути японский «алфавит», хотя точнее его описать как слоговую азбуку — не совсем так, как у нас в русском). Хотелось создать что‑то такое же минималистичное и затягивающее, как Monkeytype (загуглите! Очень классный проект), но для изучающих японский язык.

В то время я был простым студентом и сольным разработчиком (таким остаюсь и сейчас). У меня не было бюджета на маркетинг, команды или даже чёткой дорожной карты. Зато была одна цель:

Читать далее

Ваши тесты упали по причине JavaScript

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели7.5K

Рассказываем, как безобидная строка JavaScript-кода привела к нарушению стабильности тестов продукта, а также о том, как можно избежать подобных ошибок.

Читать далее

Модификаторы вариантности параметров типа в TypeScript

Уровень сложностиСложный
Время на прочтение5 мин
Охват и читатели12K

Здесь будут рассмотрены не очевидные, редкие и сложные инструменты и парадигмы для работы с типами в TypeScript.

Читать далее