Обновить
256K+

JavaScript *

Прототипно-ориентированный язык программирования

251,1
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

TUI-агент включает alt-буфер один раз за сессию. Через 256 КБ вывода это ломает терминал

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели5.3K

Жалоба звучала как «скролл нестабильный»: колесо в панели с агентом то работает, то нет, текст съезжает, кадры дублируются. Виноват не скролл. Claude Code под ConPTY включает альтернативный буфер и отчёты мыши один раз при старте и больше их не переотправляет, а replay-буфер панели ограничен 256 КБ.

Читать далее

Новости

Проверка исходников VSCode

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели6.3K

Теперь можно говорить без всяких прикрас: мы выпустили анализатор для языков JavaScript и TypeScript. А значит, это повод испытать его в полевых условиях и посмотреть, что он найдёт в исходном коде хорошо знакомого многим Open Source проекта Visual Studio Code. Если вам интересно узнать, какие ошибки и подозрительные фрагменты кода обнаружил анализатор, — добро пожаловать в статью.

Читать далее

JavaScript и TypeScript в OpenIDE: Node.js, React, Angular, Git и работа с API

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели6K

Если вы пишете на JavaScript или TypeScript, выбор инструмента обычно начинается с двух знакомых вариантов: VSCode или WebStorm.

Сегодня расскажу вам про третий вариант: OpenIDE. Это готовая IDE на базе той же платформы, которую использует WebStorm.

Философия также схожа: вам не нужно собирать рабочий инструмент из десятка расширений. В одном дистрибутиве комфортно и легко настроить и менять версии Node.js, npm, yarn и pnpm, TypeScript, React и Angular, линтеров, Git и HTTP-клиенты. Можно открыть проект и сразу заниматься делом.

Читать далее

Пакуем PHP в PHP, чтобы запаковать в JS, чтобы обернуть в HTML

Время на прочтение3 мин
Охват и читатели4.8K

Прочтя недавний перевод про запаковку БД в exe, решил рассказать об идеи, которую реализовал лет 6 назад в своем домашнем проекте. Сам проект недоделал, но речь в статье об архитектуре файлов и их запаковке.

Читать далее

Один пакет — один мини-плеер: почему мы перенесли голос БОЛТУНа в AudioWorklet

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели4.7K

Почему исправные 20-мс аудиопакеты всё равно превращались в щелчки? В БОЛТУНе каждый пакет запускался как отдельный AudioBufferSourceNode — до 50 мини-плееров в секунду на одного говорящего. Мы заменили это расписание одним непрерывным AudioWorklet с кольцевым буфером и проверили новую схему тестами.

Разобраться в звуке

Как устроено состояние в React.js

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели6.1K

Что поисковики и ИИ предлагают учить перед собеседованиями? Чаще всего — что-то в духе списка вопросов с гитхаба.

И как это учить? Тупо нажимать на каждый ответ и заучивать разницу в синтаксисе?

А на собесе потом:

Читать далее

React Fiber: как React научился прерывать рендер и расставлять приоритеты

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели6.4K

Банальный пример — когда печатаешь в input, а интерфейс начинает лагать на большом списке: классическая боль старого React. Я решил разобраться, как и почему React переписал свою архитектуру: отказался от рекурсивного обхода дерева, изобрел новую структуру данных и научился прерывать рендер ради нашего ввода.

В статье рассмотрю проблемы синхронной отрисовки и переход к новой архитектуре,  почему пришлось отказаться от методов жизненного цикла с приставкой *will, что такое Fiber, почему первый вариант приоритизации с ExpirationTime не сработал и как пришли к React Lanes.

Читать далее

Когда все тесты зелёные, а баги едут в прод

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели1.2K

ИИ легко генерирует тесты, которые проходят с первого раза — и именно поэтому им опасно доверять без проверки. В статье разбираем, откуда берутся «зелёные» тесты, пропускающие баги, почему покрытие мало говорит о качестве и какие подходы помогают проверять сами тесты на прочность.

Проверить тесты

Быстродействие, или Смотря как измерять

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели6.5K

Один и тот же JavaScript-код в браузере, Node.js, Deno и Bun должен показывать примерно одинаковую скорость – по крайней мере, так кажется до первых замеров. Я взял четыре прикладные задачи, добавил к сравнению Python и измерил не только время выполнения, но и потребление памяти, причём отдельно посмотрел, как результат меняется вместе с границами замера. Оказалось, что у каждой среды своё представление о быстродействии, а лидер зависит не только от алгоритма, но и от того, входят ли в задачу чтение файлов, парсинг или обработка изображений. Все примеры и исходные данные можно запустить локально и сравнить результаты со своей машиной.

Читать далее

Непротиворечивая классификация IoC

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели13K

Инверсия контроля позволяет нам написать код один раз и использовать его во многих контекстах, с разными реализациями зависимостей, с разными уровнями изоляции и тд. Давайте систематизируем разные подходы к достижению этой самой инверсии.

Прислушаться к этому источнику

GPT Сгенерировал картинку игры, пытаюсь ее разработать. Часть 2

Уровень сложностиСредний
Время на прочтение2 мин
Охват и читатели12K

3 день соло разработки. Рассказываю, как я решил разработать 3д игру без опыта в геймдев, с какими проблемами столкнулся.

Читать далее

Из генерации — в переписку: доводим ответ ИИ‑агента до клиента и CRM на n8n

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели9.2K

Всем привет!) Напомню: в первой статье я показал дебаунс на Redis, который склеивает дробные сообщения клиента. Во второй — модуль привязки «чат = сделка» и то, почему вебхуки стоит держать в изолированных ключах. Обе части заканчиваются примерно одинаково: «...и текст уходит ИИ‑агенту». Это, пожалуй, тот финал, на котором обычно ставят точку и заливают демо на GitHub... Но не в данном случае!)

