Новости 512 #215

В этом выпуске мы поговорим о релизе TypeScript 4.8, ререндеран React, новой утилите для парсинга аргументов в Node.js, узнаем какие планы у Bun, посмотрим на другие релизы недели и фичи CSS :has() и @layer.

Всем привет! Этот выпуск будет несколько короче предыдущих, но в нём мы поговорим о релизе TypeScript 4.8, новой утилите для парсинга аргументов в Node.js, узнаем какие планы у Bun, посмотрим на другие релизы недели и фичи CSS :has() и @layer.

Небольшое объявление: после следующего выпуска, 9 сентября, мы возьмём небольшую паузу на пару недель и вернёмся по плану 30-го сентября. Я постараюсь подготовить для вас большой выпуск с новостями за время всего перерыва. Теперь к новостям.

Интересные публикации

Выпуск начинается со статьи доктора Акселя Раушмаера о новой утилите Node.js utils:parseArgs(). В начале он касается обработки аргументов командной строки в принципе, потом раскрывает возможности новой утилиты и приводит примеры использования. Он разбирает и работу с опциями, флагами и другие нюансы работы утилиты. Утилита стала доступна в новом релизе LTS-версии 16.17.0, и ей уже можно пользоваться и попробовать разобраться.

Джейк Арчибальд (Jake Archibald) и Кэсси Эванс (Cassie Evans) в новом выпуске HTTP 203 обсудили, почему события готовности DOМ могут быть вредными и какими неожиданными способами могут замедлять ваши приложения. Они обсуждают альтернативы, например кастомные элементы, mutation observer’ы и другие. Получилось интересно — посмотрите, выпуск идёт всего 20 с хвостиком минут.

В блоге Webkit Джен Симмонс (Jen Simmons) опубликовала статью о псевдоселекторе :has(). В выпусках новостей мы немало обсуждали его и его возможности. В 2021 году его начали продвигать инженеры Igalia. В итоге разные браузеры начали его реализовывать. В Safari 15.4 он уже был доступен, а в Chrome по идее должен появиться в 105 версии. Джен немного рассказывает о разработке фичи и погружает читателя в возможности :has(). Она приводит и базовый пример использования, и более продвинутые — в комбинации с разными операторами и селекторами.

Давно в новостях не было статей от Джоша Комо. И вот сегодня с нами его новая статья «Почему React совершает перерендеры». Как вы знаете, часто очень большой процент и пласт работ по оптимизации фронтенд-приложений заключается в одном — уменьшении количества перерендеров. Мы используем логические методы оптимизации, кэширование и другие приёмы для решения этой задачи. Джош разбирается в цикле рендера React, пропсах и изменениях состояния, касается вопросов профилирования через React DevTools.

Завершит рубрику заметка об ещё одной новой фиче CSS — @layer. Олли Уильямс (Ollie Williams) в CSS Tricks написал о том, как при помощи директивы @layer можно изолировать кастомные стили в проектах с Tailwind и убедиться в том, что приоритет стилей не нарушится и не появятся связанные с этим неприятные баги. У Tailwind есть свой синтаксис @layer. Его недостаток в том, что этот код скомпилируется и не попадёт в итоговый CSS в DevTools. Это одна из причин, почему Олли предлагает пользоваться нативной директивой. Больше подробностей и примеры — на CSS Tricks.

Новости релизов

Вышел TypeScript 4.8. Напомню, в этой версии есть одно ломающее изменение: если вы используете конструкцию Error.cause, то теперь, если возникнет исключение, TS выведет тип не Error, а unknown. Во время исключения автор какого-либо кода может вернуть не объект класса Error, а в принципе что угодно, поэтому логичнее выяснить, что внутри, самостоятельно. Это безопаснее для системы. Помимо этого улучшается поддержка типов, немного оптимизируется компиляция, производительность, расширяются возможности существующих конструкций. Можно обновляться.

Вышла 104-ая версия браузера Firefox. В новой версии был добавлен режим редактирования в инструмент просмотра PDF, появилась экспериментальная возможность QuickActions, которая позволяет выполнять определённые действия прямо из адресной строки браузера. В интерфейс профилирования добавлены графики потребления энергии при работе сайта (пока фича доступна только на Windows 11 и на машинах Apple с процессорами M1). Помимо этого был устранён ряд уязвимостей. Практически сразу после релиза вышел патч 104.0.1 — в нём исправили проблему с воспроизведением видео на YouTube, которая возникает в основном на видеокартах Nvidia из-за багов использования аппаратного ускорения.

Вышли новые версии Node.js. В релизе LTS-версии 16.17.0 появилась утилита parseArgs() для парсинга аргументов командной строки, о которой я уже говорил в начале выпуска. В релизе current-ветки 18.8.0 появился удобный бутстрап для создания пользовательских снапшотов.

Команда Storybook представила альфа-версию 7-ой мажорной версии. Вы можете увидеть переработанный и осовремененный дизайн, улучшения UX. Кроме того, обещают улучшить производительность. Больше подробностей — в блоге Storybook.

Также я хочу отметить релизы Safari Technology Preview 152 и стабильный выпуск СУБД MariaDB 10.9.2.

Другие новости

В прошлых выпусках мы уже говорили о новом JavaScript-рантайме Bun. Оказалось, что за Bun всё-таки есть организация, и она называется Oven. Это такая игра слов: bun — булочка, oven — духовка. Компания уже успела привлечь 7 миллионов долларов инвестиций при участии разных акселераторов и инвесторов, среди которых, кстати, Гильермо Раух — CEO в Vercel. Насколько я понимаю, план у ребят такой же, как у Deno: создать рантайм, построить вокруг него инфраструктуру для разработки и деплоев, запартнёриться с кем-то или самостоятельно монетизировать свои наработки. Кажется, я как в воду глядел насчёт маркетинговых войн и гонки в разработке. Посмотрим что из этого получится. Oven сейчас активно нанимает специалистов для разработки и выстраивает маркетинговую стратегию.

Пишите нам и читайте

Telegram—канал CSSSR

Twitter CSSSR

Twitter новостей

Telegram ведущего

Twitter ведущего

Комментарии

Продолжая пользование данным Сайтом, вы даете свое согласие на сбор и обработку технической информации (cookies). Подробнее о cookies читайте вПолитике конфиденциальности.