Новости 512 #246

В этом выпуске: Chrome 120, Firefox 120, PHP 8.3 и Astro 4, современные фреймворки через создание своего собственного, элемент ``, новый оптимизирующий компилятор V8 Maglev, прокачка PM2 и на другие интересные материалы.

Всем привет, это «Новости 512» от CSSSR. В этом выпуске мы поговорим о релизах Chrome 120, Firefox 120, PHP 8.3 и Astro 4, изучим современные фреймворки через создание своего собственного, разберёмся с элементом <dialog>, посмотрим на новый оптимизирующий компилятор V8 Maglev, глянем, как можно прокачать PM2 и на другие интересные материалы. В конце выпуска мы немного поговорим о конкурсе от Prettier, нашем спасении от восстания машин и чуть-чуть о суперкомпьютерах.

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

Одна из моих любимых категорий статей — это те, в которых что-то изучается через создание. Это как раз тот случай. Нолан Лоусон (Nolan Lawson) в своём блоге предлагает разобраться в том, как работают современные JS-фреймворки через создание своего собственного. Что такое современный? Он имеет в виду, что фреймворк должен уметь в реактивность, использовать клонированные шаблоны для рендера DOM и использовать современные JavaScript API. Собственно, все эти фичи он и реализует по очереди в своём небольшом фреймворке. Понятно, что это просто пример для разбора концепций, статья не очень большая. Но разобраться вполне себе можно. Рекомендую поделать руками и внимательно почитать.

Джейк Лазароф (Jake Lazaroff) задался вопросом: можно ли не зацикливаться на JS-фреймворках? Его точка зрения такова: можно вообще не париться. Доказывает он это довольно интересным способом. Он реализует простое TODO-приложение, в котором каждый компонент реализует при помощи разного JS-фреймворка. Он пытается показать, что такой подход возможен, а веб-компоненты в этом очень помогут. Он оговаривается, что вряд ли вы действительно напишете такое приложение, но такая ситуация может возникнуть, например, при миграции с одного фреймворка на другой.

Про элемент <dialog> многим уже вполне себе известно. Это нативное диалоговое окно в HTML, которое может работать как в режиме диалогового, так и в режиме модального. Александр Григоренко на Хабре написал статью про работу с новым элементом. Помимо общих сведений, он рассматривает особенности и тонкости работы нового элемента, а также решение ряда проблем, которые могут возникать при его использовании.

Команда V8 в своём блоге рассказала о новом оптимизирующем компиляторе движка Maglev. Вы наверняка слышали про Sparkplug и TurboFan, Maglev находится примерно между ними. В статье раскрывается мотивация создания ещё одного оптимизирующего компилятора (если коротко — сделать нечто среднее между двумя существующими для определённых случаев) и технические подробности. Работа существующих элементов V8 вместе с новым компилятором улучшила бенчмарки и уменьшила потребление энергии устройствами. Цифры и подробности — в блоге V8.

Даниель Лемире (Daniel Lemire) задался вопросом, какой рантайм лучше работает с WebSocket. Он сравнил Node.js и Bun. Сейчас вообще частенько сравнивают Bun с чем-нибудь, сами понимаете почему. В итоге пришёл к выводу, что Bun быстрее на 40%. В статье вы найдёте ссылки на код и описание самого бенчмарка. Кейс был довольно простой, но заслуживает немного внимания.

Если вы работали с мало-мальски реальным Node.js-приложением из реального мира, вы наверняка сталкивались с управлением процессами приложений и менеджером PM2. Если нет, коротко скажу, что это менеджер процессов, который позволяет кластеризовать и распределять нагрузку на сервер. В некоторых случаях его возможностей не хватает. Именно о таком случае рассказал на Хабре Вячеслав Волков. В его случае нужно было научить PM2 автоматически масштабировать приложение при различных нагрузках. Для этого он написал свой плагин pm2-autoscale, который доступен любому желающему для установки и участия в разработке. Автор будет рад вашей помощи и отзывам.

К выходу готовится обновлённое CLI-приложение форматтера Prettier. Фабио Спампинато (Fabio Spampinato), который как раз над ним работал, рассказал о том, что изменилось. Если упрощать, его основной задачей была оптимизация. Он погрузился в детали, рассказал о том, как поработал над кэшированием, самим форматированием и другими частями приложения. Если вы любите разбираться в том, как работают ваши любимые инструменты, вам обязательно понравится.

Следующая пара материалов посвящена тестам. Представьте себе «прекрасную» ситуацию, в которой ваш фронтенд, который вы гоняете по тестам в Playwright, вообще-то выбросил исключение и упал, а тест всё равно прошёл. Неприятненько. Стефан Юдис (Stefan Judis) рассказал о том, как избежать таких ситуаций с ложно-позитивными тестами при помощи фикстур. Он рассказывает о самой фиче, приводит примеры и рассказывает, в каких ещё случаях это может быть полезно.

Ещё один материал — исчерпывающая шпаргалка по Puppeteer. Это именно шпаргалка без детального описания API и методов, только задача и кусочки кода. Возможно, вам пригодится.

Санми Аканде (Sanmi Akande) в Smashing Magazine поделился способами восстановления утраченных данных в git. Он коротко рассказывает о том, как git вообще работает с файлами и изменениями, а также как могут быть удалены файлы и данные из них. Затем он рассматривает большое количество разных ситуаций, в которых можно либо, наоборот, нельзя восстановить утерянное.

