Новости 512 #248

В этом выпуске: планы фреймворков на 2024, критика серверных компонентов в Next.js, StyleX от Facebook и релиз Vue 3.4. Также мы обсудим релизы Firefox 121, Safari 17.2 и Deno 1.39. В конце: восходящие звёзды JS и обновлённый рейтинг баз данных.

Всем привет, это «Новости 512» от CSSSR. Надеюсь, вы хорошо встретили Новый год и он будет для вас лучше предыдущего. В этом выпуске мы постараемся нагнать темп и поговорим о некоторых событиях, которые произошли примерно с середины декабря. Мы поговорим про планы некоторых фреймворков на 2024, покритикуем серверные компоненты в Next.js, узнаем, что за StyleX явил нам Facebook и что нового во Vue 3.4. Также мы обсудим релизы Firefox 121, Safari 17.2 и Deno 1.39. В конце выпуска будет о восходящих звёздах JS и обновлённом рейтинге баз данных.

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

Первый материал этого выпуска — критика серверных компонентов React. Автор успел плотно поработать с ними в контексте Next.js. Он отмечает, что концепция выглядит хорошо и в некоторых кейсах хорошо работает. Также понравились серверные действия, которые позволяют на сервере исполнять код в ответ на взаимодействия с пользователем. Что совсем не понравилось — больше беспорядка в коде и плохо читаемая структура компонентов внутри проекта. Ещё одна негативная сторона: решения команды Next.js относительно расширения API запутывают и иногда кажутся избыточными. В статье есть примеры, и анализ сторон серверных компонентов разделён на блоки. У меня есть ощущение, что серверные компоненты стали долгостроем, который в конечном итоге к релизу будет иметь множество конкурентов в лице других подходов и фреймворков.

Тем временем команды разных фреймворков поделились планами на год. Команда Angular анонсировала новый глобальный объект Zone, который поможет управлять асинхронными операциями и обрабатывать ошибки, которые возникают в процессе их выполнения. Next.js планирует продолжать развивать поддержку серверных компонентов и серверных действий, также планируется выпустить новый компилятор. У React не было каких-то новых планов, но продолжится работа над некоторыми идеями из 2023. Например, над автомемоизирующим компилятором React Forget, который позволит больше не пользоваться useMemo или useCallback. Ещё одна идея — дополнить React Native девтулзами, сопоставимыми с девтулзами Chrome. Команда Solid напомнила о SolidStart — по сути его можно сравнить со SvelteKit. В Solid продолжат улучшать и переосмысливать систему реактивности и сигналов. Больше подробностей — по ссылке.

Facebook в конце прошлого года выпустил своё CSS-in-JS решение StyleX. Хочется шутить, что теперь продукты занимают все имена, в которых есть большая X. По идее StyleX обещает удобное переиспользование, типизацию, создание настоящих однофайловых компонентов. Предполагается, что он принесёт большую пользу большим проектам и, вероятно, будет продвигаться как лучшая практика для React. Добавлю также, что StyleX не зависит от фреймворка и его можно использовать с любым из них. Дополнительно к анонсу я приложу один из первых обзоров на StyleX.

Стив Сьюел (Steve Sewell) написал заметку о глубоком клонировании объектов в JavaScript. Вы можете догадаться, что он рассказывает о методе structuredClone(). Вы про него, скорее всего, слышали, но ценность заметки в том, что он показывает старые решения проблемы копирования объектов и объясняет, почему от них пора отказаться. Помимо этого, он отмечает, что structuredClone не может копировать функции, узлы DOM, прототипы объектов и некоторые другие объекты.

Всем нам приходится выбирать библиотеки. Конечно, мы хотим, чтобы они были меньше, быстрее и так далее. Но как оптимизировать выбранную? Энтузиаст оптимизации и профайлинга Стефан Гойц (Stéphane Goetz) рассказал об этом на примере кейса с работы, когда нужно было выбрать библиотеку для какой-то задачи. Он проводит читателя через разные методы профайлинга и оптимизации библиотек целиком или их частей, а в конце делится некоторыми мыслями о том, как понять, когда уже пора остановиться на пути оптимизации.

Далее статья в двух частях. Это подборка вопросов для собеседований фронтендеров с ответами. Вы скажете «очередная» и будете правы, но вопросов с собеседований много не бывает. Первая часть посвящена вопросам по JavaScript: от работы Event Loop до сборки мусора и других продвинутых тем. Вторая часть посвящена вопросам по TypeScript, так же с ответами.

Робин Урих (Robin Wierich) в начале прошлого года собрал большую коллекцию библиотек для самых разных задач в React-разработке. Я про неё уже рассказывал, но подумал, что можно напомнить. Набор покрывает кучу сфер: от банального старта React-проекта до AR/VR-решений. Возможно, что-то вам пригодится.

