Интересные публикации
В блоге React появилась статья с планами разработки React 18. Три главные фичи из коробки, которые подсвечивает команда: автоматический батчинг обновлений стейта компонентов, новые API и потоковый серверный рендеринг с встроенной поддержкой React.lazy. Все эти фичи появились благодаря новому механизму конкурентного рендеринга, который реализован в React 18. Режим будет включаться автоматически при использовании вышеупомянутых фич. Помимо этого планируется расширить работу с сообществом: организована рабочая группа React 18, в которую, однако, могут попасть не все, но обсуждения будут публичными. Это сделано для того, чтобы не создавать ажиотаж вокруг рабочей группы и сохранить продуктивную среду. Альфа-версия уже доступна, и её можно попробовать, как именно — смотрите в статье. Разработчики горячо призывают экспериментировать и делиться фидбэком. Релиза React 18 стоит ожидать примерно через 6-8 месяцев, а я продолжу держать вас в курсе событий.
Адам Аргайл (Adam Argyle) на web.dev написал статью об относительно новых псевдоклассах :is() и :where(). По сути они группируют селекторы и делают CSS лаконичнее и понятнее. Они поддерживаются начиная с Chrome 88, Firefox 78 и Safari 14. В статье Адам демонстрирует способы применения попроще и посложнее.
Ещё немного о новых возможностях CSS. Мы уже упоминали о статье Брайана Кардела из Igalia, в которой он рассказывал, что начинается прототипирование псевдокласса :has() — нативного селектора родительского элемента. Адриан Беце (Adrian Bece) на SmashingMagazine написал небольшой обзор новой фичи, рассказал о потенциальных применениях и о том, почему она так востребована. Кроме того, он рассматривает, как эти задачи решаются сейчас.
Следующая статья посвящена новому экспериментальному API Compute Pressure. Это API, который позволяет, если обобщить, отслеживать нагрузку на процессор и управлять поведением приложения в зависимости от этого. Потенциальных применений масса: видеоконференции, игры и другие ресурсоемкие задачи. Автор статьи — Джефф Позник (Jeff Posnick) — больше рассказывает о новом API и показывает примеры.
Материал для тех, кто интересуется разработкой браузеров. Mozilla кросспостнули статью Мэттью Годе (Matthew Gaudet) об имплементации приватных полей классов в движке SpiderMonkey и, соответственно, в Firefox. Фичу планируется представить в Firefox 90.
Далее вас ждет страшное слово «тригонометрия». Сейчас в голове должны были всплыть шутки про школу и то, что математика не нужна. Мишель Баркер (Michelle Barker) так не считает и наглядно это демонстрирует. Получился гайд в трёх частях по применению тригонометрии с CSS и JavaScript. Речь идет, как вы могли догадаться, о построении разнообразных фигур. Традиционно, первая часть достаточно базовая, вторая — посложнее, а третья посвящена сложным многоугольникам.
Отвлекитесь от страшной тригонометрии, но не отвлекайтесь от слова «школа». Хочу напомнить вам о том, что существует CSSSR.School. Это наша образовательная платформа для фронтендеров. Пока есть три курса: «React для начинающих» подходит для Junior-разработчиков, а «React под капотом» и «Событийное программирование» рассчитаны специалистов уровня Middle. Каждый курс рассчитан примерно за 2 месяца. В процессе обучения вас может сопровождать куратор или персональный наставник из числа разработчиков, которые сейчас заняты на проектах CSSSR. К курсам прилагаются карьерные консультации от наших HR. Подробнее о программе курсов и стоимости можно узнать на странице школы. Любые вопросы можно задавать по адресу info@csssr.school. Приходите к нам учиться!
Кристиан Хэйлман (Christian Heilmann) в своём блоге опубликовал заметку и видео о тестировании доступности при помощи DevTools в Microsoft Edge. Заметка небольшая, но в ней Кристиан собрал ссылки на документацию Edge в области тестирования доступности: от обзорной статьи по всем возможностям до углубленных материалов по автоматизации тестирования доступности и имитации нарушений зрения.
Завершит рубрику продолжение перевода официальной настольной книги по TypeScript от Microsoft. Переведены ещё 3 главы: сужение типов, функции и объектные типы.
Новости релизов
Вышла версия Vue 3.1 с кодовым именем Pluto. В этой версии появился Migration Build, который обеспечивает совместимое с Vue 2 поведение и направлен на то, чтобы упростить миграцию с Vue 2 на Vue 3. Отмечается, что если нужна поддержка IE, стоит оставаться на второй версии. Кроме того, были представлены небольшие улучшения производительности, багфиксы и парочка минорных breaking changes.
В блоге ESLint появился анонс релиза 8 версии. Она не будет поддерживать Node.js 10, 13 и 15. Из ядра будут удалены форматтеры codeframe и table, схемы правил будут валидироваться строже, а правила с подсказками нужно будет обязательно отмечать специальным флагом. Также появится поддержка top-level await. Релиз ожидается в конце июня — начале июля.
Deno отметился релизом 1.11. Теперь поддерживается TypeScript 4.3, был стабилизирован пакет deno lint и появился новый интерфейс FsWatcher.
Вышел браузер Vivaldi 4.0. В новой версии можно увидеть встроенный почтовый клиент, новостной клиент, интегрированный с RSS, и календарь для планирования мероприятий. Все эти возможности пока экспериментальные. Также появился встроенный переводчик и возможность выбора базового билда интерфейса: от минимального до максимально нагруженного.
Также отмечу обновление Chrome 91 с устранением одной критической уязвимости и одной уязвимости нулевого дня.
Другие новости
А теперь о событии, которое вряд ли прошло мимо вас. Я о том, как интернет горько кашлял из-за сбоя в CDN-сети Fastly. Появились подробности: всё произошло из-за одного бага и одного-единственного пользователя. 12 мая разработчики Fastly по недосмотру внесли небольшой баг, и бомба начала тикать. 8 июня пользователь применил совершенно валидную конфигурацию, которая содержала несколько совпадений. Эти самые факторы в конфигурации вызвали отказы в 85% сети. Fastly отреагировала незамедлительно, работоспособность была восстановлена примерно в течение часа. Компания обещает, что такого больше не произойдёт — уже сейчас багфикс раскатывается по всей сети, будет проведено полное расследование и составлен postmortem, также будут разрабатываться пути ускорения восстановления после сбоев.