Новости 512 #170

В этом выпуске: Angular 12, Deno 1.10, мониторинг, тестирование UI, прототип селектора :has(), обновленный курс по git от Ильи Кантора, инвестиции в Rome и история библиотеки date-fns.

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

Игорь Камышев из Aviasales написал статью о мониторинге, в которой лаконично описал отслеживание разных частей систем. Игорь рассказывает о мониторинге Node.js и веб-сервера, затрагивает специфичные для конкретного приложения метрики производительности и говорит о производительности клиентских приложений, то есть фронтенда. Рассказывая о фронтенде, автор затрагивает размер бандла, Web Vitals с делением на собранные в лаборатории и в поле метрики. Конечно, не обошлось без логирования ошибок и хранилища для них. По каждой теме нужно будет искать более углубленные материалы, но в целом статья показывает достаточно полную картину.

Варун Вачхар (Varun Vachhar) в блоге Storybook выложил статью о тестировании пользовательского интерфейса. Он пишет о разных аспектах тестирования: визуальном, композиционном, тестировании интерактива, доступности и флоу пользователя. Каждому аспекту посвящен свой раздел, в котором раскрывается суть — что именно тестируется — и приводятся примеры практик разных компаний и различные инструменты. В конце статьи можно найти сводную таблицу с технологиями, их преимуществами и недостатками.

Брайан Карделл (Brian Kardell) из Igalia рассказал о прототипировании CSS-селектора :has(). :has() дает возможность стилизовать элементы по их содержимому, например, задать стили элементу, внутри которого есть другой определенный элемент. Реализации в браузерах не было, потому что :has() ломает принципы работы со стилями, на которых стоят многие оптимизации, позволяющие выдавать FPS на уровне 60. Компания, разрабатывающая Adblock Plus, проспонсировала прототип фичи. В планах сделать прототип и понять, возможно ли реализовать :has() без проблем с производительностью. После этого эксперимента станет понятно, что будет с фичей дальше.

Ахмад Шадид (Ahmad Shadeed) написал про кроссбраузерную CSS-разработку. Он бросает взгляд в прошлое и отмечает, что сейчас кроссбраузерных проблем гораздо меньше. Гриды, флексбоксы и списание IE решили много головных болей. Но проблемы по-прежнему есть. Браузеры в некоторых случаях реализуют свойства по-разному, что ведет к разному поведению и багам. Также автор упоминает инициативу Compat 2021, которая направлена, в том числе, на разрешение этих проблем.

Стефани Эклз (Stephanie Eckles) на SmashingMagazine опубликовала небольшую статью о Container Query. Как мы уже рассказывали, прототип доступен в Chrome Canary и с фичей можно поэкспериментировать. Стефани как раз показывает, как ее включить, рассказывает, какую проблему решает новая возможность, и демонстрирует примеры применения. В конце статьи можно найти коллекцию ссылок на дополнительные материалы.

Илья Кантор выпустил обновленный курс по git. В плейлисте на YouTube собраны 50 видео, которые затрагивают основы работы с системой контроля версий, работу с ветками, сброс изменений, просмотр истории, слияние, копирование, перемещение и отмену коммитов. Отличная возможность освежить и закрепить свои знания по работе с инструментом.

Любопытный инструмент от Google: библиотека zh, которая предоставляет обертку над child_process и позволяет удобно писать Bash-скрипты на JS. В readme есть инструкция и документация по работе с пакетом.

Закроют рубрику три экспресс-материала.

Репозиторий с рекомендуемыми базовыми конфигурациями TypeScript для разных сред.

Паттерны проектирования на Java. Кстати, в репозитории их очень много, а про некоторые я даже и не слышал.

Шпаргалка по работе с Docker и Node.js.

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

Доступна 12 мажорная версия фреймворка Angular. View Engine получил статус deprecated, теперь движок рендеринга по умолчанию Ivy. Шаблоны поддерживают оператор nullish coalescing (??), поддержка webpack 5 готова к production, поддерживается версия TypeScript 4.2, была улучшена поддержка Saas и Tailwind. Поддержка IE11 получила статус deprecated. Больше подробностей — в блоге Angular.

Вышла версия Node.js 14.17.0. Главное нововведение — бэкпорт экспериментального модуля diagnostics_channel. Это новый API, который позволяет создавать выделенные каналы с диагностическими данными. Изначально его добавили в версии 15.1.0 и сделали бэкпорт для тестирования в большем масштабе. Также была добавлена экспериментальная поддержка AbortSignal и AbortController.

Релизом 1.10 отметился Deno. Солидный апгрейд получил встроенный тест-раннер: исправлены баги, можно выбирать количество запускаемых тестов, добавлены разные флаги. Была включена WASM Shared Memory, а также добавлены поддержка WebStorage API и класс Extension.

Доступно Safari Technology Preview 124: в основном багфиксы, но и без нового не обошлось. В Element.focus() появилась опция preventScroll, был реализован метод AbortSignal.abort(), также был добавлен рендеринг текста на OffscreenCanvas в воркерах.

Вышел релиз-кандидат TypeScript 4.3. Новых фич уже добавлено не будет, перед релизом только исправят критичные баги. Напомню, что в версии 4.3. появилась поддержка различных типов для геттеров и сеттеров, ключевое слово override, улучшение типизации шаблонных строк и промисов, поддержка приватных полей класса и улучшение типизации статических полей класса.

Bootstrap отметился небольшим релизом 5.0.1 с багфиксами и небольшими дополнениями к документации.

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

Автор Babel и Yarn Себастиан Маккензи (Sebastian McKenzie) рассказал о привлечении инвестиций в проект Rome. Rome позиционируют как тулчейн, который, по идее, должен заменить зоопарк инструментов для разных задач. Это и сборщик, и линтер, и тест-раннер, в общем, всё в одном. Привлекли 4.5 миллиона долларов, которые должны пойти на найм разработчиков. Монетизировать проект планируется через вспомогательные сервисы. Посмотрим, сможет ли он заменить все сервисы, которые хочет, и при этом быть прибыльным.

Завершает выпуск Александр Косс и история библиотеки date-fns. С прекращением поддержки и разработки moment.js, date-fns, наверное, самая лучшая альтернатива. Разработка началась в 2014 году, библиотека не претендовала на замену moment.js, и в ней была всего одна функция. Стратегии развития не было, а функции добавлялись по необходимости. В 2015 году начался порт функций из moment.js — тогда библиотека и начала набирать популярность. В 2016 году Дэн Абрамов написал о date-fns у себя в твиттере, после этого пришло очень много новых пользователей и много проблем, которые они зарепортили. Начался период работы над багами и изменением API, который привел Александра к выгоранию. В 2019 году он смог выделить три месяца на плотную работу над date-fns и выпустил вторую версию с переделанным API. Проект продолжает расти, набирать популярность и привлекать средства на opencollective.

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

Telegram—канал CSSSR

Twitter CSSSR

Twitter новостей

Telegram ведущего

Twitter ведущего

Комментарии

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