Category : javascript

javascript
Компонентная разработка (reusable)

Это не разбор, не рекомендация, а скорее ценный опыт фронтовой команды с полей российского IT. Все что описано ниже — общий результат нашей работы.Перед любой командой со стороны менеджмента и бизнеса стоит одна и та же задача «давайте быстрее — надо было еще вчера». Нас эта судьба также не миновала. Первое, с чего начинается оптимизация, своя дизайн‑система. У нас уже была своя дизайн‑система, она выручала нас во многих кейсах, но она была старая, подходы к разработке давно изменились, и UI Ki…

  • среда, 3 июня 2026 г. в 00:00:16
javascript
Удаляем фон и замазываем лица прямо в браузере: ONNX Runtime, MediaPipe и грабли Service Worker

TL;DR. Две нейросетевые задачи — удаление фона (ONNX Runtime Web + модель silueta) и замазывание лиц (MediaPipe Tasks Vision + BlazeFace) — запущены полностью на клиенте: ни один пиксель не уходит на сервер. Ниже — почему «в браузере», какие модели выбраны и почему, как тянуть 43-мегабайтную модель с прогресс-баром, почему лица лучше пикселизировать, чем размывать, и подробный разбор бага, на который я убил вечер: Service Worker, кэширующий .mjs/.wasm, ломает dynamic import() с ошибкой «Failed …

  • среда, 3 июня 2026 г. в 00:00:14
javascript
Как я разогнал Qwen3.6-27B до 73 токен/с в llama.cpp: параметры, которые реально работают

Локальные LLM сейчас — это действительно мощный инструмент. Они уже вплотную приблизились к проприетарным моделям вроде Claude, особенно в задачах кодинга. Я сам активно использую локальные модели для разработки на TypeScript и Go.На данный момент самая интересная модель для моего стека — Qwen3.6-27B. Но один только выбор хорошей модели ничего не гарантирует. Без правильных параметров вы не получите ни скорости, ни качества.В этой статье я расскажу, с какими конкретно параметрами запускаю Qwen3…

  • среда, 3 июня 2026 г. в 00:00:11
javascript
Математика больших чисел: из игры с нулевой суммой в игру с растущей суммой

Исходный код, разобранный в статье, опубликован в этом репозитории.Любая торговая стратегия в бесконечной временной перспективе стремится к нулевому матожиданию сделки: ничего не заработали, заплатили комиссию бирже. Можно предположить, что это связано с утечкой информации, стратегию применяют другие участники рынка и забирают ликвидность. Но дело в другом: это фундаментальный закон больших чисел. Объем рынка подлежит прогнозу, а значит это конечная сумма. При игре с конечной суммой капитал на …

  • вторник, 2 июня 2026 г. в 00:00:22
javascript
React Native iOS Push Notifications: почему push не сохраняются в background/killed state

ВведениеМатериал написан на основе реального кейса интеграции Mindbox SDK в React Native приложение, но все описанные проблемы и решения универсальны - они касаются любого push-провайдера и любого проекта, где уведомления должны работать в killed state на iOS.Полагаю, вы законно спросите: А какая задача вообще стояла? Отвечаю, необходимо было не просто показать пользователю push-сообщение, а нужно было эти пуши сохранить в памяти телефона, да ещё и в состоянии, когда приложение закрыто.Я не буд…

  • вторник, 2 июня 2026 г. в 00:00:20
javascript
Подмена hero на edge по UTM: Cloudflare Pages Functions + HTMLRewriter для React SSG за 200 строк

Проблема. У вас один SSG-лендинг, на который льётся платный трафик из 12 разных рекламных кампаний. Каждая группа объявлений сделана под свою боль ЦА: «AI-сотрудники», «AI-агенты», «стратегическая сессия», «управленческая отчётность». Все ведут на один дефолтный hero «ИИ для бизнеса». Конверсия в заявку проседает на 30–50% по сравнению с разнотемными лендингами под каждую группу. Делать 12 отдельных лендингов — дорого по разработке и убивает SEO. Подменять hero JavaScript-ом на клиенте — FOUC, …

  • вторник, 2 июня 2026 г. в 00:00:19
javascript
Route Handlers как мини-бэкенд внутри Next.js App Router

Когда проект на Next.js только начинается, прямой fetch во внешний API кажется самым коротким путём. Есть страница списка, есть поиск, есть внешний источник данных, значит можно сходить туда напрямую и сразу показать результат.На маленьком экране это работает. Но дальше почти всегда начинаются одинаковые проблемы. Интерфейс начинает зависеть от чужой структуры ответа. Ошибки приходят в форме, которую неудобно показывать пользователю. Параметры запроса приходится валидировать в UI. Потом появляе…

  • вторник, 2 июня 2026 г. в 00:00:17
javascript
Миграция на Vue 3 начинается не с кода: как донести важность и подготовить проект

«Бизнесу это невыгодно!», «Мы не будем вкладывать в это ресурсы», «Зачем, оно и так отлично работает» — какие аргументы можно привести против всех этих высказываний?Миграция на Vue 3 по факту это технический долг, на который обычно выделяют по минимуму времени. Проекты работают, пользователи не жалуются, а небо всё также синее. Можно жить дальше?Можно! Но есть моменты на которые важно обратить внимание и донести бизнесу.В этой статье хочется поговорить про две важные стороны миграции: почему пе…

  • вторник, 2 июня 2026 г. в 00:00:16
javascript
Новый Intl.DurationFormat привел к неожиданной ошибке приложения

Если вы уже используете новый Intl.DurationFormat в совсем проекте, то вам будет полезен мой кейс и поможет вам сэкономить пару часов на дебагинг.Продукт над которым я работаю - это платежная форма. Это стабильное давно работающее приложение и вдруг пользователи стали сообщать об «Unknown error» при попытке провести транзакцию. При этом проблема была только для одного вида транзакций — «Счет».Сначала проверили бэкенд, там все запросы проходят корректно, я стала проверять фронт и к моему удивлен…

  • вторник, 2 июня 2026 г. в 00:00:14