Читать далее

Пишем свой React: Fiber, хуки и рендеринг под капотом

Уровень сложностиСредний
Время на прочтение16 мин
Охват и читатели8.7K

Каждый день мы пишем JSX, используем хуки и стараемся не нарушать их строгие правила. Но как вся эта «магия» работает под капотом? Почему условный рендер ломает useState, а индексы массива в key приводят к багам? Зачем React перешел на архитектуру Fiber и как алгоритм обходит дерево элементов, не блокируя браузер?

Чтобы перестать воспринимать React как черный ящик, лучший способ — написать его с нуля.

В этой статье мы шаг за шагом воссоздадим собственный движок React. Мы реализуем функцию createElement, разберем Fiber-архитектуру с асинхронным рендерингом, напишем алгоритм Reconciliation и создадим систему хуков, разобравшись в логике их работы.

Читать далее

Ближайшие события

Браузерная 3D-игра в одиночку. Часть 1

Уровень сложностиПростой
Время на прочтение2 мин
Охват и читатели8K

Разработка 3D-игры в одиночку.

Первая часть - про то, как прототип из серых кубиков превращался во что-то похожее на игру: камень, текстуры, опущенная камера и отказ от квадратной сетки, из-за которого уровень стал ощущаться крупнее. Со скриншотами на каждом шаге.

Читать далее

Калькулятор плитки научился ёлочке и плану всей квартиры — что поменялось за месяц

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели9.2K

Прошлый раз я рассказал, как написал свой калькулятор раскладки плитки, потому что замучился считать ванную в столбик. Тот пост был про версию 1.2 — база, прямая/диагональная раскладка, смета, PDF, нумерация плиток. Комменты были классные, фидбек пошёл сразу, и за месяц я выкатил ещё три версии. Самое заметное — ёлочка и общий план квартиры, где все комнаты лежат на одном полотне. Про это и пишу.

Читать далее

Картинку в моей игре вытянули не шейдеры. Самой полезной правкой оказались две строки конфига

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели6K

Я честно пошёл изучать шейдеры, чтобы сделать игру красивее. Получилось. А потом посмотрел на два скриншота рядом и понял: большую часть разницы дали не шейдеры.

Её дали пять довольно тупых правок от двух до тридцати строк каждая. Самая полезная - две строки в конфиге камеры.

Внутри: таблица «цена / что чинит», формулы контактной тени, детерминированный хэш против одинаковых плиток, запечённый AO на стыках. И честный список того, что стоило дорого, а дало меньше.

Читать далее

Эра инженерной зрелости: как выглядит стек JS-разработки в 2026 году глазами сообщества

Время на прочтение8 мин
Охват и читатели69K

Хайп-цикл фронтенда, кажется, наконец-то выдохся. Мы вышли из фазы бесконечного переизобретения колеса, где каждый месяц появлялся «убийца React», и вошли в эпоху убийцы Fable инженерной зрелости. Сегодня опытного инженера сложно впечатлить очередным фреймворком: ценность сместилась в сторону предсказуемости, скорости поставки (delivery) и снижения когнитивной нагрузки.

Привет, меня зовут Павел Востриков, и я — архитектор веб-направления в «Лаборатории Касперского». В этой статье хочу разобрать JS-экосистему как набор инженерных компромиссов.

На HolyJS Spring 2026 мы предложили 120+ инженерам оценить свой реальный стек. Получившийся радар мог быть просто списком библиотек, но в итоге вышел срезом того, как выглядит рациональный подход к коду в 2026 году. Мы видим, как разработчики массово идут в сторону предсказуемой скорости масштабирования решений и инженерной гигиены.

Читать далее

У моего героя нет здоровья, ключей и очков. Есть масса, и это всё сразу

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели11K

Умереть в моей игре нельзя. Можно только похудеть.

У героя нет полоски здоровья, ключей и очков - есть масса. Она же здоровье, она же размер, она же ключ от двери, она же оценка за уровень. Одно число вместо трёх систем.

Внутри: как из этого правила сами собой выросли все механики, почему прыжок специально не зависит от массы, и как безобидная просьба «сделай камни процентов на десять покрупнее» закончилась правкой геймдизайна.

Читать далее

Рефакторинг моего Obsidian: как я перестроил хранилище после предыдущей статьи

Время на прочтение17 мин
Охват и читатели11K

Какое-то время назад я выкладывал статью на Хабр про свое obsidian хранилище.

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

Кроме простой структуризации и удаления лишнего, я также провел некоторые махинации над кодом dataviewjs своей библиотеки книг и доделал свою домашнюю страницу, добавив интеграцию со своей основной библиотекой и поработав на css составляющей. В общем-то были еще некоторые изменения, но об этом всем будет далее.

Читать далее

Мой vault стал планетой: как я сделал 3D-граф знаний для Obsidian на Three.js

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели6.5K

Встроенный граф Obsidian хорош ровно до момента, когда vault разрастается и превращается в клубок линий. Я решил сделать из базы знаний место, которое можно запомнить, — и собрал open-source плагин CosmoGraph 3D на Three.js и WebGL. В статье разбираю весь путь от metadataCache и wikilinks до сферической раскладки по золотому углу, процедурного рельефа, кратеров, bloom и нативного ItemView внутри Obsidian. Без облачной обработки заметок и без рассказов о «магии»: только код, архитектурные компромиссы и честный список того, что ещё предстоит ускорить.

Заглянуть под поверхность
1
23 ...