Всем привет, это «Новости 512» от CSSSR. Пока меня не было, интересных событий было немало. В этом выпуске мы поговорим о релизах браузеров, Svelte 5 и Next.js 15, .NET 9, новой LTS-ветке Node.js и других релизах. Ещё мы обсудим укрощение строптивой монорепы, несколько практических гайдов, подборку AI-инструментов для разработчиков, генераторы в JS и атрибуты импортов в ES2025.
Интересные публикации
В крупных компаниях встречаются репозитории огромных размеров. Настолько огромных, что не всем сотрудникам возможности их устройств позволяют их хотя бы клонировать. В первой статье выпуска речь пойдёт как раз о таком репозитории в Microsoft. 178 гигабайт кода, тысячи активных пользователей, коммитов — думаю, вы поняли. Проблема была в том, что репозиторий разрастался из-за проблемы в git, которая вызывала пуш одних и тех же файлов в репозиторий. После небольшого расследования и внесения дополнительных изменений в git монорепозиторий переупаковали, и его размер стал порядка 5 гигабайт. Статья небольшая, но случай интересный, если вы работаете с монорепами — стоит заглянуть.
В JS есть функции-генераторы, и многие разработчики с многолетним стажем, бывает, ими ни разу не пользовались и не особо представляют себе кейсы их применения. Джеймс Синклер в своём блоге постарался раскрыть эту тему. Он видит три основных полезных применения: обработка больших объёмов данных, работа с бесконечными последовательностями и передача сообщений между двумя функциями. Всё это с примерами и постепенным усложнением.
Одна из новых фич ES 2025 — атрибуты импортов. Тревор Ласн (Trevor I. Lasn) рассказал о ней в суперкороткой заметке, которая своей лаконичностью мне очень понравилась. Зачем вообще нужны атрибуты? Дело в том, что расширение файла не всегда надёжно отражает его тип и содержимое — в JSON может лежать вредоносный код. Так появилась идея атрибутов, при помощи которых вы можете явно указать тип модуля, а если что-то пойдёт не так — вернётся ошибка. Чуть больше подробностей — по ссылке в описании.
Далее большой гайд по анализу производительности с Chrome DevTools. В статье приведён пример проекта, у которого проседает FPS. Соответственно, на примере этого проекта и показывается работа с DevTools для анализа производительности. В статье разбираются все элементы панели производительности, метрики и что они означают. Затем приводится сам анализ, а потом и исправление проблем производительности. В общем, получился крепкий, комплексный гайд.
Следующий материал о том, как начать проект, готовый к продакшену и большим нагрузкам на Next.js 15. Ян Хестерс (Jan Hesters) знакомит своих читателей с большим количеством аспектов, которые стоит учесть при инициализации проекта. От базовой настройки он проводит читателя по подключению необходимых библиотек, подготовке конфигов, структуре проекта и другим аспектам. Статья довольно длинная, а сама такая болванка для небольшого проекта или пета не подойдёт. Тем не менее заслуживает внимания.
Следующий гайд подойдёт, скорее всего, тем, кто долго занимался фронтендом или бэкендом, но не делал фулл-стек приложения самостоятельно. Она посвящена связке Vue и Django. Это практический гайд, в котором есть интро в оба фреймворка и проектик, который поможет освоиться. Читателю предлагается создать систему лайков и комментов, а параллельно разбираются сопутствующие вопросы и технологии.
Если при слове CMS у вас в голове маячит только Wordpress и вы никогда не сталкивались с headless CMS, то вам поможет эта статья. Headless CMS — тип CMS, которая работает без представления и может передавать данные для отображения на любые платформы. Внутри вы найдёте введение, краткую историю развития CMS, плюсы и минусы разных CMS, а также разбор случаев, в которых вам точно нужно использовать headless-вариант.
Дальше мы немного поговорим о рендеринге. Даниил Фаршатов собрал на Хабре разные виды рендеринга, коротко их сравнил, описал плюсы и минусы разных подходов, опираясь на свой опыт. Получилось лаконично и информативно, если нужно базово разобраться в видах рендеринга — самое то.
Как ускорить Vue-приложение при помощи серверного рендеринга? Ладно, здесь не только про ускорение — в этом материале тоже есть разбор основ SSR, сравнения и примеры. Разбирается как самостоятельная реализация рендеринга, так и использование готовых решений. Также описываются плюсы и минусы конкретно серверного рендеринга.
Zod — это TypeScript-библиотека для валидации и создания схем данных. Кто-то скажет, что она очень полезна для работы в комбинации с TS и уже почти стандарт. В этой заметке описываются основы работы с Zod и основные кейсы применения: валидация данных с внешних API, файлы конфигурации и валидация сложных форм. Если вы не знакомы с Zod, то эта заметка может быть неплохой отправной точкой.
Продолжается серия переводов разбора алгоритмов и структур данных на JavaScript. Вышла шестая часть серии, которая посвящена алгоритмам для работы со множествами. В ней же ссылки на предыдущие 5 частей.
В конце рубрики немного поговорим про искусственный интеллект, который сейчас всех так будоражит. Есть такой инструмент от Microsoft GenAIScript, который представляет из себя JS-окружение для программной работы с промтами языковых моделей, самими моделями, данными и другими штуками. Если вы интересуетесь работой с языковыми моделями, то можно заглянуть.
В завершении рубрики подборка из 8 инструментов, которые могут помочь разработчикам в ежедневной работе. Больше половины из них работают на разных AI-технологиях.
Новости релизов
Доступен Chrome 131. В этой версии доработали возможности стилизации тегов <details>
и <summary>
, а для правила @page
добавили отступы, которые можно применять при печати или экспорте в PDF. Также добавили поддержку внешних источников SVG для clip-path
, fill
, stroke
и marker
. В DevTools появилась экспериментальная возможность использовать AI Gemini для отладки CSS, а для AI-расширений появилась отдельная вкладка в настройках. Больше подробностей о релизе — в официальных обзорах Chrome и DevTools от Google.
Вышел Firefox 132. Свойство text-emphasis-position теперь поддерживает значение auto, для того чтобы расположение совпадало с text-underline-position. Был исправлен баг с правилами вложенных CSS-объявлений — теперь они будут парситься в правильном порядке.
Next.js 15 дошёл до полноценного релиза. В целом, в 15 версии представлена поддержка практически всех новых фич React 19, много исправлений для кэша, стабилизация Turbopack, новые пакеты для Next.js и другие улучшения. В этом релизе с внедрением Async Request APIs начинается переход к новой, упрощённой системе рендеринга и кеширования. Помимо этого, поддерживается ESLint 9 и TS в файле конфигурации.
Ещё один мажорный релиз, который шёл-шёл и дошёл. Это Svelte 5. Я довольно много рассказывал про его релиз-кандидаты, в которых подвезли руны, — новый способ работы с реактивным состоянием и сниппеты, которые заменили механизм слотов. Эти фичи в релизе, конечно, есть. Помимо этого, был переработан сайт Svelte, представлен новый, мощный CLI sv
. Помимо оригинала анонса, я приложу к выпуску ссылки на его перевод и на обзор нового CLI.
За время паузы в выпусках было несколько релизов Node.js. Я остановлюсь на версии 22.11.0. С этого релиза 22 ветка была переведена в категорию LTS, так что пора задумываться о переходе на неё.
Я как-то уже упоминал новую архитектуру React Native, в смысле так называется фича — New Architecture. Напомню: это обновление, которое привносит в React Native все современные фичи самого React. В версии 0.76 фича уже стабильна и работает для всех проектов по умолчанию.
Состоялся релиз .NET 9. Платформа и все сопутствующие технологии получили крупное ежегодное обновление. Платформа прибавила 15% к производительности, а потребление памяти, наоборот, снизила аж на 90%. Активно внедряются AI-технологии, также поработали над безопасностью. Обновление, как всегда, крупное, и в двух словах о нём не расскажешь. Подробности — в блоге .NET.
Плюс ко всему отмечу выход релиз-кандидата TypeScript 5.7, ESLint 9.13.0 и 9.14.0, а также Storybook 8.4.
Другие новости
JetBrains анонсировала расширение некоммерческой лицензии на свои продукты WebStorm и Rider. Некоммерческая лицензия подразумевает, как вы можете догадаться, разработку персональных проектов, использование для обучения, деятельности в сфере опенсорса. Помимо этого, Aqua и RustRover ранее стали доступны для бесплатного применения с определёнными условиями (сейчас условия такие же, как у WebStorm и Rider). Напомню, что RustRover, Rider и Aqua — это IDE для Rust, .NET и автоматизации тестирования соответственно. Внутри анонса также есть короткая инструкция по активации некоммерческой лицензии.
Итоги прошедшей Next.js Conf 2024 подвели в блоге Vercel. Вместе с релизом Next.js 15 пришли и новые принципы, которых старалась придерживаться команда разработки, — упрощение, ускорение, стабильность. Недавно было довольно много критики в адрес 13 и 14 версий Next.js. Видимо, это сыграло существенную роль в текущем курсе развития фреймворка. Больше подробностей — по ссылке в описании.
В репозитории Angular появилось обсуждение по поводу обновления стайлгайда фреймворка. Последнее обновление было в 2016 году, теперь появилась идея актуализировать его для 2024: упростить, сократить и при этом не потерять ничего важного. Что ж, мне кажется, идея просто прекрасная, будем ждать.
На сегодня это всё. Всем пока и до встречи в следующем выпуске.