Всем привет, это «Новости 512» от CSSSR. Видимо, сезон отпусков здорово сказывается на количестве контента. Этот выпуск даже чуть не отменился совсем. Но вот о чём мы в нём поговорим: ES2024 был одобрен, мы ещё раз коснёмся React Compiler, посмотрим, нужен ли сейчас Lodash, поговорим о множествах и их методах, а также о релизе MySQL 9. Ещё мы посмотрим на SharedArrayBuffer
и чат-ботов прямо в Firefox.
Небольшое отступление. 21 июля, как раз после следующего выпуска новостей, я улетаю на неделю в Казань. Если у меня есть слушатели из Казани, я буду очень рад советам и рекомендациям мест, да и вообще встретиться и развиртуализироваться. Если вы в Казани или просто много о ней знаете, не стесняйтесь и пишите мне в телегу — она есть в описании каждого выпуска.
![](https://images.csssr.com/insecure/dpr:0.33333/plain/https://blog.csssr.com/_next/static/i/public/components/paragraphWithImage/laptopNews/desktop.all-74172079.png@png)
Интересные публикации
Я давно не упоминал доктора Акселя Раушмаера, сегодня время пришло. Был одобрен новый стандарт ES2024. Доктор Аксель коротко рассказал о новых фичах. Размер ArrayBuffer
и Shared ArrayBuffer
теперь можно менять на месте, но только в большую сторону, а ArrayBuffer
получил метод для перемещения между контекстами. Можно будет группировать итерируемые объекты. Атомики получили неблокирующий метод .waitAsync()
. В новом стандарте у регулярных выражений появился новый флаг, а также ещё пара фич. Подробнее — в статье Акселя, а к стандарту мы вернёмся ещё в следующих выпусках. Кстати, он обновил свою бесплатную онлайн-книгу «Exploring JavaScript», в которой есть стандарты и за прошлые годы, а также много интересного.
Вот ещё одна статья о React Compiler, которую в своём блоге написал Тони Алисеа. Чем она мне понравилась: он коротко проходится по React в целом и показывает предпосылки к появлению компилятора. Он разбирает важные для понимания новой фичи аспекты React и показывает пример. Компилятор меняет процессорное время на память, и это нужно иметь в виду. И хочу напомнить, что пока React Compiler не покрывает довольно много случаев.
Кевин Шинер (Kevin Schiener) в своём блоге рассказал о потрясающем коварстве useCallback
и замыканий. Если конкретно, он рассказывает о случае, когда встретился со страшнейшей утечкой памяти в React-приложении, как он исследовал и решал эту проблему. Получилось интересненько. Я бы сказал, что это статья о том, как не стоит писать хуки.
Я уже рассказывал про методы для множеств в JS в Firefox и что их поддерживают уже, в общем-то, все мажорные браузеры. Брайан Смит (Brian Smith) на MDN написал статью о самой структуре данных Set и методах для работы с ней. Если вы не совсем знакомы с множествами, это прекрасный повод. В статье есть и примерчики.
Следующий материал — из блога Otus. Он посвящён SharedArrayBuffer
и Atomics
. SharedArrayBuffer
— это тип буффера, к которому могут обращаться разные потоки, а атомики — API для атомарных операций. В статье рассматриваются их основы и пример совместного применения. Материал простенький, хорошо подойдёт для первого ознакомления.
Алексей Кузьмин на Хабре опубликовал гайд по UI-китам. Он старается охватить множество аспектов: от того, зачем вообще нужны UI-киты, до разных стратегий реализации тех или иных нюансов. Внутри хорошая сравнительная таблица стратегий написания компонентов, способы добавления гибкости в UI-кит и разбор примера.
Многим командам и их QA-инженерам хороши известны такие инструменты, как Playwright и Allure. Если вы не знаете, бегло напомню: Playwright нужен для тестирования, а Allure — для отчётов, визуализации и анализа. Кейс их базовой интеграции описали ребята из Clevertec на Хабре. Внутри мотивация выбора Playwright, примеры конфигурации интеграций и примеры работы их связки. Дело хорошее, а заметка — хорошая стартовая точка для их освоения.
В конце рубрики мнение. Мнение о Lodash. Как оказалось после опроса State of JS, им пользуется много людей, хотя с ним много проблем. Данила Родичкин написал именно об этом. Он рассказал о проблемах с установкой, подключением, отсутствием обновлений и обратил внимание на то, что из него используется всего несколько методов и он мешает изучению действительно современных библиотек и инструментов.
![](https://images.csssr.com/insecure/dpr:0.33333/plain/https://blog.csssr.com/_next/static/i/public/components/paragraphWithImage/manWithLaptop/desktop.all-3673583e.png@png)
Новости релизов
В Node.js 20.15.0 LTS test runner теперь поддерживает тест-планы. Inspector получил новый флаг --inspect-wait
— он заставляет дебаггер ждать приложения и будет полезен, если хочется дебажить код с самого начала.
Astro 4.11 не то чтобы порадовал огромным количеством изменений, но они были. Шаблон страницы пятисотой ошибки теперь получает error
как пропс, что позволит дать больше контекста об ошибке и кастомизировать страницу. Компонент для отображения кода, который использует хайлайтер Shiki
, теперь поддерживает его трансформеры, которые позволяют точечно применять стили и показывать, например, диффы.
Доступна 9-я мажорная версия MySQL. В этом релизе исполнилась мечта JS-фуллстеков: теперь можно писать хранимки на JavaSctipt. Помимо этого, появилась поддержка векторов, результат выражения EXPLAIN ANALYZE
можно выводить в виде JSON в пользовательскую переменную. Больше подробностей — в release notes.
Кстати, отдельно для фанатов PostgreSQL: в свободном доступе появилась книга «[PostgreSQL 16 изнутри](https://postgrespro.ru/education/books/internals». Очень зайдёт тем, кто хочет понимать, как работает технология под капотом, и знать все нюансы.
Также в этом выпуске стоит отметить линейку патчей Gitlab, устраняющих серьёзную уязвимость, обновление Playwright 1.45.0, патч Firefox 127.0.2, устраняющий проблему с YouTube, и выход альфы PHP 8.4.
![](https://images.csssr.com/insecure/dpr:0.33333/plain/https://blog.csssr.com/_next/static/i/public/components/paragraphWithImage/laptopNews/desktop.all-74172079.png@png)
Другие новости
Mozilla анонсировала тестирование встроенного интерфейса для чат-ботов прямо в браузере. По идее это будет боковая колоночка, в которой будет чат-бот. Можно будет задавать ему вопросы, попросить что-то поискать, выдать короткое изложение или суть текста на странице. Можно будет выбрать определённый сервис-провайдер языковой модели — со временем этот перечень планируется расширять. Тестирование фичи уже должно было начаться в ночных сборках Firefox. Я очень надеюсь, что через 10 лет люди не будут спрашивать у ботов суть предложений в духе «Маша съела красное яблоко». Я утрирую, но всё равно немного страшно.