Новости 512 #206

В этом выпуске: конспект о микрофронтендах, сравнение Remix и Next.js, релиз Parcel CSS, обновления браузеров, Node.js 17.4.0, Deno 1.18, бесплатный курс по Linux для разработчиков и, кажется, завершение истории с faker.js.

В прошлый выпуск по ошибке попала устаревшая статья о Rust и возможностях оптимизации JS без его применения. Иногда мы публикуем старые материалы, если они до сих пор актуальны, и обычно я явно отмечаю это. Но не в этот раз — статья была написана в 2018 году и случайно затесалась в выпуск как новая. Отдельное спасибо Андрею Мелихову, который обратил на это мое внимание.

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

Антон Шувалов, которого вы можете знать как «пробуждателя фронтендеров» в твиттере, написал заметку о микрофронтендах. Получился краткий конспект с основными пунктами, которые нужно принять во внимание для начала использования микрофронтендов. В заметке вы найдете базовые требования, принципы и фреймворк для принятия решений. Здесь же есть стратегии объединения, коммуникации и определения доменов для микрофронтендов. В конце конспекта — ссылки на источники и материалы, на основе которых он составлен. Хочу лишь напомнить, что микрофронтенды подходят и нужны далеко не каждому проекту.

ES-модули продолжают развиваться и потихоньку взрослеть как технология. Именно о них говорит Аксель Раушмайер (Axel Rauschmayer) в своем обзоре современных возможностей для работы с JavaScript-модулями в Node.js, Deno и браузерах. Последние версии Node.js поддерживают package exports и package imports, которые настраиваются в package.json. А в браузерах скоро появится поддержка import maps. Больше подробностей — в блоге доктора Акселя.

Штефан Баумгартнер (Stefan Baumgartner) продолжает писать о тонкостях работы TypeScript. В новой статье он затрагивает тему неожиданных пересечений типов в TypeScript. Это может произойти при обновлении свойств объектов, если ключ — переменная с объединением типов. Также пересечение может возникнуть после деструктуризации объекта из-за потери связи с оригинальным типом. Это приводит к ошибкам типизаци. Как это работает и что делать — читайте в статье Штефана.

В блоге Remix появилась статья-сравнение Remix с Next.js. Чем отличаются фреймворки — один из самых часто задаваемых вопросов. По мнению сооснователя Remix и автора статьи Райана Флоренса (Ryan Florence), Remix такой же быстрый или быстрее Next.js, обладает постоянным временем билда, которое не зависит от данных, автоматически обрабатывает ошибки и краши, а также имеет еще ряд преимуществ. Впрочем, автор довольно аккуратно выражается, говоря, что у Remix просто более удачный набор компромиссов под капотом. Не знаю, лично для меня Remix пока выглядит как маркетинговая штука, которой далеко до продов, и непонятно, нужен ли он вообще. Но судить вам, если интересуетесь Remix — это сравнение как раз для вас.

Следующие два материала — за авторством Ильи Стрельцына на CSS Live.

В первой статье Илья рассказывает о новом псевдоселекторе :has() и некоторых нетривиальных примерах его использования: модификация элементов форм, индикаторы подуровней выпадающих меню, подсветка строк в таблице и другие. Также в статье вы найдете экскурс в спецификацию и особенности работы :has().

Вторая статья — о свойстве border-image. При помощи него Темани Афиф (Temani Afif) реализовал в демке сложные фигуры с минимальными усилиями, а Илья обратил на это внимание и написал статью, в которой демонстрирует работу свойства на примере задачки из CSS Battle про взрыв сверхновой. Border-image — довольно сложное и громоздкое свойство, но вполне можно разобраться, было бы желание.

Инженеры из ЦИАН поделились своим опытом оптимизации мобильной версии сайта. Поисковая выдача медленно грузилась, а Google как раз анонсировали влияние параметров Core Web Vitals на поисковую выдачу. Звезды сошлись, и инженеры ЦИАН начали искать проблему. Виновницей оказалась метрика Largest Contentful Paint. В статье есть разбор проблемы и решений внутри кода и вне его, а также решения на уровне микросервисов. Самым «медленным» оказался микрофронтенд шапки, которую решили тотально отрефакторить.

Снова завершу рубрику обучающими материалами.

