Category : javascript

javascript
Baseline: ноябрь 2025

Обзор на браузерные API, которые стали Widely available в ноябре 2025. Раз в месяц я буду вам напоминать, что вы уже можете использовать в проде. Каждый месяц выходят новые CSS-свойства, HTML-атрибуты, JavaScript-методы и WebAPI, но применять в проде мы их конечно же не будем. 2.5 года назад также каждый месяц выходили новые фичи в браузере, а вот их уже пора начинать применять.Как мы понимаем, что уже можно использовать в проде?У каждой компании, да что уж там компании, у каждой команды в комп…

  • вторник, 2 декабря 2025 г. в 00:00:05
javascript
Первая в мире библиотека Web Components в духе shadcn. Серьёзно, я проверял

Окей, заголовок звучит максимально самоуверенно, я понимаю. Но насколько мне удалось нагуглить — это действительно первая попытка сделать что-то подобное. Если я не прав — напишите в комментах, я с удовольствием посмотрю на альтернативы. А пока давайте я расскажу, что это за зверь такой и зачем он вообще нужен.Предыстория, или как я дошёл до жизни такойВсё началось с микрофронтендов. Знаете, это когда у вас один проект, но внутри него живёт Vue, React, и ещё какой-нибудь легаси на jQuery, котор…

  • вторник, 2 декабря 2025 г. в 00:00:04
javascript
Идеально размещённые тултипы: по углам

Эта статья — перевод оригинальной статьи «Perfectly Pointed Tooltips: To The Corners».1 часть - Идеально размещённые тултипы: база2 часть - Идеально размещённые тултипы: все четыре стороныТакже я веду телеграм канал «Frontend по‑флотски», где рассказываю про интересные вещи из мира разработки интерфейсов.ВступлениеГотовы к последнему челленджу?Мы продолжаем делать тултипы, которые “следуют” за своим якорем, и на этот раз поработаем с новыми позициями и изучим новые приёмы. Я буду исходить из то…

  • вторник, 2 декабря 2025 г. в 00:00:03
javascript
Изменение размера выгружаемых файлов изображений в браузере

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

  • понедельник, 1 декабря 2025 г. в 00:00:03
javascript
Ответ фронтендера на «Не занимайтесь преждевременной оптимизацией»

TL;DR: В этой статье я хочу показать, почему распространённая фраза "не занимайтесь преждевременной оптимизацией" почти всегда используется неправильно, особенно в современных фронтенд-проектах. Я посмотрю на исторический контекст, разберу, что именно Кнут называл оптимизацией, и почему многие вещи, которые считаются "преждевременной оптимизацией", на деле — нормальная инженерная дисциплина.Я фронтендер, пишу на React, регулярно делаю код-ревью в проекте, над которым работаю сов…

  • понедельник, 1 декабря 2025 г. в 00:00:02
javascript
Цепочка ошибок в JavaScript: удобная отладка кода с помощью Error.cause

Обработка ошибок в JavaScript всегда была немного хаотичной. Получить ошибку легко, но отследить ее первоисточник бывает очень сложно. Именно здесь и приходит на помощь свойство cause.❯ Проблема классической обработки ошибокВ многоуровневом коде (например, сервисы, вызывающие другие сервисы, функции-обертки, «всплывающие» ошибки и т.д.) легко потерять нить того, что именно пошло не так. Обычно код при этом выглядит примерно так:try { JSON.parse('{ bad json }'); } catch (err) { throw…

  • воскресенье, 30 ноября 2025 г. в 00:00:02
javascript
Как мы улучшили качество сервиса VK Видео на SmartTV

Видео стало неотъемлемой частью нашей жизни: мы смотрим его на смартфонах, ноутбуках и всё чаще — на телевизорах. Несмотря на то, что видеосервисы традиционно ориентировались на мобильные устройства, за длинным контентом пользователи идут именно на большие экраны, и это подтверждается ростом времени просмотра. Сегодня среднее дневное время смотрения VK Видео на Smart TV достигает 216 минут.И тут начинается самое интересное: телевизоры — это особый мир со своими капризами и законами. Официальные…

  • пятница, 28 ноября 2025 г. в 00:00:05
javascript
Как правильно обновлять зависимости в проекте

Казалось бы что может быть проще и банальнее, чем обновить зависимости во фронтенд-проекте? Но зачастую даже опытные мидлы делают это не правильно и ставят себе палки в колеса. Давайте разберемся почему так происходит и как этого избежать.Как обычно происходит обновление?Типичный сценарий выглядит так:Обновляем зависимости в package.json.Чиним то, что сломалось.Что здесь не так? На первом этапе мы не знаем, сколько времени уйдет на устранение багов, которые могут появиться после обновления. Есл…

  • пятница, 28 ноября 2025 г. в 00:00:04
javascript
Генерируем G-code прямо в браузере: как я написал карманную CAM-систему на JS+WebGL, чтобы не запус…

Всем привет. Я в 3D-индустрии уже 30 лет, есть свой фрезерный станок. И, как и многих владельцев ЧПУ, меня преследовала одна и та же боль.Чтобы вырезать простую плоскую деталь — фланец, прокладку, панель управления или нервюру — нужно пройти через "ад" тяжелого софта. Запустить условный Fusion 360 или ArtCAM (пока он загрузится, можно чай заварить), создать проект, импортировать DXF, настроить вектора, настроить инструмены, сохранить... Это избыточно долго для простых 2D-задач.Мне нужен…

  • пятница, 28 ноября 2025 г. в 00:00:03