Правда ли, что для любого проекта с JS нужна система сборки? Хороший вопрос. Джулия Эванс (Julia Evans) считает, что нет. В своей заметке она рассказывает о своём опыте создания маленьких проектов или поддержки небольших сайтов, которые редко радикально меняются. Основная мысль в том, что оно не стоит того для небольших или личных проектов. Также она поделилась своим небольшим шаблоном для использования Vue без билда. Если что, она не топит за веб без билдов, просто говорит, что иногда это не нужно.

Закроет рубрику введение в htmx. Если вы ещё не работали с ним, то это прекрасный способ познакомиться с технологией и поковырять примерчики.

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

Вышел Firefox 121. В этой версии поддерживается ленивая загрузка <iframe>, наконец была добавлена поддержка псевдоселектора :has(), также CSS-свойство text-wrap стала поддерживать значения balance и stable. JS без внимания тоже не оставили: появилась поддержка статического метода Promise.withResolvers(), а Date.parse() стал поддерживать ещё больше форматов и получил парочку багфиксов. Из фич для пользователей я, наверное, отмечу только управление голосовыми командами на macOS и настройку для принудительного подчёркивания ссылок независимо от CSS страницы. Больше подробностей — в release notes.

Релиз Safari 17.2 случился относительно давно, но до Нового года мы о нём не говорили. Итак, новая версия поддерживает аккордеоны, которые получаются при добавлении атрибута name тэгу <details>, поддержка вложенного CSS теперь полноценная, без оговорок, также были добавлены новые единицы измерения для символов. Была проделана работа над способами анимации, также были добавлены математические функции CSS. В части JS добавили поддержку атрибутов импортов и поддержку формата чисел для интернационализации. Больше подробностей — в блоге WebKit.

Vue отметился версией 3.4. Релиз включает в себя новый парсер шаблонов, который работает в два раза быстрее, рефакторинг системы реактивности, благодаря которому эффекты срабатывают точнее и эффективнее. Также в новой версии есть ряд улучшений API для удобства разработки. Также в release notes есть небольшая инструкция по обновлению: нужно апнуть некоторые зависимости.

Deno 1.39 возвестил о возвращении Web GPU. Напомню, это API, который позволяет использовать ресурсы GPU для вычислений, это расширяет возможности для гейминга, машинного обучения — в общем, для всего, где нужны вычислительные мощности. Фича была отключена в Deno с 2021 года, теперь она снова в деле. deno compile теперь ещё лучше работает с node_modules, также были представлены улучшения анализатора кода и LSP. Подробнее — в блоге Deno.

Также в этом выпуске отмечу релизы рантайма Node.js 21.5.0 и 20.11.0 (LTS), фреймворков Remix 2.4.0 и Ember 5.5, бандлеров Rollup 4.9.5 и Parcel 2.11, а также ядра Linux 6.7.

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

Результатов опросов из серии State of… ещё нет, но есть один любопытный рейтинг, который я обязательно просматриваю каждый год. Это JavaScript Rising Stars, он составляется по звёздам, которые проекты собирают на GitHub. Он разделён на категории, но все проекты относятся к JS. Например, самым популярным стал shadcn/ui — набор React-компонентов, которые можно кастомизировать с Tailwind CSS. StyleX от Facebook ворвался с ноги в сектор CSS-in-JS решений, набрав все свои звёзды за декабрь. Expo и React Native бегут нос к носу среди решений для разработки мобильных приложений. Playwright уверенно набирал популярность в 2023, а Tauri сильно задвинул Electron как инструмент для desktop-решений. Среди фреймворков и их экосистем особых сюрпризов не было. В любом случае советую заглянуть и посмотреть самим — так можно узнать о какой-то технологии или найти новую, которую захочется изучить.

Mozilla анонсировала начало работы каталога дополнений Firefox на Android. Какие-то расширения можно было использовать и раньше, а это куда более широкий список дополнений. Авторы расширений к определённому времени должны были адаптировать их для мобильных устройств. План был перевыполнен во много раз, и теперь пользователи Mozilla на Android могут использовать более 450 дополнений. В ближайшее время планирую заценить.

В конце выпуска хочу упомянуть рейтинг баз данных. Он был обновлён, в этом году четвёрка лидеров особенно не изменилась, но примечателен факт, что PostgreSQL стала СУБД 2023 года за самый большой рост популярности. Рейтинг сам по себе тоже довольно интересный, рекомендую заглянуть.

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

Telegram—канал CSSSR

Twitter CSSSR

Twitter новостей

Telegram ведущего

Twitter ведущего

Комментарии

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