В начале выпуска хочу поблагодарить слушателя новостей Александра, который заметил проблему с описанием предыдущего эпизода и написал мне об этом. Спасибо большое. Если у вас есть предложения или замечания по поводу новостей — не стесняйтесь написать мне прямо в телегу или заполнить форму обратной связи.
Интересные публикации
Начнем с более низкоуровневой истории. Валерий Удодов в своем блоге написал статью об использовании памяти в JavaScript, архитектуре и жизненном цикле данных в памяти. Автор рассказывает, как представлены в памяти разные примитивы и объекты, какие виды памяти есть и что такое ссылки. Затем он пишет о сборке мусора и утечках памяти. Очень рекомендую: знать, как работают под капотом инструменты и языки, которыми вы пользуетесь, очень полезно.
В блоге web.dev появилась статья о метках приоритета. Это атрибут importance, который позволяет указывать приоритет загрузки какого-либо ресурса. Естественно, у браузера есть приоритеты по умолчанию, но при помощи importance можно указать приоритет, отличный от приоритетов браузеров. Основная идея в том, чтобы помочь улучшить метрики Core Web Vitals. В статье описываются кейсы, в которых может понадобиться задать приоритет самостоятельно, и какие метрики это поможет улучшить.
Зак Лезерман (Zach Leatherman) в своем блоге написал статью о том, как можно запросто необъективно получить хорошие результаты Lighthouse и заодно навредить пользователям. Основная идея: при измерении показателей нужно всегда помнить, что есть слабое железо, медленное интернет-соединение и данные о работе сайта, собранные с реальных пользователей.
Дмитрий Павлютин в своем блоге поделился еще одной короткой, но ёмкой заметкой об одном из важных элементов JavaScript. В этот раз речь о замыканиях. Он идет от простого к сложному: говорит об окружении в базовом смысле, о том, как окружения могут вкладываться друг в друга, о лексическом окружении и, наконец, о том, как работают замыкания. Также он приводит несколько реальных примеров, в которых нужно понимать принципы работы замыканий.
Следующий материал — о разных фреймворках. Точнее, это сборник роадмапов развития для разработчиков при работе с той или иной технологией. Статья покрывает React, Angular, Vue, Ember.js и Node.js. По каждой технологии есть схема развития в виде mindmap и ссылки на ресурсы для их изучения. Так что если вы подумываете изучить новый фреймворк или просто посмотреть на них ради сравнения — вам сюда.
И еще одна статья про фреймворки. Она посвящена спорам вокруг превосходства React и Svelte и призвана этот спор разрешить. Паулина Гаевска (Paulina Gajewska) написала статью, в которой пытается сравнить Svelte и React. Честно говоря, получилась реклама Svelte, но не всё так просто. Паулина отмечает, что при всех плюсах — скорости, размере, удобстве, реактивности — у Svelte есть и минусы: маленькое комьюнити, отсутствие поддержки крупной компании и очень слабая распространенность в веб-разработке.
Ясас Сри Викрамасингх (Yasas Sri Wickramasinghe) на Medium опубликовал статью о нескольких экспериментальных фичах Chrome DevTools: расширенном превью CSS, подсветке потенциальных угроз Content Security Policy, редакторе шрифтов, эмуляторе экранов складных устройств и полном дереве доступности. Он рассказывает, как включить каждую фичу, и показывает примеры с помощью информативных гифок.
Мишель Баркер (Michelle Barker) на SmashingMagazine поделилась заметкой о доступности. Речь идет о медиа-запросе prefers-reduced-motion. Дело в том, что ряд пользователей предпочитает как можно меньше подвижных элементов и анимаций на странице, а у некоторых посетителей веб-страниц избыточные анимации могут даже вызвать припадки. О том, как правильно использовать prefers-reduced-motion и рассказывает Мишель, также она прикладывает ссылки на ресурсы для дальнейшего изучения темы.
Ещё один материал со SmashingMagazine. Альваро Монторо (Alvaro Montoro) опубликовал статью о темных паттернах в формах. Темные паттерны заставляют пользователя делать то, чего он не хотел, или не замечать что-то, что он должен был бы заметить, например, кнопку отписки от сервиса. Альваро проводит небольшой эксперимент в трех разных браузерах и показывает, что могут сделать формы с вашими данными без вашего ведома.
Приготовьтесь к чему-то посложнее. Михаил Борислав (Michael Borislav) на Хабре написал статью-размышление об архитектуре проектов на JavaScript, основанную на реальном кейсе. При всем моем желании, я бы не смог объяснить всё в одном выпуске, потому что некоторые комментарии к статье сами тянут на небольшую статью. Если вас интересуют темы архитектуры, TypeScript, тестирования, разных интерфейсов и уровней абстракции — вы попали куда нужно. Осторожно, много букв.
Мод Нальпас (Maud Nalpas) написала статью о Reporting API. Это API, который предназначен для мониторинга веб-приложений. Некоторые ошибки возникают только на продакшене, именно их и должен помогать ловить новый API. Мод описывает способы применения API, типы ошибок и то, как выглядят отчеты. API появится в Chrome 96, пора бы и попробовать.
Завершат рубрику инструменты.
Алексей Оганезов на Хабре опубликовал статью о фреймворке Old Skull (не school — как школа, а skull — как череп). Как пишет Алексей, Old Skull — это улучшенная версия Backbone.js, в которой нет недостатков Backbone. Приводятся бенчмарки, раскрываются принципы работы и примеры кода.
Следующая полезная ссылка — шаблон конфига для Webpack 5 c Babel, PostCSS и Saas. Посмотрите, возможно, он пригодится вам на каком-нибудь новом проекте.
Новости релизов
Вышла 17 мажорная версия Node.js, теперь это current версия. Для разных API продолжают добавлять поддержку промисов, обновили V8 до версии 9.5, расширили API интернационализации, а также обновили OpenSSL до третьей версии. Но не это самое важное прямо сейчас. Важнее то, что на следующей неделе Node.js 16 станет LTS-версией до 2024 года, а это значит, что скоро 16 ноду можно будет подвозить на прод. Эта же версия станет первой полностью совместимой с процессорами M1. Вместе с тем Node.js 12 LTS перестанут поддерживать в апреле 2022 года. Рекомендую обновляться.
Состоялся релиз Chrome 95. Был добавлен URLPattern — API, который помогает извлекать данные из URL. Добавили Eye Dropper API — инструмент получения цвета элемента страницы, как «пипетка» в Paint. WebAssembly теперь умеет обрабатывать исключения, не используя JavaScript, что уменьшает нагрузку на приложения. В DevTools теперь можно скрывать предупреждения, а размеры в стилях можно менять без клавиатуры. Также апнули Lighthouse до версии 8.4. Больше подробностей — в обзорах Пита Лепейджа и Джеселин Ин.
Браузер Vivaldi отметился выпуском версии 4.3. Этот релиз был направлен на усиление безопасности и приватности при работе в сети, а также улучшение популярных фич, например, апгрейд браузерного инструмента для скриншотов и расширение количества языков во встроенном переводчике с 40 до 108.
Вышла версия WebStorm 2021.3 EAP (Early Access Program). К ней приковано большое внимание, потому что появилась удаленная разработка, можно подключиться к удаленной машине и работать над расположенным на ней проектом. Это, конечно, не все нововведения, про остальные поговорим после релиза.
Вышла версия языка Rust 1.56.0 с пометкой 2021. Что это означает? Rust 2021 — это своего рода LTS-версия до 2024 года. Были и нововведения, подробнее на странице релиза.
Также отмечу релизы njs 0.7.0 и VirtualBox 6.1.28.
Другие новости
W3C, или Консорциум Всемирной сети, опубликовал октябрьский отчёт о работе. В отчете можно найти краткую информацию о текущем статусе разных проектов и инициатив, ссылки на подробности и детали для тех, кто этим интересуется. Если вы никогда не интересовались работой консорциума и его комитетов, то стоит, как минимум, бегло взглянуть, возможно, вас что-то заинтересует.
Небольшая новость о браузере Brave. Напомню, несколько месяцев назад компания выкупила поисковый движок и создала свой собственный — Brave Search. Сейчас он станет движком по умолчанию для пользователей в США, Великобритании, Канаде, Франции и Германии. Это означает, что тестирование движка завершается, в блоге компании отмечается, что количество запросов через Brave Search растет, и это хорошо.
Ещё одна заметка от Зака Лезермана. Заметка называется «Кто платит за фреймворки?». Зак делится своими наблюдениями о том, кем и как финансируются разные фреймворки и инструменты, и как это сказывается на их распространенности и популярности. Америку не открыл, но если вы никогда не задавались этим вопросом — полюбопытствуйте.