Category : javascript

javascript
О специфике разработки приложений под Smart TV: личный опыт перехода от веба к ТВ

Смотреть шоу, телеканалы, спортивные трансляции, фильмы и другой контент на Smart TV, используя приложения видеоплатформ — уже типовой сценарий. По данным на конец 2025 года, объём потребления контента в VK Видео увеличился в 2,1 раза (на 110%) по сравнению с аналогичным периодом 2024 года. Наибольшее вовлечение аудитории зафиксировано на платформе Smart TV: в начале 2026 года среднее время просмотра на одного пользователя — 241 минута. При этом многие не думают, как устроен софт для большого э…

  • четверг, 12 марта 2026 г. в 00:00:04
javascript
Как сделать двунаправленный бесконечный скролл в React

Большинство туториалов по бесконечному скроллу покрывают только одно направление: вниз. Ловим конец списка, подгружаем, готово. Но в реальных приложениях нужен скролл в обе стороны: история чата, лог-вьюеры, таймлайны. А скролл вверх создаёт проблему, которой при скролле вниз просто нет.В этом гайде я покажу, как собрать двунаправленный бесконечный скролл с нуля. Здесь React и @tanstack/react-virtual, но сама техника — просто математика над scroll offset. Работает так же в Vue, Svelte или на ва…

  • четверг, 12 марта 2026 г. в 00:00:04
javascript
Когда curl перестаёт работать: многоуровневый детект ботов и где в этой схеме живёт облачный браузе…

Эта статья не о том, что Puppeteer - плохой инструмент. Это отличный инструмент. Как и curl. И грамотный TLS-фингерпринтинг через uTLS вынесет большинство защит. Но есть класс задач, где даже идеальный сетевой стек не спасает - потому что детект давно вышел за пределы HTTP-заголовков и приземлился на уровень поведения рендеринг-движка. Разберём, где именно проходит эта граница.Лет пять назад антифрод жил на сетевом уровне: смотрел на IP-репутацию, сверял User-Agent и проверял Referer. Сегодня C…

  • среда, 11 марта 2026 г. в 00:00:07
javascript
Time-Travel Debugging: почему Ctrl+Z это только начало

Time-travel debugging — это возможность сохранять снимки состояния приложения и перемещаться между ними. Традиционно он ассоциируется с инструментами отладки, такими как Redux DevTools. Однако пользователи современных приложений (Figma, Google Docs, VS Code) ожидают функциональности перемещения между состояниями и от форм и веб-приложений.Эта статья делится на две части:Теория (Часть 1): Универсальные паттерны и концепцииПрактика (Часть 2): Туториал по реализации пользовательского time-travel с…

  • среда, 11 марта 2026 г. в 00:00:06
javascript
Поколение JSON: цена удобных абстракций и упадок культуры ресурсов

Цена одной строчкиconst data = await fetch('/api/dashboard').then(r => r.json()); Безобидная строчка. Одна из миллиардов, написанных сегодня на планете. Студент с курса напишет её на третий день. Сеньор – с закрытыми глазами.Но знаете ли вы, что эта строчка стоит? Не абстрактно – «ну, это сетевой вызов». А конкретно: в байтах, миллисекундах, рублях и часах дежурства инженера в три часа ночи по Москве.Давайте разберём один fetch на атомы. Снимем слои абстракций и посмотрим, что на сам…

  • среда, 11 марта 2026 г. в 00:00:04
javascript
Stitches закрыт — да здравствует StyleX

Как мы пришли к компилируемому CSS и почему это выглядит логичным финалом ветки CSS-in-JSНемного контекстаФронтенд почти никогда не стоит на месте. Мы регулярно упираемся в ограничения инструментов, пробуем новые подходы и время от времени возвращаемся к тем же идеям — но уже с другим пониманием задач.Когда-то обычного CSS было достаточно. Затем появились препроцессоры, методологии вроде BEM, позже — CSS-modules. Следующим шагом стало естественное желание держать стили рядом с компонентами, вед…

  • среда, 11 марта 2026 г. в 00:00:04
javascript
Wish-лист на 8 марта по книге «Пять языков любви» или как автоматизировать романтику

Всем привет! Мне 34, из них больше десяти лет я в коммерческой разработке. Примерно столько же я женат на Катюше. За это время мы прошли через всё: от внезапных сюрпризов, которые категорически «не зашли» (самый эпичный фейл — подаренная мной картина-портрет, о которой Катюша очень тактично промолчала, но по её взгляду я всё понял), до прагматичных, но до боли скучных списков в телефонных заметках или капитуляции в духе: «милая, вот деньги, купи себе что-нибудь сама».Каждый год 7 марта(и ещё ~5…

  • понедельник, 9 марта 2026 г. в 00:00:09
javascript
Визуальный инспектор аудиографов на Web Audio API: мотивация создания, детали реализации и размышле…

Всем привет! Меня зовут Александр Григоренко, я фронтенд-разработчик и создатель Web Audio Studio — браузерного инструмента для визуализации и исследования аудиографов на Web Audio API. В этой статье я хочу поделиться историей разработки этого проекта, техническими деталями и особо интересными инженерными вызовами, с которыми я столкнулся в процессе его создания. Кроме того, я выскажу свои мысли о Web Audio API, о том, почему этот стандарт недооценен у веб-разработчиков и что с этим можно сдела…

  • понедельник, 9 марта 2026 г. в 00:00:08
javascript
GridKit Enhanced: Enterprise-функции для TanStack Table

Многие любят TanStack Table. Она гибкая, headless, даёт полный контроль над рендерингом. Но в какой-то момент приходят требования от бизнеса:«Давайте добавим аудит всех изменений для compliance»«А можно логировать, как часто меняют сортировку?»«Нужен экспорт в Excel для пользователей»«Почему таблица тормозит на 10 000 строк?»«Отслеживайте действия пользователей для аналитики»И разработчик понимает: TanStack — отличный инструмент, но для enterprise-функций нужно написать кучу обвязки:Event-систе…

  • понедельник, 9 марта 2026 г. в 00:00:06