Новости 512 #163

В этом выпуске: Chrome 90, Deno 1.9, инъекции кода в JavaScript и анализ производительности JS, миграция DevTools на TypeScript, обзор относительно новых сборщиков, верстка писем, pnpm 6 и ESLint 7.24.0.

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

Лиран Тал (Liran Tal) в своём блоге написал статью о том, как избежать инъекций кода в JavaScript. В общей сложности он даёт 5 рекомендаций. Стоит избегать использования eval(), setTimeout() и setInterval(), также рекомендуется не использовать конструктор new Function(). Помимо этого стоит избегать сериализации кода в JS. И напротив, Лиран рекомендует использовать линтер безопасности Node.js и статический анализатор кода для поиска таких проблем.

Хью Хаворт (Hugh Haworth) на css-tricks опубликовал статью-сравнение разных относительно новых сборщиков: esbuild, Snowpack, Vite и wmr. Не могу сказать, что это именно сравнение, скорее, обзор. Потому что те же Snowpack и Vite используют esbuild под капотом для сборки. Обзор получился подробный и обширный, в конце раздела с каждым сборщиком есть таблица фич, а в конце статьи сводная таблица со сравнением фич всех сборщиков.

Тим ван дер Липпе (Tim van der Lippe) написал статью о том, как DevTools мигрировали на TypeScript. С ростом кодовой базы пришлось сделать непростой выбор между улучшением Closure Compiler и внедрением TypeScript. Выбрали последнее. Это позволило улучшить проверку типов и начать пользоваться такими фичами, как интерфейсы. Тим описывает сам процесс миграции и к чему это привело.

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

Филип Уолтон (Philip Walton) на web.dev написал статью о дебаге Web Vitals в «боевых» условиях. В тексте описывается, как получать информацию по метрикам из браузера пользователя для их дебага. Для сбора данных используется библиотека web-vitals, приведены примеры использования API для получения данных по конкретным метрикам Web Vitals.

Следующий материал продолжает тему дебага, но в нём речь пойдет про производительность JS. Крейг Баклер (Craig Buckler) написал статью, в которой рассказывает о большом количестве инструментов и техник анализа производительности JavaScript: от DevTools и Lighthouse до анализа потребления памяти и загрузки процессора. Получилось неплохо, возможно, в этой статье вы найдете немало нового для дебага производительности JS.

Завершат рубрику 2 материала со SmashingMagazine. Первый — от Виталия Фридмана — посвящен верстке писем. Автор собрал обширный список инструментов, генераторов, фреймворков, шаблонов и хороших практик. Второй написал Дэвен Ратхор (Deven Rathore). Это гайд по созданию приложения для видеостриминга с использованием Nuxt.js, Node.js и Express.

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

Релиз Chrome 90 первый в этом выпуске. Что нового: overflow:clip, декларативный Shadow DOM, https теперь используется по умолчанию. Кроме того, Feature Policy API переименовали в Permissions Policy, соответствующий заголовок тоже. DevTools традиционно с обновлениями: выкатились новые инструменты отладки флексов, таб issues обновился, в панели Cookies появилась колонка SameParty, также улучшили производительность. И это еще не все улучшения. Также отмечу, что релиз 90 версии Chrome был слегка задержан, скорее всего, из-за двух уязвимостей нулевого дня и выхода обновления 89 версии с их устранением.

Deno отметился релизом 1.9. Была добавлена нативная поддержка HTTP/2 и Blob/Data URL для fetch. Появился метод Deno.memoryUsage(). Также в очередной раз прокачали LSP.

Далее релиз пакетного менеджера pnpm. Это пакетный менеджер, который, по заявлению команды, в 2 раза быстрее своих конкурентов и позволяет не дублировать зависимости за счет использования ссылок. Новая 6 версия не поддерживает Node.js 10, была добавлена новая команда pnpm fetch. Посмотрите, возможно этот пакетный менеджер подойдет вашему проекту. Кстати, пишут, что он хорош для монорепозиториев.

Вышел ESLint 7.24.0. В новой версии у правил no-implicit-coercion и no-multi-assign появились новые опции. Также в no-unused-vars поправили один баг и подвезли пачку фиксов в документацию.

Также отмечу релиз Laravel 8.37 с анонимными миграциями и релиз nginx 1.19.10.

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

Помните историю о конфликте Amazon и Elasticsearch? Коротко напомню: Elasticsearch устали от того, что на их open-source продукте зарабатывают просто так, и перевели свой одноименный продукт на несвободную лицензию. Amazon тогда грозился форкнуть Elasticsearch и сделать свой продукт. Это случилось. Гигант представил OpenSearch — тот самый форк Elasticsearch. Вышло примерно как я и предполагал — просто сделали свое. И даже слегка пожурили Elasticsearch за жадность, сказав, что OpenSearch будет открытым, распространяться под свободной лицензией и так далее. К работе над проектом уже присоединились, например, Red Hat и Logz.io. В будущем сервис Amazon Elasticsearch Service будет переименован в Amazon OpenSearch Service. В общем, Amazon зарабатывать не перестанет.

Продолжается и, я надеюсь, заканчивается скандал вокруг возвращения Столлмана в FSF. На сайте фонда были опубликованы заявления от лица фонда и самого Столлмана. В первом объясняется, что возвращение Столлмана — взвешенный шаг, и его экспертиза очень нужна фонду, при этом он работает как волонтер. Во втором заявлении высказался сам Столлман и объяснил, что вызвало ряд непониманий его слов и действий в сообществе. Кроме того, он призвал направить критику в его адрес, а не в адрес фонда. Посмотрим, поможет ли это прекратить бойкоты и возобновить сотрудничество с разными организациями.

Vue 3 отказывается от поддержки IE11. Эван Ю опубликовал gist с объяснением, почему поддержку решили не добавлять. Напомню, что поддержки IE11 не было, но её хотели добавить. В 2021 году к этому вопросу вернулись, рассмотрели все аргументы за и против и решили, что не нужно. Вместо этого решили добавить в Vue 2 совместимость с фичами Vue 3, что позволит комфортнее использовать Vue 2 тем, кому нужна поддержка IE11, и упростит миграцию на Vue 3 в будущем.

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

Telegram—канал CSSSR

Twitter CSSSR

Twitter новостей

Telegram ведущего

Twitter ведущего

Комментарии

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