GyaanSetu WebDev

Frontend, backend and devops for the modern web.

230 articlesDeep, practical knowledge

LLM лишь генерируют JSON-запросы — действие выполняет ваш код

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

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

Баг превратил счетчик экспозиций A/B-теста в счетчик просмотров страниц, нарушив пропорцию 50/50

Общая функция в корневом макете (root layout) регистрировала каждый просмотр страницы как новую экспозицию, из-за чего корректное рандомизированное разделение 50/50 превратилось в дисбаланс 178 к 57, что сделало недействительными данные о конверсии за несколько недель.

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

Скрытое спам-поле уничтожило все показы арабских страниц, отняв часы на отладку

«Ловушка» (Honeypot) испортила мои арабские страницы. Convertica работает на семи языках. Шесть из них читаются слева направо, а арабский — справа налево. Эта разница стоила мне часов отладки. Каждый арабский…

WebDev · 1 мин чтения

E-commerce Sites Can Escape Facet Crawl Traps by Blocking Low-Value URLs

An audit found Googlebot hitting filter URLs three times daily while main categories were crawled once every three weeks, causing fresh inventory to sit invisible for weeks. By classifying facets, using canonicals, blocking low-value URLs, and rendering filters as buttons, sites trimmed indexing tim

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

Один клик в режиме Cloudflare Bot Fight Mode остановил работу SaaS API на целый месяц

Трафик API разработчика исчез, так как Cloudflare пометил его собственные обратные вызовы AWS Lambda как ботов. Поскольку в самом приложении ошибки не отображались, показатели использования оставались на нуле в течение нескольких недель, пока не был отключен режим Bot Fight.

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

GitHub запускает публичное превью стековых пул-реквестов для сокращения времени на ревью

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

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

TanStack отказывается от React Server Components из-за сложности и снижения производительности

Команда TanStack пришла к выводу, что отладка RSC требует отдельной ментальной модели, а выполнение только на стороне сервера нарушает совместимость со многими сторонними библиотеками, что вынудило их выбрать более простую архитектуру, работающую только на стороне клиента.

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

Исследование показало, что лишь 47% доменов с поддержкой DMARC фактически применяют политики

Иллюзия безопасности электронной почты. Говорят, что аутентификация электронной почты — это решенная проблема. Утверждают, что правила Google и Yahoo сделали интернет безопасным. Однако данные говорят об обратном. W…

WebDev · 1 мин чтения

РБИ обязывает все индийские цифровые платежные системы перейти на использование паскей к апрелю 2026 года

Новое правило РБИ дополняет положения закона DPDP о крупных штрафах за утечки данных и требование CERT-In об отчетности в течение шести часов, вынуждая банки заменить многоразовые пароли и SMS-коды (OTP) на криптографические паскеи, которые генерируют новую подпись при каждом входе в систему.

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

Почему ваше приложение зависает при 2 тысячах пользователей: борьба CPU и RAM за каждый запрос

Когда нагрузка достигает нескольких тысяч пользователей, каждый запрос требует своей порции циклов CPU и оперативной памяти, создавая очередь, которая увеличивает время отклика. Замедление — это не ошибка в коде, а борьба ограниченных ресурсов за место.

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

Миграция с Google на Microsoft может обойтись в миллионы, если не учесть эти скрытые ловушки

Успешная миграция из Google Workspace в Microsoft 365 требует полной инвентаризации всех рабочих нагрузок, правильно настроенных сервисных аккаунтов OAuth, инструментов, обрабатывающих метки Gmail без дублирования сообщений, автоматического управления ограничением частоты запросов Graph API и поэтапного перехода (bulk-plus-delta) для минимизации времени простоя.

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

.NET 8 TimeProvider Slashes Retry Test Time From 7 s to 36 ms

By injecting .NET 8’s TimeProvider and clearing xUnit’s SynchronizationContext, a seven-second retry-logic test now finishes in about 36 ms, eliminating idle sleeps and shrinking CI pipelines without any production overhead.

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

Фишинговые угрозы, созданные ИИ, заставляют каждого осваивать основы кибербезопасности

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

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

Отсутствие индекса превратило API с задержкой 8 мс в 8-секундный простой для 500 пользователей

Последовательное сканирование таблицы на 1,5 миллиона строк вынуждало БД считывать все строки при каждом запросе, что привело к 100% загрузке CPU и исчерпанию пулов соединений, пока «на лету» не был добавлен составной индекс.

WebDev · 1 мин чтения

Google приостанавливает рекламу Shopify, если товары с нулевым остатком перенаправляют на главную страницу

Когда остатки товаров становятся нулевыми, многие приложения Shopify незаметно включают перенаправление, которое отправляет пользователя с URL товара на главную страницу магазина. Google помечает это как «несоответствие целевой страницы» (landing-page-mismatch), приостанавливая показ объявлений и лишая магазин платного поискового трафика до тех пор, пока проблема с перенаправлением не будет устранена.

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

В 2026 году нагрузок Wasm на серверах впервые стало больше, чем в браузерах

В 2026 году 67 % организаций сообщают об использовании WebAssembly в продакшене — по сравнению с 47 % два года назад, — что делает его доминирующей средой выполнения для бессерверных функций и граничных вычислений, в то время как контейнеры по-прежнему используются для ресурсоемких задач.

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

Количество кликов на калькуляторе зарплат Next.js выросло на 351% на фоне повышения минимальной зарплаты в Румынии

Аудит подтвердил, что страница выполняет полный рендеринг HTML на стороне сервера, имеет ограниченное количество индексируемых комбинаций URL, а также были добавлены автоматизированные SEO-регрессионные тесты. После подтверждения технической исправности разработчик планирует нарастить количество обратных ссылок, чтобы вывести инструмент в топ поисковой выдачи.

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

Апгрейд обходится дороже, чем приносит пользы: для Wi-Fi 7 нужны новый роутер и оборудование с поддержкой 2.5 GbE

Замена модуля MediaTek Wi-Fi 6E в Strix G16 на чип Qualcomm Wi-Fi 7 увеличивает пропускную способность на величину до 50%, но чтобы почувствовать разницу, вам все равно понадобятся роутер с поддержкой Wi-Fi 7 и NAS или док-станция с поддержкой 2.5 GbE.

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

Сгенерированный ИИ скрипт отменил подписки всех клиентов в Stripe: почему виновата не сама модель

Всего одна строка кода, написанная ИИ, ошибочно приняла пустую очередь удаления за команду на полную отмену всех подписок. Запустившись с активным мастер-ключом Stripe и без контроля в процессе выполнения, она обрушила ежемесячную регулярную выручку (MRR) стартапа до всего лишь 38 долларов.

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

CLI и расширения VS Code позволяют агентам Claude загружать файлы, а десктопное приложение — нет

Десктопный клиент изолирует представление файловой системы агента, отклоняя загрузки, если файлы не соответствуют скрытому критерию «общего доступа». Запуск агента через CLI или расширение VS Code позволяет обойти эту проблему, в то время как единственный рабочий «хак» — вставка из буфера обмена — очищает буфер обмена пользователя и работает только в Windows.

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

Server Actions в Next.js позволяют отказаться от API-роутов для простых форм

Помечая функцию директивой «use server» и привязывая её к атрибуту action формы, разработчики могут отправлять данные напрямую на бэкенд без использования fetch, что избавляет от необходимости создавать отдельные API-роуты и сокращает объем клиентского кода.

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