Category : javascript

javascript
o2 game engine

Этот проект я начал 11 лет назад и вложил в него все свои навыки и опыт работы в геймдеве. Я делаю игры уже 15+ лет, и в своем движке я постарался дать разработчику то что считаю нужным: удобство и простоту, при этом оставляя его производительным и гибким. Я работаю в основном с мобильными играми, так что движок скорее нацелен на мобилки. Однако нет препятствий использовать его для десктопа и под веб.Я все еще дорабатываю его, но он уже вполне стабилен и я делаю игры на нем. Сейчас это ближе к …

  • вторник, 25 августа 2026 г. в 00:00:11
javascript
Как устроен локальный шахматный помощник в браузере: Stockfish 18, Manifest V3 и веб-доски

Я хотел подсказку рядом с доской, а не ещё одну вкладку с движком. Stockfish 18 давно умеет искать сильный ход, упаковать WASM в Chromium-расширение тоже не подвиг. Первое демо на своей статичной странице собралось за вечер: фигуры сняли, FEN собрали, стрелка легла. Настоящая работа началась, когда ту же схему повесили на живой шахматный сайт.Самый неприятный случай оказался не «движок тупит», а «движок прав, только не про эту доску». Реванш на Lichess часто стартует на том же URL и с той же на…

  • вторник, 25 августа 2026 г. в 00:00:09
javascript
DeepSeek управляет вашим рестораном

Как просьба друга «настроить кассу» закончилась open‑source ERP, тринадцатью российскими интеграциями и нейросетью, которая теперь считает закупки, ищет косяки в учёте и пишет владельцу в Telegram.Есть у меня друг. Назовём его Артём.Полгода назад он решил открыть ресторан. Небольшой: пятнадцать столиков, кухня, бар, доставка. Никакой федеральной сети и отдела автоматизации на сорок человек. Обычный ресторан, где владелец ещё вчера выбирал стулья, сегодня разбирается с поставщиком мяса, а вечеро…

  • вторник, 25 августа 2026 г. в 00:00:08
javascript
Глубокое погружение в React Fiber

Задумывались ли вы когда-нибудь о том, что на самом деле происходит под капотом, когда вы рендерите приложение React? Мы знаем, что React строит дерево DOM и отображает UI на экране, но как React конструирует это дерево и как он эффективно обновляет его при изменении состояния?В этой статье мы рассмотрим React Fiber — основной движок согласования (reconciliation) React. Мы рассмотрим, как React строил DOM до v15, недостатки этой ранней стековой (stack) модели с точки зрения производительности и…

  • вторник, 25 августа 2026 г. в 00:00:07
javascript
Модель не влезает на стол: почему плоскость — плохой нож

У меня браузерный генератор вывесок: человек набирает надпись, получает STL-модель корпуса под светодиодную ленту. Всё считается на его же машине, файл никуда не уходит. Однажды пришёл вопрос, который сломал мне неделю: надпись 500 мм, стол принтера 256×256. Что делать?Стандартный ответ — «режьте в слайсере». Слайсер режет плоскостью, и это честно работает ровно до момента, когда вы забираете со стола две половинки со срезами и понимаете, что совместить их нормально не получится они не совпадаю…

  • вторник, 25 августа 2026 г. в 00:00:06
javascript
Больше свободы агентам — жёстче проверки: линтинг React 19 на ESLint 10

Чем дальше, тем больше доверяю ИИ-агентам, наверное потому что я пока жестко не влетел. Более того, процесс идёт постепенно - тут разрешил машину в облаке запустить когда задача XXX, не спрашивая у меня разрешения на каждый чих, здесь ещё что-то.Это очень сильно ускоряет работу, хотя и влететь можно сильно и больно. Пока меня это обошло стороной, поэтому в разрезе агентов и их креатива больше всего прилетает о того что они пишут больше кода чем надо, делают мелкие опечатки и ошибки и для борьбы…

  • понедельник, 24 августа 2026 г. в 00:00:11
javascript
Playwright для компонентных CAT-тестов в проекте на angular

Когда говорят «у нас есть тесты на Playwright», обычно представляют классический e2e-сценарий: тест открывает приложение, проходит авторизацию, переходит по нескольким страницам и работает с настоящим или почти настоящим backend.Мы используем Playwright немного иначе.Основной пласт UI-автоматизации в нашем Angular-проекте — это CAT-тесты. CAT в данном случае расшифровывается как component autotest. Мы поднимаем отдельный компонент или целую бизнес-форму в Storybook, открываем её в настоящем Chr…

  • воскресенье, 23 августа 2026 г. в 00:00:02
javascript
Платформер в стиле DOOM: портируем старую курсовую на чистый JavaScript

Вступление: работа, которая распалась на два проектаНесколько лет назад у нас с одногруппником был зачёт по C++, и вместо того чтобы сделать что-то скромное (например, «Калькулятор» или «Генератор паролей»), мы, конечно же, решили замахнуться на какую-то игру, и тогда нам попалась новость о 30-летнем юбилее игры DOOM. План был красивый, т. к. на тот момент командной работы у нас не было, мы решили, что мой одногруппник пишет псевдо-3D-движок в духе классического рейкастинга, а я делаю 2D-платфо…

  • суббота, 22 августа 2026 г. в 00:00:12
javascript
DI во фронтенде: от Context API к Composition Root

Цикл статей «Tactical DDD во фронтенде»:«Почему мы снова говорим про архитектуру?»DI во фронтенде: от Context API к Composition Root (Вы здесь)UI как плагин: паттерн Фасад и реактивные потоки данных (Скоро)В прошлой статье мы определились с глобальными подходами к изоляции бизнес-логики в веб-приложениях. Но как реализовать все озвученные концепции на практике? С чего вообще начать и как подступиться к столь масштабной задаче?Прежде чем нырять с головой в проектирование самих доменов — их сущно…

  • суббота, 22 августа 2026 г. в 00:00:10