Вышел бесплатный курс по Linux для разработчиков от Павла Калашникова, вы можете знать его по сообществу IT Way и одноименному подкасту. Отличный вводный курс, после которого можно уже не вернуться к другим ОС. Затронуто много важных тем: выбор и установка дистрибутива, работа с терминалом, группы пользователей, команды, утилиты и основы мониторинга, а также подключение к удаленным машинам по SSH.

Адам Аргайл (Adam Argyle) на web.dev опубликовал статью о реализации нового компонента, на этот раз — переключателя цветовой темы. Пошаговая реализация, подробное объяснение всех аспектов, работающая демка — всё в лучших традициях.

Уна Кравец (Una Kravets) в коротком видео на YouTube объясняет, как работает новая фича CSS — каскадные слои. Фича уже есть в Safari Technology Preview, а скоро появится и в Chrome c Firefox.

Темани Афиф, которого я уже упоминал в этом выпуске, помимо прочего еще и создатель ресурса CSS Challenges. Как вы можете догадаться по названию, это сборник задачек по CSS разной степени сложности. Довольно интересно, загляните, если вам интересно проверить или подкачать свои CSS-скиллы.

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

Начнем с самого большого релиза, вернее будет сказать, серии релизов — январского Critical Patch Update от Oracle. Как вы можете помнить, это обновления безопасности для всех продуктов Oracle. В анонсе патча отмечается, что при обновлении каждого продукта следует обратиться к памятке об уязвимости библиотеки Log4j: в некоторых случаях нужно установить отдельный патч, если это явно указано, в противном случае достаточно установить январское обновление.

Браузеры что-то зачастили выпускать патчи после релизов. Вышло обновление Chrome 97, которое закрывает критическую уязвимость, позволяющую обойти все уровни защиты браузера и выполнить код вне sandbox-окружения. Кроме этой уязвимости было устранено еще 26 менее значительных.

Firefox 96 с момента релиза получил целых два обновления. В первом была исправлена ошибка разбора заголовка content-length при использовании HTTP/3, а во втором — устранена проблема, приводящая к крашу браузера при изменении размера окна.

Доступно Safari Technology Preview 138. В этой версии по умолчанию включены свойство :focus-visible, медиа-запрос resolution и свойство CSS Contain. Веб-инспектор и некоторые API получили ряд доработок и изменений. Дополнительно отмечу, что в этом патче не синхронизирована фича с группировкой вкладок.

Рантаймы тоже стараются не отставать и радовать нас обновлениями. Вышла версия Node.js 17.4.0. В релизе: большое количество багфиксов, обновления libuv и npm, небольшая доработка модуля stream и метода fork модуля child_process, в котором путь к модулю теперь может быть объектом URL.

Команда Deno выпустила обновление 1.18, в котором полностью поддерживается Web Crypto API, а файл конфигурации ищется автоматически. Error.cause теперь отображается во всех стектрейсах, а версия V8 была улучшена до 9.8.

Команда Parcel выпустила Parcel CSS. Как вы можете догадаться, это парсер, компилятор и минификатор CSS. Проект написан на Rust и, по словам авторов, как и сам Parcel, отличается высокой производительностью. Кроме того, он очень просто используется с самим Parcel (было бы странно, если бы было сложно), и его можно попробовать в качестве CSS-тула уже сейчас. Также в анонсе вы найдете немного архитектурных подробностей.

Помимо этого отмечу релизы языка программирования Rust 1.58 и веб-сервера lighttpd 1.4.64.

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

Ситуация с библиотекой faker.js получила развитие. Хотя, скорее всего, это конец истории. Библиотеку начали поддерживать 8 мейнтейнеров, которые подхватили знамя, когда основной пакет был удален из репозитория. В итоге faker.js получил новую организацию и репозиторий на GitHub, а также доступен в npm. Конечно, история с блокировкой доступа к репозиториям автора пакета вызывает скепсис, кто-то может сказать, что у человека фактически «отжали» его опенсорс проект. Посмотрим, будет ли продолжение у этой истории, но не думаю.

Rust продолжает пробиваться к ядру Linux. Автор проекта Rust-for-Linux Мигель Охеда (Miguel Ojeda) предложил четвертую версию компонентов для разработки драйверов. Для Linux и Rust это хорошие новости. Интересно, как быстро ядро Linux все-таки начнет поддерживать Rust.

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

Telegram—канал CSSSR

Twitter CSSSR

Twitter новостей

Telegram ведущего

Twitter ведущего

Комментарии

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