Category : javascript

javascript
Почему ваш бандл тяжелее чем должен быть — тестирую tree shaking на 7 бандлерах

Как всё началосьВ августе 2024 я наткнулся на проблему в рабочем проекте на Next.js. Несколько страниц импортировали константы из общего файла через barrel (index.ts с реэкспортами). Каждая страница использовала 2-3 значения, но в бандл попадало всё — десятки неиспользуемых экспортов. Разница оказалась колоссальной: когда я добавил sideEffects: false и перешёл на direct export — бандл уменьшился в два раза.Я завёл issue на GitHub, покопался, нашёл обходной путь и закрыл. Но вопрос не отпускал: …

  • суббота, 18 апреля 2026 г. в 00:00:11
javascript
Я потратил 10 лет на создание легкого PHP фреймворка для разработки WEB-приложений

Привет, All!Как вам идея, отказаться от тегов вообще и делать WEB-проекты исключительно на классах? А еще, чтобы и клиентский, и серверный коды шли рядом, как в десктопном приложениии. И чтобы с одними и теми же переменными можно было работать и в PHP, и в JavaScript.«Зачем?» - сапросит кто-то. Отвечу: чтобы можно было строить не DOM-элементы, а объекты предметной области бизнес-процессов, которые автоматизирует мое приложение. И чтобы не тратить время на разные async, promise, ajax и т.д., пус…

  • суббота, 18 апреля 2026 г. в 00:00:09
javascript
Axios и проблема зависимостей

Продолжаю беседы с нашим техлидом Дмитрием. Сегодня — о том, как взлом одного npm-аккаунта за 3 часа распространил RAT на 174 000 пакетов и почему стандартные инструменты вроде NPM Audit это не поймали. Разбираем инцидент с Axios: механику атаки, слепые пятна в CI/CD и то, что реально работает. 30 марта 2026: что произошло за 3 часа 30 марта 2026 года в npm появились две вредоносные версии Axios — 1.14.1 (тег latest) и 0.30.4 (тег legacy). Axios — JavaScript-библиотека для HTTP-запросов с ~100 …

  • суббота, 18 апреля 2026 г. в 00:00:08
javascript
Безошибочная работа с Kafka из Node js. Часть 2 Консьюмер

Если предыдущая часть была посвящена аспектам, связанным с публикацией сообщений, то в этой части основное внимание уделено обработке сообщений, проектированию консьюмеров и проблеме ребаланса в консьюмер группе. ConsumerРазберем основные способы масштабирования потребления сообщений из топика и увеличения пропускной способности консьюмеров. Партиции и их количествоПропускная способность обработки данных из топика ограничена, в первую очередь, количеством партиций, а не тем как много консьюмер…

  • суббота, 18 апреля 2026 г. в 00:00:07
javascript
Упрощаем работу с рутиной или как стать Гендальфом Белым

ПредисловиеНадеюсь, все смотрели «Властелин колец»: там был харизматичный волшебник Гэндальф. В начале фильма (и книги) к его имени добавляли «Серый», а затем его стали величать «Белым». Так вот, это обозначение его ранга в иерархии магов. Можно уже открыть форточку для проветривания. Чтобы поменять статус, требуется преодолеть нечеловеческие испытания и обрести просветление. Так и в IT: пройдя все невзгоды, ты становишься сеньором. А сегодня я постараюсь облегчить вам этот путь.Конец эпохи «Че…

  • пятница, 17 апреля 2026 г. в 00:00:09
javascript
Пишем свой текстовый 3D движок в браузере

Сразу скажу: это перевод моей же статьи на Medium, но с небольшими дополнениями и более практичным разбором реализации.TL;DRВот ссылки на демо‑страницу проекта и мой GitHub: Github Demo Когда я впервые решил поэкспериментировать с 3D в браузере, мне казалось, что это что-то очень сложное: матрицы, движки, WebGL, куча формул. Но на практике, чтобы собрать простой 3D-рендерер, достаточно базовой тригонометрии, понимания перспективы и пары аккуратных преобразований координат.По сути, вся “магия” …

  • пятница, 17 апреля 2026 г. в 00:00:08
javascript
Как правильно реализовать кнопку «Назад» во Vue: просто о сложном

Сегодня разберём тему, которая кажется элементарной, но на практике вызывает кучу вопросов. Речь о кнопке «Назад» в приложении на Vue.Казалось бы, что тут сложного? Кликнули - ушли на предыдущую страницу. Но нет. Большинство разработчиков, даже с опытом, не до конца понимают, как устроена навигация в роутерах и как работает история браузера. А это критично, когда речь заходит о предсказуемом поведении приложения.Немного жизни из собеседованийКогда на интервью я спрашиваю: «Как вы реализуете пер…

  • четверг, 16 апреля 2026 г. в 00:00:09
javascript
Разработка нового статического анализатора: PVS-Studio JavaScript

Вот уже 18 лет статический анализатор кода PVS-Studio находится на рынке. За это время он обзавёлся поддержкой языков C, C++, C# и Java. Разумеется, останавливаться на этих языках мы не планируем, и в этой статье расскажем про разработку нового JavaScript/TypeScript анализатора, который выйдет уже совсем скоро.ВведениеПоддержка анализатора для одной из самых популярных семей языков ECMAScript была лишь вопросом времени, учитывая их доминирующую популярность у программистов на протяжении долгих …

  • четверг, 16 апреля 2026 г. в 00:00:09
javascript
Как я написал свою библиотеку валидации схем и создал свою альтернативу Zod

Статья о том, как попытка разобраться в валидации объектов привела к созданию библиотеки валидации схем с runtime-интроспекцией, а на её основе — отдельных библиотек для type-safe маппинга объектов и генерации форм.Предыстория: большие объекты без TypeScriptНесколько лет назад в одном из моих проектов на чистом JavaScript возникла задача: валидировать большие вложенные объекты со сложной структурой. Объекты содержали различные подобъекты, к каждому из которых применялись свои правила валидации …

  • среда, 15 апреля 2026 г. в 00:00:11