Category : javascript

javascript
«Я собрал приложение за выходные». Почему вайбкодинг в проде опаснее, чем кажется

Где заканчивается прототип и начинается инженерия, почему «работает у меня» не равно «готово для бизнеса», и за что на самом деле платят опытной команде.Иллюстрация 1. Ожидаемый результат против ответсвенности.Коротко. Vibe coding хорош для прототипа, но в production скорость генерации кода не заменяет архитектуру, security review,тестирование, наблюдаемость и эксплуатационную ответственностьЗа последний год я несколько раз слышал одну и ту же формулу: «Зачем мне команда разработки? Я найду чел…

  • пятница, 28 августа 2026 г. в 00:00:06
javascript
Мой vault стал планетой: как я сделал 3D-граф знаний для Obsidian на Three.js

Плагин CosmoGraph 3D визуализирует vault Obsidian как интерактивную планету заметокЯ люблю встроенный граф Obsidian. Первые секунд тридцать.Пока заметок немного, он действительно помогает увидеть связи. Потом vault подрастает, граф превращается в клубок из сотен точек и линий, а я снова открываю поиск и набираю имя файла руками. Всё вроде бы связано, но пользоваться этой картиной как картой уже трудно.В какой-то момент мне захотелось не просто видеть, что заметка A связана с заметкой B. Хотелос…

  • пятница, 28 августа 2026 г. в 00:00:04
javascript
Рефакторинг моего Obsidian: как я перестроил хранилище после предыдущей статьи

ПредысловиеКакое-то время назад я выкладывал статью на Хабр про свое obsidian хранилище.Я получил хороший фидбэк и некоторые идеи. Также я понял, что довольно большая часть моего obsidian нуждается в оптимизации и структуризации. В итоге нашел свободный выходной, чтобы немного перестроить хранилище. Я все это сделал и тут расскажу, как теперь выглядит мой obsidian.Кроме простой структуризации и удаления лишнего, я также провел некоторые махинации над кодом dataviewjs своей библиотеки книг и дод…

  • пятница, 28 августа 2026 г. в 00:00:04
javascript
Self‑hosted вместо подписок: асинхронная очередь для ИИ‑агента на n8n и Redis

В прошлой статье я показал, как простой дебаунс на Redis спасает бюджет от дробных сообщений: клиент строчит «привет» — «сколько стоит» — «а есть другой размер» пятью сообщениями подряд, а LLM получает один склеенный промпт.Дисклеймер: в статье упоминается Meta: организация признана террористической и запрещена в РФ) Схема, код и цифры взяты из продакшена; название проекта и префиксы ключей изменены. Статья не является рекламой/самопиаром и тому подобное.Сегодня я поделюсь уровнем ниже. Дебаунс…

  • четверг, 27 августа 2026 г. в 00:00:06
javascript
Разработчики в вашей компании уже тратят много токенов. Как проверить реальную пользу ИИ для бизнес…

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

  • среда, 26 августа 2026 г. в 00:00:11
javascript
Ускоряем drop in replace Next.js в 100 раз. Часть 2

В первой части мы разобрали архитектуру Rari, выяснили, почему Rust перед V8 даёт выигрыш в производительности, и посмотрели на бенчмарки. В этой статье хочется поговорить о том, что обычно остаётся за кадром бенчмарков: как это работает в продакшене, что конкретно поменялось под капотом, где ломается совместимость с Next.js, как мы портировали их SWC-плагины и как производительность выросла с 4x до 67x.Один процесс вместо целого стека технологийNext.js в продакшене почти никогда не работает бе…

  • среда, 26 августа 2026 г. в 00:00:10
javascript
Скролл-фильм на лендинге весил 84 МБ. WebCodecs ужал его до 18 — вот что сработало, а что нет

У меня лендинг устроен как «фильм, который листаешь»: крутишь колесо — камера едет по сцене. Классическая реализация такого — секвенция кадров: сотни WebP, по картинке на каждую позицию скролла. Работает, но на мобильной версии это выливалось в 84 МБ трафика. На десктопе — 128. Для лендинга, который человек открывает с рекламы на телефоне где-нибудь в лифте, — приговор.Расскажу, как я заменил секвенции кадров на видеопоток, который декодируется прямо в браузере через WebCodecs, почему выбросил …

  • среда, 26 августа 2026 г. в 00:00:09
javascript
Монорепозиторий с поддержкой Vite, TS, ESM и абсолютных импортов без расширений с использованием «s…

ЦелиНастройка абсолютных импортов без расширений для внутренних модулей пакета с использованием Node.js subpath imports, как единого источника псевдонимов: без дублирования в tsconfig path aliases;с поддержкой VSCode IntelliSense - автоимпорт, автодополнение и всплывающие подсказки импортов.Настройка conditional exports - маппинг на исходный код внутренней библиотеки в dev-режиме, для работы Vite(HMR) и VSCode(IntelliSense) с живым кодом без пересборки.Настройка приоритета для автоимпорта публи…

  • среда, 26 августа 2026 г. в 00:00:08
javascript
Один рендер‑стек, два мира: как мы показали layout микросхем в браузере через WebGPU

Тот же Rust‑код, что рисует топологию на десктопе, собирается в wasm и рисует в <canvas> через WebGPU. Сайт при этом не знает про GPU: кликнул на нарушение в списке, камера уехала на место, маркер показал дефект. Ниже как это устроено, где «просто пересобрали» было бы враньём, и какие ловушки сидят не в Rust, а в вебе.ЗадачаУ нас десктопный инструмент для топологии интегральных схем, layout в формате GDSII (и OASIS). Файл описывает геометрию кристалла: иерархия ячеек, на листьях прямоугол…

  • среда, 26 августа 2026 г. в 00:00:07