Category : javascript

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
javascript
Инвалидация nginx кэша

Вместо предисловияКогда-то давно, когда я только пришел в IT SEO компанию работать программистом, я восхищался ребятами, которые умели писать на JavaScript. Они могли сделать, например, калькулятор, который складывал и умножал пару чисел. Тогда для меня это было что-то за пределами моего понимания. Но уже через пару месяцев я смог передать AJAXом данные формы на бэкенд. Я испытал волнение и ликование. Так и началась моя карьера frontend-разработчика.ПроблемаВысоконагруженная система. Несколько …

  • понедельник, 9 марта 2026 г. в 00:00:06
javascript
Хоткеи, которые я реально использую каждый день — справочник за 10 лет разработки

Привет, Хабр!Последнее время листаю ленту и ловлю себя на мысли, что Хабр незаметно превратился в IT-СМИ: новости про очередной релиз GPT, обсуждение того, заменит ли нас ИИ к пятнице, корпоративные блоги, которые начинаются с «мы в компании X верим, что...». Всё это имеет право на жизнь, но я скучаю по тому Хабру, где человек просто делился рабочей находкой, а ты утаскивал статью в закладки и потом реально к ней возвращался.Да, я понимаю иронию: часть того, что будет ниже, уже можно решить чер…

  • воскресенье, 8 марта 2026 г. в 00:00:11