RU

Среда исполнения JavaScript в браузере по стандарту HTML: агенты, event loop, task'и и микрозадачи

Обычно браузер представляют так: у каждой вкладки свой поток и свой event loop, а промис срабатывает раньше таймера, потому что микрозадачи приорите…

JavaScriptevent loopмикрозадачиHTML Standardtask queuePromisesetTimeoutагентыrealmenvironment settings object
Habr
RU

Я строил не 3D‑мир, а базовый слой под ним: три узких места в браузерном 3D

Последние месяцы я делаю 3D‑мир, который работает прямо в браузере — на Three.js: сцена, персонажи, сеть. Самое неприятное в про…

Three.jsWebGLJavaScriptоптимизацияпроизводительностьшейдерырендерингбраузерный 3D
Habr
RU

Gauntlet Loop — величайшее заклинание в мире маглов

Привет, Хабр! Сегодня я расскажу о том, как пользователю ИИ, далекому от профессионального проектирования полиагентных систем, получать результаты,…

сезон Код будущегоразработка с ИИChatGPTCodexGauntlet Loopтестированиеинтерактивные лекцииHTMLJavaScriptлинейная алгебра
Habr
RU

Зачем быстрая реактивность за пределами DOM: ответы на вопросы и знакомство с Raph

Зачем ускорять реактивность, если всё упирается в DOM? Рассказываю об устройстве Raph/Nova и показываю, как одно ядро используется для DOM и Canvas.…

JavaScriptреактивностьRaphNovaCanvasWebGLпроизводительностьбенчмаркиуправление состояниемвизуализация данных
Habr
RU

EventBus и CommandBus во frontend: когда прямых вызовов становится слишком много

Практический разбор двух простых шин: как разделить запуск действий и реакцию на изменения в реальном frontend-приложении. Читать далее

EventBusCommandBusJavaScriptTypeScriptfrontendархитектура frontendпаттерны проектированияcommand patternвеб-разработка
Habr
RU

«По будням в 9:30» → 30 9 * * 1–5: парсер расписаний на русском, который отказывается угадывать

Библиотека называется cronsense. Она переводит расписание, записанное обычными словами на русском или английском, в cron‑выражение и…

cronпарсерnatural languageTypeScriptJavaScriptopen sourceрасписаниеJSRMCPproperty-based testing
Habr
RU

Поиск по миллиону товаров на JavaScript: когда сжатый индекс проигрывает массиву

На миллионе синтетических записей в Node.js сжатый индекс обогнал простое пересечение массивов примерно в пять раз — на запросах «редкое + частое».…

JavaScriptинвертированный индексUint32ArrayvarintIndexedDBWeb Workersоптимизация памяти
Habr
RU

Как тестировать API с 202 Accepted и не пропускать сбои фоновой обработки

Запрос получил 202 , автотест прошёл, а через несколько дней выясняется, что часть операций так и не завершилась успешно. Такая ситуа…

автотестытестирование APIAPIJavaScriptасинхронные операцииавтоматизация тестированияHTTPинтеграционное тестированиепроверка качестваразработка ПО
Habr
RU

Он удалил 11 строк кода. Через час перестали собираться Babel, React Native и тысячи проектов по всему миру

История left-pad, самого нелепого апокалипсиса в истории open-source. Заодно про то, почему миф о надёжности открытого кода не выдерживает проверки…

eft-padnpmopen sourceцепочка поставокsupply chainзависимостиBabelJavaScriptмейнтейнерыинцидент.
Habr
RU

Модель выложила системный промпт, в котором было написано его не выкладывать

Ночью в логах сервиса появились две записи. Сначала мусор, потом нормальный на вид договор, а в середине, между условием об оплате и условием о неус…

промпт-инъекциябезопасность LLMлокальные моделисистемный промптрегулярные выражениякириллицаJavaScriptNode.js
Habr
RU

Cordis: плагинная архитектура как новый слой композиции JS/TS-приложений

Что изменится, если плагин станет не дополнением, а основной единицей архитектуры приложения? На примере Cordis и DeepSeek Harness разберём, как сре…

CordisDeepSeek HarnessJavaScriptTypeScriptплагиныархитектуракомпозируемостьжизненный циклModule FederationAI-агенты.
Habr