Category : javascript

javascript
ПаровоJSик: как мы не нашли тренажер для JS/TS‑собеседований на русском и сделали свой

Предыстория: откуда взялась идеяНас двое. Один из нас недавно искал работу и ходил по собеседованиям. Второй сам собеседует кандидатов и раз за разом видит одну картину, люди спотыкаются на одних и тех же задачах. Debounce, глубокое сравнение объектов, форма с валидацией. Задачи не сложные, но на собеседовании их надо написать руками, без автокомплита и без ChatGPT в соседней вкладке.Copilot и Cursor сейчас пишут код быстрее, чем успеваешь сформулировать задачу. Но на собеседовании их нет. Есть…

  • пятница, 30 октября 2026 г. в 00:00:17
javascript
ymcp, или как подружить агентов с YouTrack, если ты не админ

ymcp, или как подружить агентов с YouTrack, если ты не админВсё началось с того, что я в очередной раз копировал описание задачи из YouTrack в Claude Code. Потом комментарии к ней. Потом ещё один комментарий, который кто‑то оставил, пока я копировал первые. Потом ждал, пока агент напишет код, открывал PR, возвращался в задачу, вставлял ссылку, менял статус на Fixed — и шёл за следующей.В какой‑то момент я понял, что из всей этой цепочки самая бесполезная её часть — это я. Агент умеет писать код…

  • пятница, 30 октября 2026 г. в 00:00:16
javascript
Как React прерывает рендер: конкурентный рендеринг изнутри

Начиная с React 18 рендер можно прервать: срочные обновления обгоняют несрочные, даже если React уже взялся за несрочное. Если задуматься, вопросов много:Как React посреди рендера отдаёт поток браузеру, чтобы тот обработал ввод, а потом продолжает с того же места?Почему до React 16 он так не умел?Кто решает, какие обновления срочные, и почему большинство рендеров не прерывается вообще?Что происходит с незакоммиченными обновлениями, когда пришло что-то срочное?И главное, как обновления, которые …

  • пятница, 30 октября 2026 г. в 00:00:15
javascript
Тема Tailwind CSS из дизайн‑токенов одной командой

Я сам рисую интерфейсы и сам их верстаю. У меня есть библиотека стилей pbstyles: цвета, размеры и шрифты в ней описаны дизайн‑токенами. Тему для Tailwind я хотел собирать из этих токенов, а не переписывать руками после каждой правки в Figma. Так появился пакет tailwind‑dictionary.Он берёт токены в JSON и собирает из них тему Tailwind CSS. Светлая и тёмная тема собираются из тех же файлов.Пакет пригодится, если у вас уже есть токены, но переходить на Tailwind не хочется из‑за того, что тему прид…

  • пятница, 30 октября 2026 г. в 00:00:13
javascript
Голографический верстак из обычной вебки: разбираю турбину руками без шлема и датчиков глубины

Короче, мне всегда хотелось как в «Железном человеке»: протянуть руку, взять деталь прямо из воздуха и вытащить её из двигателя. Шлема у меня нет, перчаток с датчиками тоже. Есть ноутбук, встроенная камера и браузер.В итоге из этого получилась маленькая лаборатория. Двигатель разбирается на детали, из человека можно достать сердце и покрутить его, молекулу глюкозы собираешь из атомов пальцами. Видео с камеры никуда не уходит, всё считается в браузере на твоём же компьютере.Кода в статье не буде…

  • пятница, 30 октября 2026 г. в 00:00:12
javascript
vue-llm: AI SDK для Vue и Nuxt — стриминговый чат, Generative UI и модели прямо в браузере

Если вы делали AI-фичу на Vue, то, скорее всего, сталкивались с одним и тем же: большинство готовых инструментов для LLM-интерфейсов написаны с прицелом на React, а во Vue их приходится адаптировать или писать стриминг, tool calling и состояние чата вручную. Я сделал vue-llm — open-source библиотеку, которая закрывает это для Vue 3, Nuxt и даже Vue 2.7.Сразу ссылки, чтобы можно было пощупать:Песочница без API-ключа (модель скачивается и работает прямо в браузере на WebGPU): https://vue-llm.js.o…

  • пятница, 30 октября 2026 г. в 00:00:10
javascript
Я сделал сайт, где можно самому пролистать Вселенную: от 490-метрового астероида до границы наблюда…

Сайт: legendacr.github.io/size‑of‑spaceКод: github.com/LegendaCR/size‑of‑space (MIT)Помните Size of Life от Нила Агарвала? Листаешь вправо, и рядом с каждым существом появляется следующее, побольше. Мне захотелось такого же, но про космос: начать с крошечного астероида и пролистать всё до самой границы того, что мы вообще можем увидеть.Получилось 79 объектов и 24 порядка величины, от астероида Бенну диаметром 490 метров до наблюдаемой Вселенной в 93 миллиарда световых лет. Всё рисуется в реальн…

  • четверг, 29 октября 2026 г. в 00:00:17
javascript
Ручная инвалидация рендера как осознанный антипаттерн в React

Во время разработки библиотеки morphing-scroll я пришёл к необычному способу организации локальных данных в React-компоненте. Это не было заранее придуманной архитектурой. Я экспериментировал с обновлениями, постепенно убирал лишние состояния и в какой-то момент получил код, который оказался заметно проще прежнего. Для меня это стало настоящим открытием.Позже я вынес найденный механизм в хук useRerender и добавил в свой стейт-менеджер nexus-state. В этой статье я хочу показать не только результ…

  • четверг, 29 октября 2026 г. в 00:00:16
javascript
Калькулятор сметы и фильтр каталога. Что теряется между макетом и кодом

Я проектировал каталог и калькулятор сметы для сайта компании, которая строит загородные дома. Моя часть была в проектировании и дизайне, вёрстку и бэкенд делала другая команда. Сайт запущен и работает. Недавно я снял с него разметку, CSS и клиентский скрипт и положил рядом с макетами, чтобы проверить, как решения дошли до кода.Расскажу, как я раскладывал смету на данные, как она устроена в продакшене, какие граничные случаи я оставил без правила и какую спецификацию я передал бы сейчас. Почти …

  • среда, 28 октября 2026 г. в 00:00:11