Новости 512 #148

В этом выпуске: устранение уязвимостей в Chrome и Firefox, V8 8.9, прогрессивный рендеринг, аудит производительности внутренних систем организации, обновление Ubuntu 20.04.2 LTS и репозиторий Awesome Node.js.

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

Мэтт Хоббс (Matt Hobbs) опубликовал большую статью про аудит производительности внутренних сайтов организации. Мэтт призывает всех оптимизировать сайты в своей внутренней инфраструктуре и не забывать, что ваши сотрудники и коллеги — тоже пользователи. Для анализа он использует WebPageTest и Sitespeed.io, а для анализа производительности в рантайме — Chrome DevTools. Также он затрагивает вопрос аналитики. Статья большая и очень крута тем, что в каждом разделе есть много ссылок на полезные ресурсы.

Штефан Баумгартнер (Stefan Baumgartner) на SmashingMagazine показал, как типизировать сложную функцию для отправки GET-запросов. Штефан постепенно усложняет пример и использует продвинутые фишки: добавляются юнионы, дженерики. Также он использует и пару совсем новых фич TypeScript: литеральные шаблонные типы и рекурсивные условные типы для извлечения имен параметров.

Следующая тема — прогрессивный рендеринг. Нетми Виджесинге (Nethmi Wijesinghe) написала статью об этом подходе. Суть в том, что компоненты последовательно рендерятся на стороне сервера и отправляются клиенту частями, не дожидаясь отрисовки всей страницы. Цель, конечно же, простая — увеличить производительность. Чтобы помочь читателю разобраться в вопросе, Нетми делает обзор клиентского и серверного рендеринга, их плюсов и минусов. В итоге она приходит к выводу, что оптимальная стратегия — прогрессивный рендеринг на стороне сервера, а также показывает пару фич DevTools для анализа рендеринга и его проблем — paint flashing и scrolling performance issues. Также есть перевод на Хабре.

Небольшое размышление Махди Резви (Mahdhi Rezvi) о том, превратится ли со временем JavaScript в TypeScript. Он делится своими соображениями о фичах, которые появились в JavaScript под влиянием TypeScript. По его мнению, это были классы, операторы optional chaining и nullish coalescing, а также приватные переменные и декораторы. Махди считает, что в JS могут подвезти неймспейсы и интерфейсы.

Топ 10 докладов по Angular за 2020 год по версии ресурса MeetupFeed. Среди них: про новый движок Ivy, Module Federation, RxJS, работу связки Angular и Firebase. Это еще не всё: на MeetupFeed можно найти большое количество других докладов по JavaScript и TypeScript, Node.js и serverless-технологиям.

Чуть больше года назад я уже рассказывал про репозиторий Awesome Node.js. Это сборник полезных библиотек для Node.js-проектов и образовательных ресурсов. За год репозиторий значительно вырос и определенно заслуживает внимания: с большой вероятностью вы найдете там что-то полезное для своей работы.

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

После релиза браузеров наступает время что-нибудь починить. Именно это и сделала команда Firefox релизами 85.0.1 и 78.7.1 ESR версии браузера. Это был фикс критической уязвимости, которая позволяла исполнить код в системе пользователя при открытии содержимого, оформленного определенным образом. Также было представлено еще несколько небольших исправлений.

Google Chrome тоже не прекращает закрывать бреши в безопасности. Вышел ещё один патч 88-ой версии браузера. Была закрыта уязвимость, о которой пока неизвестно ничего, кроме того, что это связано с переполнением кучи в V8. Уязвимость не была помечена как критическая, но раз фикс выпустили, значит, это было важно.

Посмотрим на наш любимый движок V8. Была сформирована ветка 8.9. Нас ждёт top-level await и ускоренный вызов функций с разным количеством аргументов. Эта версия появится в Chrome 89, выпуск которого запланирован на 2 марта.

Тест-раннер Karma отметился релизом версии 6.1.0. В этом небольшом обновлении была улучшена обработка ошибок при парсинге файла конфигурации.

Вышел Cypress 6.4.0. Загрузка файла теперь логируется, опция метода cy.intercept() delayMs была переименована в delay. Какое-то время delayMs будет поддерживаться, но уже помечена как устаревшая и будет удалена в будущих релизах. Конечно, не обошлось и без пачки баг-фиксов.

Вышла 4-ая версия Vuex — библиотеки для работы с состоянием в экосистеме Vue. Этот релиз будет работать как раз с новой, 3-ей версией фреймворка. Разработчики отмечают, что API не изменится по сравнению с предыдущей версией и свой код можно будет легко переиспользовать. Пока что релиз всё еще помечен как next, и есть breaking changes: изменился процесс инсталляции и генерируются дополнительные бандлы для работы с третьей версией Vue.

Вышла Ubuntu 20.04.2 LTS. Были обновлены графические компоненты и драйвера для чипов Intel, AMD и Nvidia, а ядро — до версии 5.8. Также в релиз включены свежие выпуски большого количества пакетов.

Также отмечу релиз nginx Unit 1.22.

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

Команда Evrone взяла небольшое интервью у создателя Vue Эвана Ю о подходе к работе и разработке фреймворка. Он рассказал о структуре своего рабочего дня, о том, что математика и алгоритмы — не самое важное для разработчика, но пренебрегать ими не стоит. Также Эван поделился прогнозом относительно развития JavaScript и TypeScript: он считает, что типы в JavaScript не появятся вовсе и он будет развиваться параллельно с TypeScript. Кроме этого затрагивались такие темы, как работа с сообществом вокруг фреймворка и разработка некоторых его фич. Интервью не очень длинное, но интересное.

Таинственная история случилась в сообществе языка Perl. У проекта угнали домен perl.com. Предполагаемые угонщики вроде бы имели отношение к распространению вредоносного ПО и, скорее всего, похитили домен, чтобы воплотить какой-то коварный замысел. На возвращение домена ушла примерно неделя, на сегодняшний день работа сервиса полностью восстановлена.

Комментарии

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