Завершит рубрику парочка видео. Первое видео от всем известного Эвана Ю: примерно за час он рассказал о текущем состоянии фреймворка Vue и Vite.

Второе видео о 10 новых фичах JS, которые вы могли пропустить в 2023 году. Оно совсем короткое, идёт чуть меньше 6 минут.

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

Вышел Chrome 120. Был добавлен новый CloseWatcher API, который предоставляет разработчикам способ прослушивать и отвечать на запросы закрытия всплывающих и модальных компонентов. Для элемента <details> добавили поддержку атрибута name. Элементы <details> с одинаковым значением атрибута группируются, а одновременно можно открыть только один элемент — получается аккордеончик. Также продолжается работа над прекращением поддержки сторонних файлов cookie, в январе начнётся эксперимент на эту тему. DevTools также получил пару изменений, связанных с cookies, расширенный список игнорирования для дебаггера и ряд других небольших изменений. Больше подробностей — в официальных обзорах Chrome и DevTools от Google.

Firefox также отметился версией 120. Теперь поддерживается атрибут media в элементе <source>, вложенном в элементы <picture>, <audio> и <video>. Была добавлена поддержка CSS-функции light-dark(), а также единиц измерения высоты строки lh и rlh. Метод JavaScript Date.parse() теперь принимает несколько дополнительных форматов дат. Для пользователей подъехала киллер-фича: появилась кнопка копирования ссылок без информации для отслеживания вроде меток и прочего. Как и всегда, был устранен ряд багов и уязвимостей.

LTS-версии Node.js получили обновления. Версия 20.10.0 получила экспериментальный клиент WebSocket и экспериментальный флаг для автоопределения ES-модулей. Node.js 18.19.0 разжилась npm 10 и небольшими доработками кастомизации хуков и лоадеров.

Обновилась и current-ветка рантайма. В версии 21.3.0 добавили флаг --disable-warning для отключения определённых предупреждений, а также ускорили метод fs.writeFileSync() в два с половиной раза в некоторых условиях. Следом прилетела версия 21.4.0, в которой починили небольшую регрессию, которую привнесли, пока ускоряли fs.writeFileSync().

Доступна четвёртая мажорная версия фреймворка Astro. Главная фишка релиза — Astro DevToolbar. Это плашечка, которая будет появляться только в dev-режиме и позволит смотреть, что у вас там с компонентами, дебажить приложение и многое другое. Помимо этого, добавили поддержку мультиязычного роутинга, сделали логи в консоли более лаконичными и чистыми, а также представили редизайн документации.

Вышло обновление фреймворка Fresh от команды Deno за версией 1.6. В новой версии добавили плагин для Tailwind CSS, упростили тайпинги, а также добавили поддержку фрагментов для форм.

Кстати, был ещё один анонс от Deno. Команда анонсировала Deno Cron. По названию вы могли догадаться, что это cron. Ссылку на анонс я также приложу к выпуску.

Вышла версия PHP 8.3. Это довольно большое обновление, в котором добавили глубокое клонирование readonly-свойств, явную типизацию констант классов и улучшения для класса Randomizer. Выкатили, конечно, и исправления багов, а также поработали над производительностью. Подробнее — по ссылке на страницу релиза. Пользуясь случаем, добавлю, что ветку PHP 8.0 перестали поддерживать. Это значит, что она не будет получать обновления безопасности, так что не забывайте вовремя обновляться.

В релизе Storybook 7.6 улучшили поддержку SWC или Speedy Web Copmpilier, добавили новые тестовые утилиты и режим быстрого билда, диагностику ошибок в CLI, а также выкатили обновлённый и дополненный сайт с документацией. Были и другие изменения, подробнее — в блоге Storybook.

Отдельно хочу отметить релиз ядра Linux 6.6.6. Знаково, не правда ли? Патч важный, он затрагивает беспроводной стек и исправляет блокировку сетевых менеджеров.

Также в этом выпуске я отмечу релизы Mongoose 8, React Native 0.73, фреймворка Electron 28 и операционки FreeBSD 14. Рядом шутка о том, как пропатчить KDE2 под FreeBSD и аниме (если вы поняли, то нам вместе пора закрашивать седину).

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

Ещё немного про Prettier. Команда тула объявила о состязании форматтеров, написанных на Rust. В этом состязании поучаствовал Biome — напомню, идейный преемник фронтенд-тула Rome, который прошёл большее 95% JS-тестов и забрал тот самый приз, который составил 25 тысяч долларов. Команда Prettier посчитала, что расслабилась из-за отсутствия конкуренции в своей нише, что замедляет развитие инструмента. В итоге конкуренция всё-таки есть; думаю, это подтолкнет проекты к дальнейшему развитию.

В интернетах много разговоров про апокалипсис из-за искусственного интеллекта. Крупные компании решили, что Skynet нужно усмирять ещё на этапе гипотезы, и создали AI Alliance — организацию, которая по идее будет совместно развивать технологии искусственного интеллекта и связанных технологий. Её основали IBM и Meta, в альянс вошло порядка 50 крупных компаний, университетов и исследовательских организаций. Надеюсь, что за ними не вышлют Терминатора из будущего.

В конце выпуска расскажу вам о свежем рейтинге 500 самых производительных компьютеров мира. Первое место за собой сохранил кластер Frontier, а больше всего суперкомпьютеров в США, Китае и Германии. Для интересующихся больше подробностей по ссылке на рейтинг.

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

Telegram—канал CSSSR

Twitter CSSSR

Twitter новостей

Telegram ведущего

Twitter ведущего

Комментарии

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