Category : javascript

javascript
Операционная система Анна версия 0.0.60

Решил написать продолжение к предыдущей моей статье Операционная система Анна. Назвал "операционной системой" скорее как отсылку к фильму "Она" (Her) - понимаю, что это, конечно, не ОС в классическом смысле, так что прошу воспринимать это как художественное название, а не технический термин. Ну и вот недавно моя жена затеяла вести расходы в Google Sheets. Увидел её мучения о том, как создать формулы, листы и т. д. В итоге ей посоветовал поставить Анну на её домашний компьютер. П…

  • понедельник, 30 марта 2026 г. в 00:00:04
javascript
OpenClaw на русском — как я перевёл интерфейс, не трогая исходники

У меня OpenClaw крутится на VPS уже два месяца. Штука крутая, но есть один момент, который бесит: весь интерфейс личного кабинета на английском. Я-то ладно, привык, но когда показываешь коллегам или знакомым — сразу «а что тут нажимать» и «а это что за Settings».Казалось бы, ну загугли «openclaw на русском» — и найдёшь готовую локализацию. Нет. Нету. В roadmap проекта тоже ничего про i18n. Строки захардкожены прямо в JSX, никакого react-intl или i18next там и близко нет. То есть даже если отпра…

  • понедельник, 30 марта 2026 г. в 00:00:04
javascript
Как React обновляет UI: trigger → render → commit

Когда говорят «React перерендерился» — обычно имеют в виду что-то расплывчатое. Новичкам это слово объясняет всё и ничего одновременно. В официальной документации процесс описан точнее: trigger → render → commit. Давайте разберём, что происходит на каждом этапе — без магии, зато с Fiber, флагами и браузерным пайплайном.Render-фаза: вычисление измененийRender-фаза — это не обновление DOM. Это вычисление того, каким DOM должен стать.React рекурсивно обходит дерево компонентов, вызывает их функции…

  • воскресенье, 29 марта 2026 г. в 00:00:03
javascript
Геройский движок на javascript

Как-то я вспоминал, как будучи школьником мы частенько собирались, чтобы поиграть в третьих героев. Как вы понимаете, ни одна из этих партий не только не доводилась до конца (про это будет картинка в статье), но и даже не доходила до битвы между игроками-человеками. И тогда ко мне пришла идея реализовать сетевой вариант игры по мотивам героев. Изначально задумка была сделать что-то типа Kings Bounty: у игрока один герой, он ходит по карте, подбирает сундуки, нанимает отряды и, наконец, находит …

  • воскресенье, 29 марта 2026 г. в 00:00:02
javascript
Как я тестирую API: чеклист и подходы, и автоматизация

API-тестирование — это та часть QA, которую часто делают на глаз. Открыл Postman, потыкал пару эндпоинтов, всё ответило 200 — окей, работает. Но это не тестирование, это проверка что сервер вообще живой.В этой статье разберу конкретные вещи, которые стоит проверять в API, покажу как это делать в Postman и через автотесты на JavaScript, и дам чеклист который можно взять и использовать прямо сейчас.Что вообще нужно проверять в APIРазобьём на категории — так проще не пропустить ничего важного.1. С…

  • суббота, 28 марта 2026 г. в 00:00:07
javascript
Frontend Status: свежий дайджест фронтенда и AI — 27.03.2026

Frontend Status: Привет! Свежий дайджест фронтенда и AIПривет!Это юбилейный десятый выпуск Frontend Status — дайджеста по фронтенд-разработке и AI.В этом выпуске:📺 TanStack AI генерирует картинки, а не только чат-ботов.🤖 Почему ИИ выдаёт глупый код — и трёхуровневая архитектура, которая это исправляет.🎨 Математическая модель masonry-раскладки на Flexbox — с алгеброй, а не «работающим примером».⚡ TypeScript 6.0, обновления безопасности Node.js, петиция против AI-кода в ядре Node.js и Kafka из No…

  • суббота, 28 марта 2026 г. в 00:00:06
javascript
Разработка мигратора кода с использованием ИИ на примере миграции с Linaria на CSS Modules

Всем привет!Меня зовут Михаил Витик, я занимаюсь разработкой больше двадцати лет, а сейчас работаю в Лемана Тех техлидом в сервисной команде, которая поддерживает команды разработки сайта Лемана ПРО. За это время довелось поработать с разными языками и стеками — от Borland C++ и Delphi до .NET и современного TypeScript. В какой‑то момент у нас возникла задача, которая на первый взгляд казалась довольно рутинной, но при более близком рассмотрении оказалась типичным инженерным болотом: много одно…

  • суббота, 28 марта 2026 г. в 00:00:05
javascript
Проектирование бесплатного API с пользовательскими данными: почему я отказался от jsonplaceholder

Я периодически провожу технические интервью и смотрю pet-проекты кандидатов.И почти всегда вижу одну и ту же картину:Используется localStorage или заглушки вроде jsonplaceholder.Я прекрасно понимаю, почему так происходит:никто не хочет платить за серверне хочется поднимать backend ради тестового проектараньше можно было использовать бесплатный Heroku, но это уже в прошломВ итоге почти все проекты выглядят одинаково:статические данныефейковые APIзагрузка через setTimeout, чтобы "сымитировать…

  • суббота, 28 марта 2026 г. в 00:00:04
javascript
URL как источник правды в Next.js App Router

Когда разработчик приходит в Next.js из обычного React SPA, он часто тащит с собой старую схему мышления. Есть поле ввода, значит будет useState. Есть поиск, значит будет useEffect. Есть список данных, значит будем следить за изменением состояния и вручную запускать новый запрос.На маленьком экране это вроде работает. Но очень быстро выясняется, что в приложении уже не одно состояние, а три. Есть значение в поле, значение в URL, данные, загруженные по одному из этих значений. Потом появляется ч…

  • суббота, 28 марта 2026 г. в 00:00:03