Всем привет, это «Новости 512» от CSSSR. Сегодня вас ждёт короткий выпуск. В этом выпуске мы узнаем о будущем dev-режима Figma, посмотрим на бету TypeScript 5.4, критически взглянем на критику App Router Next.js, узнаем, как начать новый React-проект в 2024 году, и пробежимся по паре подборок полезностей. Ещё я анонсирую security-релизы Node.js февраля и скажу пару слов об амбициозном редакторе кода и о том, как Rust продолжает набирать популярность.
Перед началом выпуска я хочу поправить ошибку в выпуске #248. Дело в планах команды Angular на год. Глобальный объект Zone не представили, а собираются сделать опциональным, уходя от него в сторону дальнейшего развития реактивности. Извините за эту неточность. Игорь Кацуба, спасибо, что обратил моё внимание на ошибку.
Интересные публикации
Подъехала ещё порция критики Next.js. На этот раз не всего целиком, а App Router. Брендан Байер (Brandon Bayer) попробовал App Router Next.js и нашёл как положительные, так и негативные моменты. Ему понравились лейауты, гибкость и относительная простота организации роутов. В этой статье есть уже знакомая критика того, что фича была анонсирована как production-ready, а на самом деле оказалась сыроватой. Также он отмечает, что сложно отслеживать ошибки, течёт память dev-сервера и его приходится перезапускать, да и вообще dev-сервер еле ворочается. Вы можете с ним не согласиться — все аргументы в оригинальной статье.
Вы уже слышали про Dev Mode в Figma. Если нет, то есть теперь такой тоггл, который включает режим разработчика, благодаря которому вы сможете просматривать макеты примерно как страницы в DevTools. Фича, конечно, многим пришлась по душе, а команда Figma поделилась планами. Например, планируется сделать diff-инструмент и расширить интеграции с Jira. Помимо этого, продолжат развивать плагин для VS Code и добавить возможность использования кастомных плагинов по умолчанию. Dev-режим Figma вышел из бесплатной беты и теперь стал платным: с 31 января он стоит 25$ и 35$ за человека на тарифах Organization и Enterprise.
Переходить на Vite с Webpack или нет? Решать, конечно, вам. Может быть, вы вообще хотите не париться ни с какими сборщиками и голый HTML писать. Но если вы пишете на Vue 3 и хотите ускорить разработку с его применением, то смысл перейти на Vite вполне себе может быть. Как раз об этом следующая заметка. Автор сравнивает скорость работы обоих на одинаковых задачах и демонстрирует последовательный перевод проекта на Vite. Лаконично и понятно.
Вот ещё один призыв переходить на Vite. Робин Урих (Robin Wierich) в продолжение своей статьи о React-библиотеках 2024 написал заметку о том, как стартовать новый проект на React. Ладно, речь не только о Vite. Робин предлагает Vite, Next.js и Astro как современные и хорошие варианты для старта. Он приводит плюсы и минусы каждого решения, а в конце статьи ещё и ряд альтернатив.
Как вы организуете кэширование? Способов, конечно же, много. У нас есть Local Storage, IndexedDB, Cache Storage и многие-многие другие. Следующая статья посвящена относительно старому Cache Storage API. Дело в том, что он был создан специально для кэширования и обладает всеми качествами «правильного» кэша: асинхронный, позволяет хранить большой объём данных и удобный. В статье есть подробный пример использования и небольшое сравнение с другими технологиями, применяемыми для организации кэшей.
Вот о чём я совсем не задумывался. Как потестить Bluetooth в веб-приложении через Puppeteer? Вообще сам Bluetooth поддерживается уже давно, а как его потестить рассказали в блоге Chrome for Developers. В статье вы найдёте пример кейса, который можно потестить, какой API использовать для тестирования и базовый пример теста. Так что, если у вас проект, в котором есть Bluetooth, очень даже стоит ознакомиться.
Strapi — это headless CMS, которую можно использовать для разных целей, например для создания API и других серверных штук. Иногда встроенного поиска мало и нужны более продвинутые системы. В следующем материале — обзор использования Elasticsearch и Meilisearch. Если коротко, то Meilisearch проще в интеграции и применении, а Elasticsearch функциональнее и мощнее. Подробности — в статье на Хабре.
Теперь пара подборок полезностей. Стефании Эклз (Stephanie Eckles) обновила свой сборник улучшений CSS для 2024. В нём собрано 12 улучшений, они разделены на категории. Заметка не очень длинная — заглядывайте.
Далее полезные фишки DevTools. Здесь тоже есть категории. Вы увидите разделы «Доступность», «Анализ производительности и состоянии приложения», «Консоль» и «Сеть».
Команда Bun представила Bun Shell. Это экспериментальный встроенный язык и интерпретатор, который позволяет писать shell-скрипты для разных операционных систем. Это эксперимент, но фичу вполне можно опробовать. Больше подробностей о том, как это работает, вы найдёте в блоге Bun.
В конце рубрики такая вот интересная штучка: оказывается, pnpm поддерживает в актуальном состоянии сравнение бенчмарков со своими конкурентами. Последнее обновление было в феврале. Если интересно — ссылка в описании выпуска.
Новости релизов
Появилась бета TypesScript 5.4. В TypeScript появятся методы Object.groupBy и Map.groupBy. Представлен новый утилитарный тип NoInfer
Доступны security-релизы Node.js. Релиз затрагивает 20, 21 и 18 версии рантайма. В версиях 20 и 21 было устранено 4 уязвимости высокой опасности, 4 средней и 1 низкой. В 18 — две высокой опасности, 2 средней и 1 низкой. Не забывайте вовремя обновляться, а больше подробностей — в release notes.
Deno 1.40 отметился релизом Temporal API — для продвинутых манипуляций с датами и временем. Добавили поддержку нового синтаксиса декораторов. Также в этом релизе продолжили работать над WebGPU.
Вышел Puppeteer 22.0.0. В этой версии была прекращена поддержка Node.js 16. Кроме того, ранее Puppeteer обновил версию Chromium до версии 121.
Доступна версия 1.22 языка программирования Go. Этот релиз был в основном посвящён тулчейну, рантайму и библиотекам. Тем не менее сам язык тоже получил пару фич. Циклы теперь поддерживают диапазоны целых чисел. Также релиз включает в себя экспериментальную фичу, которая позволяет использовать функцию в качестве итератора. Больше подробностей — в release notes.
Возможно, вы пользуетесь или помните пакет Husky, который помогает создавать разные git-хуки. Вышла его девятая версия: Husky стал ещё меньше, а пользоваться пакетом стало ещё проще.
Другие новости
Периодически я вспоминаю про инициативу Interop. Напомню: она посвящена тому, чтобы браузеры договаривались и реализовывали фичи равномерно, чтобы повышать кроссбраузерность и уменьшать количество болей разработчиков. Есть соответствующие тесты веб-платформы, которые проверяют разные элементы веб-спецификаций. У тестов есть свой дашборд, ссылку на который я приложу к выпуску. Это интересно тем, что по дашборду можно быстро сориентироваться и посмотреть на приоритеты разных браузерных вендоров. Дашборд как раз обновился для 2024 года — довольно интересно.
Существует такой редактор кода — Zed. Он ориентирован на коллективное программирование, работает пока только на macOS, а его миссия — стать самым крутым редактором кода. Новость в том, что теперь он open-source: на него можно посмотреть, поучаствовать в разработке, познакомиться с крутым продуктом изнутри. Ссылка приложена к выпуску.
Язык Rust шагает по планете и покоряет умы и сердца людей. Microsoft планирует создать Rust-команду и использовать язык в своих сервисах, в частности в Office 365, который был написан на C#. Rust продолжает набирать популярность и, видимо, уже довольно уверенно заходит в крупные компании.