Всем привет, это «Новости 512» от CSSSR. В этом выпуске мы поговорим об архитектуре масштабируемых систем, System Design, объекте Temporal, security-релизах января, NestJS 11, Vitest 3, а также стратегии развития Angular в 2025 году.

Интересные публикации
Начнём выпуск с системного дизайна и архитектуры. Для начала две части цикла статей о системном дизайне. Это перевод большой серии статей — пока их две, но, видимо, планируется продолжение цикла. В первой статье рассматриваются задачи системного дизайна как дисциплины, базовые понятия и вводные. Во второй части рассматриваются базы данных и их место в системах. Если вы пока не знакомы с понятием System Design или только примеряете на себя роль проектировщика решений, это будет прекрасный цикл, чтобы начать.
Следующий материал более продвинутого уровня. Он посвящён архитектуре для высокой масштабируемости. Ключевая мысль автора заключается в том, что не стоит мыслить шаблонами, везде использовать модные подходы, а нужно анализировать и принимать оправданные, взвешенные решения. Он считает, что микросервисы несколько переоценены и применять их стоит только в случае, если более простые способы оптимизации дошли до своего предела. В первой части говорится как раз о таких инструментах, как шардирование, репликация, кеширование, ослабление требований ACID и других. Во второй части речь идёт как раз о микросервисах, их плюсах и минусах. Обе статьи интересные и полны полезной информации. Серию планируется продолжать, я обязательно буду за ней следить.
В блоге доктора Акселя есть ещё парочка интересных статей, о которых я хотел бы вам рассказать. Первая посвящена файлу конфигурации TypeScript. Конфиги стали настолько сложными, что он решил окунуться в документацию TS и составить для себя базовый конфиг. Я советую пройтись по всем разделам, потому что в них есть подробные сведения о секциях конфига и их настройке. Для самых нетерпеливых в конце есть просто сам базовый конфиг. Вторая статья — о модификаторах паттернов в регулярных выражениях. Если коротко, это фича, которая позволяет применять флаги к кускам регулярок, а не целиком. В статье поясняется, какие флаги поддерживаются, как этим пользоваться и в каких случаях.
Брайан Смит (Brian Smith) на MDN опубликовал статью о новом объекте JavaScript — Temporal. Это новый объект для работы с временем, который призван прийти на замену Date и сделать работу с датой и временем более удобной, современной и понятной. На MDN недавно подвезли большое количество документации по Temporal
, так что можно знакомиться. Пока есть экспериментальные реализации и до полной, кросс-браузерной ещё очень далеко, но перспектива хорошая.
В прошлом выпуске я упоминал фичу Node.js, которая позволяет запускать TS-файлы при помощи удаления типов или type stripping. Как он работает, решил пояснить Марко Ипполито (Marco Ippolito). В своей статье он рассказывает о том, для чего это в принципе нужно, как работает, какие есть плюсы и минусы, а также в каком направлении, вероятно, будет развиваться эта фича Node.js.
Дальше два небольших кейса. Первым делится Келли Саттон (Kelly Sutton). Она коротко подводит итоги года после переезда с React на Stimulus. Это часть экосистемы Hotwire от создателей Basecamp и Ruby on Rails 37signals. Если вы присматривались к Hotwire и другим инструментам рядом с ним, вот вам небольшой кейс.
Второй кейс, скажем так, посолиднее. Он уже о пяти годах работы с технологией. Это опыт пяти лет использования React Native в Shopify. В статье рассказывается о том, как было принято решение о внедрении React Native, чем это помогло (например, фичи на iOS и Android стали выходить практически одновременно, людям было проще работать, а больше времени удавалось уделять реальной ценности для пользователей) и как в связи с этим ощущает себя команда.
В конце рубрики я перечислю ещё 5 материалов, которые могут быть вам интересны, а ссылки на них будут в описании выпуска.
Создание генеративной картинки с Three.js.
Интервью с Ричем Харрисом о Svelte 5 и будущем фреймворков.
Дополненная реальность в вебе и актуальные библиотеки в этой области в 2025 году.
Подборка ИИ-инструментов, которые могут быть полезны веб-разработчикам.
Электронная книга «Рефакторь как супергерой».

Новости релизов
Рубрика с релизами сегодня относительно «тихая». Она начнётся с security-релизов января. Oracle выпустила обновления безопасности для всех своих продуктов. Также серией security-релизов отметился Node.js. Обновление касается версий 23, 22, 20, 18. Не забывайте вовремя обновляться.
Продолжая тему рантаймов. Вышла версия Bun 1.2. В этой версии рантайм значительно продвинулся в области совместимости с Node.js. Помимо этого, теперь он обладает встроенными объектами для хранилища Amazon S3 и встроенным клиентом для PostgreSQL. bun install
теперь использует текстовый lock-файл, а Express теперь работает с Bun в 3 раза быстрее.
Вышла новая мажорная версия NestJS за номером 11. В ней есть: поддержка JSON-логов, расширенные возможности для микросервисов, ускорение запуска приложений и обновление зависимостей. Подробнее о всех изменениях можно узнать в release notes.
Вышел тест-раннер Vitest 3. В новой версии были представлены более стабильные отчёты, упрощённая настройка рабочих пространств, поддержка мультибраузерного тестирования и фильтрация тестов по строкам. Также были представлены и некоторые ломающие изменения. Больше подробностей — в release notes.
Бандлер Rspack обзавёлся новой версией 1.2. В этом релизе был добавлен долгосрочный кэш, который позволяет ускорить старт после прогрева в 2–2,5 раза. Также поработали над производительностью и оптимизацией.
ESLint 9.18.0 приносит стабильную поддержку TypeScript-конфигураций, улучшения в правилах no-shadow-restricted-names и no-console, а также исправления мелких ошибок. Обновление упрощает работу с TypeScript и делает сообщения об ошибках более информативными.
Также команда ESLint выпустила первую мажорную версию ESLint Config Inspector. Это инструмент, который позволяет просматривать и анализировать плоские конфиги ESLint.
Также в этом выпуске отмечу релизы Capacitor 7 от команды Ionic, Electron 34, Cypress 14 и Puppeter 24.

Другие новости
Минко Гечев в блоге Angular поделился стратегией команды Angular на 2025 год. Последние два с половиной года главным фокусом было улучшение производительности и DX для всех Angular-разработчиков. В этом году курс не изменится. В планах продолжать сохранять курс на улучшение DX, повышение производительности и упрощение внедрения новых фич. Среди ключевых инициатив на 2025 год — zoneless-режим, signal-based формы, замена тест-раннера Karma на более современное решение и улучшение документации. Хороший вопрос: получится ли у Angular омолодиться и конкурировать с тем же Vue? Год покажет.
create-react-app
, на котором было создано огромное количество React-проектов, наконец был официально признан устаревшим. Так было уже пару последних лет, но теперь официально: в readme к репозиторию есть пометка об этом и рекомендация больше его не использовать.
На сегодня это всё. Всем пока и до встречи в следующем выпуске.