Всем привет, это «Новости 512» от CSSSR. В этом выпуске мы посмотрим на фронтенд-тренды 2023, разберёмся с TypeScript через теорию множеств, окунёмся в безопасность Chrome, а также взглянем на ряд практических гайдов. В этом же выпуске: анонс беты TypeScript 5.0, Chrome 110 и Firefox 110 и важное security-обновление git. А в конце выпуска немного об увольнениях в IT-гигантах и отключении бесплатных пространств Slack в РФ.
В начале выпуска небольшое объявление. Новости временно переходят на график раз в две недели. Выпуски будут выходить реже, но будут немного объёмнее и, конечно, будут охватывать весь двухнедельный промежуток. Пока этот график запланирован на пару месяцев, но, возможно, будет продлён. Теперь к выпуску.
Интересные публикации
Каждый год традиционно начинается с ряда статей с предсказаниями фронтенд-трендов. 2023 тоже не стал исключением. Робин Урих (Robin Wieruch) в своём блоге порассуждал о том, что нас ждёт в 2023. Он считает, что история сделала свой виток и мы возвращаемся к серверному рендерингу. Робин думает, что мы увидим расцвет serverless-технологий, ренессанс баз данных и монорепозиториев, огромное количество новых мета-фреймворков и развитие JS-рантаймов. Ещё он считает, что пока рано бояться того, что нейронки оставят нас всех без работы, но ключевое слово — «пока».
Следующий материал — для хардкорных энтузиастов браузеров и JS. Джек Хэлон (Jack Halon) начал изучать браузер Chrome на предмет безопасности и решил в процессе исследования написать серию статей об этом. Первая, вводная, часть описывает V8, общее устройство, то, как браузер работает глубоко под капотом, и так далее. Во второй части он более подробно рассматривает V8 и смежные технологии, как работает окружение-песочница и другие аспекты работы Chrome. Серия — просто отпад. Чтобы её подробно прочесть, нужно посидеть часок, а то и два. Всё подробно, со схемами, примерами — в общем, супер. Я, кстати, планирую вернуться к этим статьям и разобрать их получше. Серия продолжается: пока есть две части, а будет как минимум ещё одна. Статьи переведены на Хабре, ссылки ведут как раз на переводы.
Довольно часто мы сталкиваемся со сложностями из-за подписок на события, про которые забыли. Перестать слушать события можно несколькими способами, о которых вы узнаете из статьи Алекса МакАртура (Alex MacArthur). Он рассказывает о том, как отписаться от событий при помощи опции once
метода .addEventListener
, AbortController’а и других. Скорее всего, вы знакомы со всеми или почти со всеми, но ценность в том, что Алекс в конце статьи говорит о том, в каком случае какой способ стоит выбрать.
Адриан Беце (Adrian Bece) в SmashingMagazine опубликовал статью о том, как кастомизировать и анимировать SVG. В этом практическом гайде собрано много подсказок и полезных трюков для работы с SVG. Параллельно Адриан касается оптимизации и реализации разных интересных эффектов.
Ускорение экосистемы JS — мечта многих. Марвин Хагемайст (Marvin Hagemeist) постарался разобраться, где ещё можно сэкономить и ускорить любимые проекты. В своей серии он касается оптимизации работы с популярными библиотеками, оптимизации собственных модулей, а ещё рассказывает, как может помочь линтинг.
Следующая статья — моего любимого типа. Она про освоение концепции, на которой построена технология. Такие статьи лучшие, потому что, понимая концепцию, гораздо проще эффективно изучать и использовать тот или иной инструмент. Владимир Клепов написал статью о том, как разбирался в TS при помощи теории множеств. Для него в TS было довольно много несостыковок и непонятных моментов, но, как только он взглянул на фичи TS через призму множеств, всё сразу встало на свои места. Получилось здорово, рекомендую.
Продолжая говорить о TypeScript: Мэт Покок (Matt Pocock) опубликовал на своём канале видео для начинающих работать с TypeScript. За примерно 25 минут он пробегается по базовым аспектам и простым фичам TS. От установки до разных типов и их применения. Неплохое обзорное видео для начинающих.
Ещё про типы. На этот раз про систему типов в GraphQL. Таня Раския (Tania Rascia) написала статью об этом. Она описывает разные типы и показывает, как с ними работать. Здесь и про скалярные типы, кастомные скаляры, интерфейсы, объекты и другие типы. Всё компактно и с примерами.
Темани Афиф (Temani Afif) продолжает радовать нас разными CSS-штуками на CSS Tricks. На этот раз он написал заметку о разных способах сделать тень элемента с цветом-градиентом. Бонусом он показал маленький примерчик с добавлением border-radius
.
Ещё один практический материальчик базового уровня. Он посвящён Playwright и тому, как подружить его с GitHub Actions. В статье описывается базовая конфигурация, работа с GitHub Actions, оптимизация и распараллеливание прогонов тестов. В конце всё это собирается в единый воркфлоу.
Завершит рубрику шаблон для Node.js-сервисов node-service-template
. Это именно шаблон на основе Fastify, который, по словам автора, позволяет быстро начать разработку сервиса на ноде enterprise-уровня. Можно заценить.
Новости релизов
Вышел Chrome 110. В этом релизе появился новый псевдокласс :picture-in-picture
для задания стилей плавающим окнам с видео. Появилась возможность задавать стартовое поведение приложения с помощью нового Launch Handler API. Также была представлена опция загрузки iframe в режиме credentialless
. DevTools тоже с новыми фичами. Панель Performance при перезагрузке страницы теперь очищается. Recorder получил ряд обновлений: шаги пользователя можно редактировать в процессе записи, исполняемый код подсвечивается, можно задать, какие селекторы записывать или не записывать. Для панели Sources прокачали подсветку синтаксиса: это коснулось Vue, Dart, LESS, SCSS, SASS и внутристрочного CSS. Больше подробностей — в обзорах новых релизов Chrome и DevTools от Google.
Новый Firefox тоже с номером 110. Прекрасный релиз, в котором подвезли поддержку Container Query
. Кроме того, была добавлена изоляция процессов, работающих с GPU на Windows. И приятная для пользователей возможность: закладки, историю и пароли теперь можно импортировать не только из Chrome, Safari и Edge, но и из Vivaldi и Opera.
Команда TypeScript анонсировала бету TypeScript 5.0. Новая версия мажорная, но в целом переход на пятую версию не будет отличаться от обычного апдейта версии. Что нового? Декораторы получили поддержку первого класса, появилась поддержка export type
, enums
теперь работают как объединения или unions
. Отдельно отмечу, что поработали над производительностью и размером бандла. Звучит хорошо, будем ждать релиза.
Node.js версии 19.6.0 уже доступен. В этом релизе обновили версию npm до 9.4. Пока ещё экспериментальные хуки загрузки теперь можно объединять в цепочки. Также вышла и новая LTS-версия 18.14.0. Она получила обновление npm до версии 9.3.
Фреймворк Electron 23 получил обновление стека: Chrome 110, V8 11 и Node.js 18.12.1. Кроме того, эта версия уже не поддерживает Windows 7/8/8.1. Честно говоря, сейчас Electron выглядит для меня устаревшим, и пора присмотреться к какому-то другому решению. Например, к тому же Tauri.
Закроет рубрику важное обновление git, в котором были устранены две серьёзные уязвимости, связанные с локальным клонированием и командой git apply
. Они позволяют получить доступ к данным и в определённых условиях перезаписывать файлы. Не забывайте вовремя обновляться.
Другие новости
Сначала новость, которая может коснуться многих наших любимых профессиональных сообществ и некоммерческих проектов. Slack объявил о том, что с 21 марта отключит бесплатные рабочие пространства в России. Владельцы российских спейсов уже получают уведомления об отключении. Так что, если у вас бесплатный воркспейс, у вас есть месяц, чтобы что-то сделать. Перейти на альтернативу, попытаться связаться с поддержкой. В статье на Хабре по ссылке альтернативы как раз упоминаются.
Продолжается волна увольнений в IT. На этот раз сокращения происходят в GitHub и Gitlab, которые сократят 10% и 7% штата соответственно. Добавлю, что при этом GitHub переходит на удалёнку и попытается сократить расходы за счёт офисов. Что сказать? Некоторые говорят об IT-кризисе и IT-апокалипсисе. Честно говоря, я так не думаю. Просто мы наблюдаем период, когда богатые и крупные IT-компании столкнулись с кризисом. С финансовым «жирком» пришлось попрощаться, а операционные расходы — сокращать. Так, например, закрываются целые подразделения, которые занимались исследовательскими и второстепенными проектами в Google, Meta и других. В малых и средних компаниях это случается постоянно, просто волна докатилась и до «крупняка». Так что не переживайте, продолжайте расти и оттачивать свои навыки — так вы точно не пропадёте и без хлебушка не останетесь.