diff --git a/_posts/news512/news-265.md b/_posts/news512/news-265.md new file mode 100644 index 00000000..6ff9d79b --- /dev/null +++ b/_posts/news512/news-265.md @@ -0,0 +1,121 @@ +--- +title: 'В этом выпуске мы поговорим о релизах браузеров, Svelte 5 и Next.js 15, .NET 9, новой LTS-ветке Node.js и других релизах. Ещё мы обсудим укрощение строптивой монорепы, несколько практических гайдов, подборку AI-инструментов для разработчиков, генераторы в JS и атрибуты импортов в ES2025.' +soundcloudLink: 'https://soundcloud.com/csssr/nextjs-15-svelte-5-net-9-nodejs-22110-lts-generatory-es2025-import-attributes' +date: '2024-11-19T00:00:00.000Z' +episodeNumber: 265 +tag: 'news' +author: 'Ислам Виндижев' +--- + +Всем привет, это «Новости 512» от CSSSR. Пока меня не было, интересных событий было немало. В этом выпуске мы поговорим о релизах браузеров, Svelte 5 и Next.js 15, .NET 9, новой LTS-ветке Node.js и других релизах. Ещё мы обсудим укрощение строптивой монорепы, несколько практических гайдов, подборку AI-инструментов для разработчиков, генераторы в JS и атрибуты импортов в ES2025. + + + ### Интересные публикации + +В крупных компаниях встречаются репозитории огромных размеров. Настолько огромных, что не всем сотрудникам возможности их устройств позволяют их хотя бы клонировать. В первой статье выпуска речь пойдёт как раз [о таком репозитории](https://www.jonathancreamer.com/how-we-shrunk-our-git-repo-size-by-94-percent/) в Microsoft. 178 гигабайт кода, тысячи активных пользователей, коммитов — думаю, вы поняли. Проблема была в том, что репозиторий разрастался из-за проблемы в git, которая вызывала пуш одних и тех же файлов в репозиторий. После небольшого расследования и внесения дополнительных изменений в git монорепозиторий переупаковали, и его размер стал порядка 5 гигабайт. Статья небольшая, но случай интересный, если вы работаете с монорепами — стоит заглянуть. + + +В JS есть [функции-генераторы](https://jrsinclair.com/articles/2022/why-would-anyone-need-javascript-generator-functions/), и многие разработчики с многолетним стажем, бывает, ими ни разу не пользовались и не особо представляют себе кейсы их применения. Джеймс Синклер в своём блоге постарался раскрыть эту тему. Он видит три основных полезных применения: обработка больших объёмов данных, работа с бесконечными последовательностями и передача сообщений между двумя функциями. Всё это с примерами и постепенным усложнением. + +Одна из новых фич ES 2025 — [атрибуты импортов](https://www.trevorlasn.com/blog/import-attributes-in-javascript). Тревор Ласн (Trevor I. Lasn) рассказал о ней в суперкороткой заметке, которая своей лаконичностью мне очень понравилась. Зачем вообще нужны атрибуты? Дело в том, что расширение файла не всегда надёжно отражает его тип и содержимое — в JSON может лежать вредоносный код. Так появилась идея атрибутов, при помощи которых вы можете явно указать тип модуля, а если что-то пойдёт не так — вернётся ошибка. Чуть больше подробностей — по ссылке в описании. + +Далее большой [гайд по анализу производительности](https://blog.jiayihu.net/comprenhensive-guide-chrome-performance/) с Chrome DevTools. В статье приведён пример проекта, у которого проседает FPS. Соответственно, на примере этого проекта и показывается работа с DevTools для анализа производительности. В статье разбираются все элементы панели производительности, метрики и что они означают. Затем приводится сам анализ, а потом и исправление проблем производительности. В общем, получился крепкий, комплексный гайд. + +[Следующий материал](https://www.reactsquad.io/blog/how-to-set-up-next-js-15-for-production) о том, как начать проект, готовый к продакшену и большим нагрузкам на Next.js 15. Ян Хестерс (Jan Hesters) знакомит своих читателей с большим количеством аспектов, которые стоит учесть при инициализации проекта. От базовой настройки он проводит читателя по подключению необходимых библиотек, подготовке конфигов, структуре проекта и другим аспектам. Статья довольно длинная, а сама такая болванка для небольшого проекта или пета не подойдёт. Тем не менее заслуживает внимания. + +[Следующий гайд](https://www.thedevspace.io/community/django-vue) подойдёт, скорее всего, тем, кто долго занимался фронтендом или бэкендом, но не делал фулл-стек приложения самостоятельно. Она посвящена связке Vue и Django. Это практический гайд, в котором есть интро в оба фреймворка и проектик, который поможет освоиться. Читателю предлагается создать систему лайков и комментов, а параллельно разбираются сопутствующие вопросы и технологии. + +Если при слове CMS у вас в голове маячит только Wordpress и вы никогда не сталкивались с headless CMS, то вам поможет эта статья. [Headless CMS](https://www.builder.io/blog/headless-cms) — тип CMS, которая работает без представления и может передавать данные для отображения на любые платформы. Внутри вы найдёте введение, краткую историю развития CMS, плюсы и минусы разных CMS, а также разбор случаев, в которых вам точно нужно использовать headless-вариант. + +Дальше мы немного поговорим о рендеринге. Даниил Фаршатов собрал на Хабре [разные виды рендеринга](https://habr.com/ru/companies/domclick/articles/855982/), коротко их сравнил, описал плюсы и минусы разных подходов, опираясь на свой опыт. Получилось лаконично и информативно, если нужно базово разобраться в видах рендеринга — самое то. + +Как ускорить Vue-приложение при помощи серверного рендеринга? Ладно, здесь не только про ускорение — в [этом материале](https://www.debugbear.com/blog/vue-ssr) тоже есть разбор основ SSR, сравнения и примеры. Разбирается как самостоятельная реализация рендеринга, так и использование готовых решений. Также описываются плюсы и минусы конкретно серверного рендеринга. + +[Zod](https://habr.com/ru/articles/855734/) — это TypeScript-библиотека для валидации и создания схем данных. Кто-то скажет, что она очень полезна для работы в комбинации с TS и уже почти стандарт. В этой заметке описываются основы работы с Zod и основные кейсы применения: валидация данных с внешних API, файлы конфигурации и валидация сложных форм. Если вы не знакомы с Zod, то эта заметка может быть неплохой отправной точкой. + +Продолжается серия переводов разбора алгоритмов и структур данных на JavaScript. Вышла [шестая часть серии](https://habr.com/ru/companies/timeweb/articles/845544/), которая посвящена алгоритмам для работы со множествами. В ней же ссылки на предыдущие 5 частей. + +В конце рубрики немного поговорим про искусственный интеллект, который сейчас всех так будоражит. Есть такой инструмент от Microsoft [GenAIScript](https://microsoft.github.io/genaiscript/), который представляет из себя JS-окружение для программной работы с промтами языковых моделей, самими моделями, данными и другими штуками. Если вы интересуетесь работой с языковыми моделями, то можно заглянуть. + +В завершении рубрики [подборка из 8 инструментов](https://habr.com/ru/articles/855634/), которые могут помочь разработчикам в ежедневной работе. Больше половины из них работают на разных AI-технологиях. + + + ### Новости релизов + +Доступен Chrome 131. В этой версии доработали возможности стилизации тегов `
` и ``, а для правила `@page` добавили отступы, которые можно применять при печати или экспорте в PDF. Также добавили поддержку внешних источников SVG для `clip-path`, `fill`, `stroke` и `marker`. В DevTools появилась экспериментальная возможность использовать AI Gemini для отладки CSS, а для AI-расширений появилась отдельная вкладка в настройках. Больше подробностей о релизе — в официальных обзорах [Chrome](https://developer.chrome.com/blog/new-in-chrome-131) и [DevTools](https://developer.chrome.com/blog/new-in-devtools-131) от Google. + + +Вышел [Firefox 132](https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/132). Свойство text-emphasis-position теперь поддерживает значение auto, для того чтобы расположение совпадало с text-underline-position. Был исправлен баг с правилами вложенных CSS-объявлений — теперь они будут парситься в правильном порядке. + +[Next.js 15](https://nextjs.org/blog/next-15) дошёл до полноценного релиза. В целом, в 15 версии представлена поддержка практически всех новых фич React 19, много исправлений для кэша, стабилизация Turbopack, новые пакеты для Next.js и другие улучшения. В этом релизе с внедрением Async Request APIs начинается переход к новой, упрощённой системе рендеринга и кеширования. Помимо этого, поддерживается ESLint 9 и TS в файле конфигурации. + +Ещё один мажорный релиз, который шёл-шёл и дошёл. Это [Svelte 5](https://svelte.dev/blog/svelte-5-is-alive). Я довольно много рассказывал про его релиз-кандидаты, в которых подвезли руны, — новый способ работы с реактивным состоянием и сниппеты, которые заменили механизм слотов. Эти фичи в релизе, конечно, есть. Помимо этого, был переработан сайт Svelte, представлен новый, мощный CLI `sv`. Помимо оригинала анонса, я приложу к выпуску ссылки на его [перевод](https://habr.com/ru/articles/854480/) и на обзор [нового CLI](https://svelte.dev/blog/sv-the-svelte-cli). + +За время паузы в выпусках было несколько релизов Node.js. Я остановлюсь на [версии 22.11.0](https://nodejs.org/en/blog/release/v22.11.0). С этого релиза 22 ветка была переведена в категорию LTS, так что пора задумываться о переходе на неё. + +Я как-то уже упоминал новую архитектуру React Native, в смысле так называется фича — New Architecture. Напомню: это обновление, которое привносит в React Native все современные фичи самого React. В [версии 0.76](https://reactnative.dev/blog/2024/10/23/release-0.76-new-architecture) фича уже стабильна и работает для всех проектов по умолчанию. + +Состоялся релиз [.NET 9](https://devblogs.microsoft.com/dotnet/announcing-dotnet-9/). Платформа и все сопутствующие технологии получили крупное ежегодное обновление. Платформа прибавила 15% к производительности, а потребление памяти, наоборот, снизила аж на 90%. Активно внедряются AI-технологии, также поработали над безопасностью. Обновление, как всегда, крупное, и в двух словах о нём не расскажешь. Подробности — в блоге .NET. + +Плюс ко всему отмечу выход [релиз-кандидата TypeScript 5.7](https://devblogs.microsoft.com/typescript/announcing-typescript-5-7-rc/), [ESLint 9.13.0](https://eslint.org/blog/2024/10/eslint-v9.13.0-released/) и [9.14.0](https://eslint.org/blog/2024/11/eslint-v9.14.0-released/), а также [Storybook 8.4](https://storybook.js.org/blog/storybook-8-4/). + + + ### Другие новости + +JetBrains [анонсировала](https://blog.jetbrains.com/blog/2024/10/24/webstorm-and-rider-are-now-free-for-non-commercial-use/) расширение некоммерческой лицензии на свои продукты WebStorm и Rider. Некоммерческая лицензия подразумевает, как вы можете догадаться, разработку персональных проектов, использование для обучения, деятельности в сфере опенсорса. Помимо этого, Aqua и RustRover ранее стали доступны для бесплатного применения с определёнными условиями (сейчас условия такие же, как у WebStorm и Rider). Напомню, что RustRover, Rider и Aqua — это IDE для Rust, .NET и автоматизации тестирования соответственно. Внутри анонса также есть короткая инструкция по активации некоммерческой лицензии. + + +[Итоги прошедшей Next.js Conf 2024](https://vercel.com/blog/recap-next-js-conf-2024) подвели в блоге Vercel. Вместе с релизом Next.js 15 пришли и новые принципы, которых старалась придерживаться команда разработки, — упрощение, ускорение, стабильность. Недавно было довольно много критики в адрес 13 и 14 версий Next.js. Видимо, это сыграло существенную роль в текущем курсе развития фреймворка. Больше подробностей — по ссылке в описании. + +В репозитории Angular появилось [обсуждение](https://github.com/angular/angular/discussions/58412) по поводу обновления стайлгайда фреймворка. Последнее обновление было в 2016 году, теперь появилась идея актуализировать его для 2024: упростить, сократить и при этом не потерять ничего важного. Что ж, мне кажется, идея просто прекрасная, будем ждать. + +На сегодня это всё. Всем пока и до встречи в следующем выпуске. + +0:00:00 Начало выпуска + +0:00:35 Интересные публикации +Уменьшение монорепозитория — +Генераторы — +Атрибуты импортов в JS — +Гайд по анализу производительности — +Настройка проекта Next.js 15 — +Приложение на Vue и Django — +Headless CMS — +Виды рендеринга — +Vue и SSR — +Zod — +Алгоритмы и структуры данных на JS, часть 6 — +GenAIScript — +AI-инструменты для разработки — + +0:05:57 Новости релизов +Chrome 131 — +Chrome DevTools 131 — +Firefox 132 — +Next.js 15 — +Svelte 5 — +Svelte 5 [RU] — +Svelte CLI — +Node.js 22.11.0 — +React Native 0.76 — +.NET 9 — +TypeScript 5.7 RC — +ESLint 9.13.0 — +ESLint 9.14.0 — +Storybook 8.4 — + +0:08:57 Другие новости +WebStorm и Rider для некоммерческого использования — +Обзор Next.js Coonf 2024 — +Обновление стайлгайда Angular — + + ### Пишите нам и читайте + [Telegram—канал CSSSR](https://t.me/csssr) + + [Twitter CSSSR](https://twitter.com/csssr_dev) + + [Twitter новостей](https://twitter.com/csssr_news) + + [Telegram ведущего](https://t.me/Vindizh) + + [Twitter ведущего](https://twitter.com/Vindizh)