RU

Как устроен локальный шахматный помощник в браузере: Stockfish 18, Manifest V3 и веб-доски

Stockfish умеет находить сильные ходы. Но браузерному расширению ещё нужно понять, какая из нескольких досок относится к текущей партии, дождаться с…

StockfishManifest V3расширения для браузеровGoogle ChromeJavaScriptшахматный помощникподсказки ходовшахматный движокшахматный читChessNavio
Habr
RU

Платформер в стиле DOOM: портируем старую курсовую на чистый JavaScript

Несколько лет назад у нас с одногруппником был зачёт по C++, и вместо того чтобы сделать что-то скромное (например, «Калькулятор» или «Генератор пар…

JavaScriptCanvasDOOMплатформерSFMLC++портирование кодаигровая физикарейкастингruvds_статьи
Habr
RU

От клика до железа: хроника одного запроса. Часть 2

В первой части мы заставили кнопку на веб-странице запустить локальный exe-файл через расширение Chrome и Native Messaging Host. Теперь усложним зад…

Chrome Native Messagingрасширения ChromeJavaJavaScriptGraalVMconnectNativeService WorkerManifest V3Native ImageWindows
Habr
RU

Как я собрал браузерный хоррор на Three.js: GLB-контракт, аномалии и PS1-рендеринг для слабых устройств

Как я сделал браузерную 3D-игру на Three.js и Vue: система аномалий, GLB-сцена, PS1-рендеринг и оптимизация под слабые устройства. Читать далее

three.jswebglJavaScriptTypeScriptVue.jsblenderglTFРазработка игрбраузерные игрыоптимизация производительности
Habr
RU

Как я пытался сделать стратегию из котов в стиральных машинах — и почему правила оказалось сложнее написать, чем код

Я сделал браузерную стратегию про котов в стиральных машинах и обнаружил, что пересчитать поле гораздо легче, чем объяснить человеку,…

геймдевбраузерная играигровая механикаUXJavaScriptискусственный интеллектпроцедурные правила
Habr
RU

Проекты Node.js. Создание реальных веб-приложений и API для бэкенда

Интернет переполнен руководствами по созданию простых веб-серверов на Node.js. И сегодня их не меньше, чем пять лет назад. Такие примеры хороши для…

NodeJSJavaScriptВебРазработкаБэкендпрограммированиебхвкнигитехническая литература
Habr
RU

Три разных номера из одной книги — и все проходят контрольную цифру

У EAN-13 есть контрольная цифра, и из этого обычно делают вывод: раз проверка сошлась, номер прочитан верно. Вывод неверный. Я получил с одной книги…

штрихкодEAN-13GS1контрольная цифрараспознавание кодовQRкамераJavaScriptбраузер
Habr
RU

Объекты в JS не бесплатные

Поговорим про микро-оптимизацию. Про, казалось бы, самую безобидную вещь: обычный {} . [object Object] выглядит почти бесплатной абстракцией. Создал…

JavaScriptNode.jsV8hidden classesinline cacheobject shapeJIT-компиляцияоптимизация производительностимикробенчмаркиdictionary mode
Habr
RU

Как гуманитарий без опыта в кодинге собрал инди‑игру с AI‑агентом за полтора месяца

От концепт-дизайна велосипедного магазина до релизной web-игры на GitHub Pages — и почему документация оказалась важнее промптов. Читать далее

AI-агентыискусственный интеллектразработка игринди-игрыгеймдизайнproduct designvibe codingGitHub PagesJavaScript
Habr
RU

Zero на Three.js: инженерный разбор интерактивного сайта

Разбираем, как BUNQ LABS сделала zero.university: виртуальный скролл, шейдеры, KTX2/DRACO, адаптивное качество и загрузка текстур без фризов. Провер…

JavaScriptВеб-разработкаЛучшая практикаПроизводительностьHTMLДизайн интерфейсов и UXФреймворки и библиотекиФронтендСтатьи
Tproger
RU

Модель исполнения JavaScript по спецификации ECMAScript: call stack, контексты, окружения и замыкания

Я довольно долго был уверен, что понимаю, как работает call stack. Ну а что там понимать? Положил кадр, снял кадр, LIFO. Потом открыл спецификацию.…

JavaScriptECMAScriptexecution contextконтекст выполнениязамыканияобласть видимостиECMA-262call stackevent loopлексическое окружение
Habr
RU

Один поток, а всё успевает: как работает цикл событий в JavaScript

Promise , setTimeout и async/await часто работают совсем не в том порядке, которого ждёшь по коду, а тяжёлая синхронная функция способна заморозить…

цикл событийJavaScriptасинхронностьстек вызововмикрозадачимакрозадачипромисыsetTimeoutWeb Workers.
Habr
RU

React-паттерн, который все используют, но он убивает производительность

Почему React.memo перестаёт работать из-за inline-пропсов и как это исправить. Разбираем на примере со 200 строками и замерами. — Читать дальше « Re…

JavaScriptВеб-разработкаОптимизацияПроизводительностьTypeScriptReactReactJSФронтендСтатьи
Tproger
RU

Прототипирование фронта в 2к26 от системного аналитика

Раньше для согласования интерфейса я собирал макет в Figma, описывал каждое поле, отдавал его дизайнеру, а потом отдельно объяснял логику фронтенд-р…

системный аналитикпрототипирование интерфейсоввайбкодингискусственный интеллектLLMFigmaHTMLCSSJavaScriptтребования
Habr