All streams
Search
Write a publication
Pull to refresh
50
69.3
Spring АйО @spring_aio

Главный по Spring

Send message

Что нового в JUnit 6: ключевые изменения и улучшения

Level of difficultyEasy
Reading time5 min
Views3.1K

Спустя восемь лет после JUnit 5 выходит новая версия популярного фреймворка. JUnit 6 — это не просто обновление, а переход к современной экосистеме Java и Kotlin. В новом переводе от команды Spring АйО узнаем, что новая версия требует Java 17+, унифицирует версии компонентов, удаляет deprecated API и внедряет поддержку JSpecify для строгого null-safety.

Читать далее

Байткод инструментация методов в Java: когда семплирования уже мало

Level of difficultyEasy
Reading time7 min
Views2.3K

Семплирующие профили не показывают реальное число вызовов и их длительность — а значит, мимо может пролетать важная боль. В новом переводе от команды Spring АйО на примерах показано, как включить инструментальную трассировку в async-profiler и что даёт новая фича latency: от ловли неожиданного System.gc() и источников OutOfMemoryError до точного замера «долгих» вызовов с порогом и разбором в JMC через JFR-события. 

Разбираем накладные расходы, хитрости вроде interval, практичные кейсы (почему ArrayList.contains и AbstractSet.removeAll могут внезапно стать O(N*M) и как это починить), а ещё сравниваем подход async-profiler с нововведениями в рамках JDK 25 (JEP 520), где последний имеет ряд недостатков.

Если вам нужны точные пути выполнения и реальная latency без убийства продакшена — это must-read.

Читать далее

Состояние HTTP-клиентов в Spring

Level of difficultyEasy
Reading time10 min
Views1.8K

В новом переводе от команды Spring АйО команда Spring делает важное объявление — RestTemplate уходит в прошлое. С выходом Spring Framework 7.0 разработчики официально заявляют о плане поэтапного прекращения поддержки одного из самых популярных HTTP-клиентов в экосистеме. Его место занимает RestClient, современный fluent-клиент с расширенными возможностями: API-версионирование, гибкая конфигурация конвертеров, группы HTTP-интерфейсов и новый тестовый клиент RestTestClient.

Кроме того, в Spring Boot 4.0 появятся отдельные стартеры для каждого типа клиента, а RestClient теперь можно удобно переиспользовать с уже существующей инфраструктурой RestTemplate.

Читать далее

Как Netflix сделал главную страницу по-настоящему динамичной с помощью GraphQL и триггеров

Level of difficultyEasy
Reading time14 min
Views5.7K

Когда вы открываете Netflix, кажется, что всё уже готово — но на самом деле под капотом разворачивается сложная архитектура, которая адаптирует главную страницу в реальном времени. Команда Netflix перешла от статичной генерации страниц к умной системе, основанной на GraphQL-мутaциях, клиентской нормализации кэша и триггерах обновлений. Благодаря этому подходу, пользовательский опыт становится глубоко персонализированным, отзывчивым и масштабируемым.

В новом переводе от команды Spring АйО подробно рассказывается, как устроен API, как работают обновления, и почему Netflix выбрал именно мутации вместо подписок или обычных запросов.

Читать далее

Путеводитель для начинающих по сборщику мусора Shenandoah

Level of difficultyEasy
Reading time8 min
Views2.6K

Shenandoah — это высокопроизводительный сборщик мусора с низкими задержками, разработанный компанией Red Hat и впервые внедрённый в OpenJDK. Он был создан с целью минимизировать задержки на протяжении работы приложения, что особенно важно для приложений с высокими требованиями к производительности и отзывчивости. В новом переводе от команды Spring АйО рассмотрим основные особенности Shenandoah, его работу, настройку и примеры использования.

Читать далее

JVM: Барьеры, которые подходят любому GC

Level of difficultyEasy
Reading time8 min
Views2.4K

В новом переводе от команды Spring АйО рассказывается, как сократить время разогрева JVM с помощью ahead-of-time компиляции (в рамках Project Leyden), а также объясняется, почему традиционные GC-барьеры мешают гибкому выбору сборщика мусора.

Статья содержит интересное решение — GC-независимые барьеры загрузки, которые можно «пропатчить» в рантайме под конкретный GC, обеспечивая совместимость без переписывания кода.

Читать далее

Что нового в Gradle 9.0.0?

Level of difficultyEasy
Reading time17 min
Views5.4K

В новом переводе от команды Spring АйО рассматривается новое крупное обновление Gradle, которое приносит с собой переход на Kotlin 2 и Groovy 4, а также делает кеш конфигурации рекомендуемым режимом сборки. В версии 9 улучшена система отчётности об ошибках, ускорена компиляция Kotlin DSL, добавлена интеграция с Jspecify, снижено потребление памяти и оптимизирована работа с IDE.

Читать далее

Чем хорош Postgres 18?

Level of difficultyEasy
Reading time8 min
Views13K

PostgreSQL 18 вот-вот выйдет, и это не просто минорное обновление, а настоящий прорыв для разработчиков и администраторов БД. В новом переводе от команды Spring АйО рассмотрим ключевые новинки — асинхронный I/O для ускорения чтения, поддержка UUID версии 7 с улучшенной сортировкой, skip scans в B-tree индексах, виртуальные вычисляемые столбцы и даже OAUTH 2.0 для аутентификации. Всё это делает Postgres ещё более быстрым, гибким и современным.

Читать далее

Java 25 выходит уже сегодня

Level of difficultyEasy
Reading time23 min
Views5.6K

Четверть века назад язык, придуманный для «умных тостеров», стал символом корпоративного софта и огромных систем. Сегодня Java продолжает эволюционировать, и каждая новая версия всё сильнее ломает стереотип о «тяжёлом корпоративном динозавре».

Встречайте 25 версию Java вместе с командой Spring АйО!

Читать далее

Maven: verify или clean install?

Level of difficultyEasy
Reading time9 min
Views3.9K

Если вы автоматически пишете mvn clean install при сборке проекта, то вы такой точно не один — эта команда прочно укоренилась в привычке Java-разработчиков. Но действительно ли она всегда необходима? Что, если вместо неё использовать verify?

В новом переводе от команды Spring АйО мы погрузимся в детали жизненного цикла Maven, поведение реактора, инкрементные сборки и подводные камни использования clean и install. А главное — попробуем понять, когда можно (и нужно) обойтись без install и clean, чтобы ускорить сборку и сократить расходы памяти.

Читать далее

UUIDv7 в PostgreSQL 18

Level of difficultyEasy
Reading time8 min
Views9.4K

Совсем скоро (в конце сентября) выйдет PostgreSQL 18. Релиз готовит важные обновления — от асинхронного I/O до EXPLAIN с показателями CPU и WAL. 

Довольно громкая новинка — нативная поддержка UUIDv7, нового стандарта уникальных идентификаторов, идеально подходящих для B-tree индексов. 

В новом переводе от команды Spring АйО рассказывается, почему это важно, как работает UUIDv7 и чем он лучше UUIDv4 для современных распределённых систем.

Читать далее

Что нового в Maven 4?

Level of difficultyEasy
Reading time15 min
Views8.3K

В новом переводе от команды Spring АйО рассматриваются основные изменения, которые ждут нас в новой версии Maven. Изменения затронули performance, POM, новый тип упаковки, улучшения для подпроектов и много другое. 

Читать далее

95% пилотных проектов в области генеративного ИИ в компаниях проваливаются

Level of difficultyEasy
Reading time4 min
Views3.2K

Несмотря на высокий интерес компаний к генеративному ИИ и его потенциал для роста выручки, подавляющее большинство корпоративных проектов терпит неудачу. Новый отчёт MIT указывает, что только 5% пилотных внедрений приносят ощутимый финансовый эффект. В переводе от команды Spring АйО рассмотрим основные причины, которые кроются не в самих моделях, а в ошибочной интеграции, неправильных приоритетах и нехватке адаптации под бизнес-процессы.

Читать далее

Бесконечные циклы. Всё, что может пойти не так — пойдёт не так

Level of difficultyEasy
Reading time5 min
Views5.2K

Конструкции типа while(true) или for(;;) довольно опасные. Когда люди их пишут, то всегда надеются на то, что сработает условие выхода из цикла. Однако, на самом деле, как бы мы ни были уверены, такие конструкции лучше избегать.

В любом программном продукте есть баги, и те инварианты, на которые идёт расчёт, могут просто не сработать. Решение? Читайте в переводе от команды Spring АйО, где автор указывает примеры того, как с этими конструкциями поступили в Jooq и как с ними работает один из департаментов University of California.

Читать далее

LSP API теперь доступен всем пользователям IntelliJ IDEA и разработчикам плагинов

Level of difficultyEasy
Reading time6 min
Views6K

Команда Spring АйО перевела статью от JetBrains, в которой рассказано про избавление одного из главных барьеров на пути к массовому внедрению Language Server Protocol (LSP) в своей экосистеме.

С версии IntelliJ IDEA Ultimate 2025.2 пользователи смогут использовать LSP даже после окончания подписки, а с 2025.3 — LSP станет доступным во всех редакциях IDE благодаря переходу на единый дистрибутив.

Читать далее

Просто будь ленивым

Level of difficultyEasy
Reading time6 min
Views31K

В новом переводе от команды Spring АйО рассматривается JEP 502, который вносит в Java 25 StableValue. StableValue позволяет легко и эффективно реализовывать производительные ленивые конструкции. Новое API позволяет компилятору JIT заранее сворачивать вычисления (constant folding), повышая производительность. Искали Lazy, но нашли золото: StableValue вычисляется один раз и может быть подготовлен Ahead Of Time.

Читать далее

Spring Boot 4 и Spring Framework 7: Ключевые фичи и изменения

Level of difficultyEasy
Reading time10 min
Views15K

Уже в ноябре 2025 выходит Spring Boot 4 — масштабный релиз, построенный на фундаменте Spring Framework 7.0.0 и Jakarta EE 11. Это не просто очередное обновление, а важный этап в развитии всей Java-платформы: новые возможности для REST и безопасности, улучшенная работа с Kotlin и GraalVM, мощная поддержка облаков и нативных образов, а также инструменты для создания отказоустойчивых приложений.

🧠 Эта статья — больше, чем просто перевод: в ней собрано большое кол-во комментариев от экспертов Spring АйО.

Читать далее

Хватит терять время! Ускоряем сборку с помощью Spring Test Profiler

Level of difficultyEasy
Reading time7 min
Views3.6K

Интеграционные тесты на Spring Boot могут тормозить разработку. Причина часто кроется в неэффективной работе с кэшем контекста Spring. 

Spring Test Profiler — это инструмент, который поможет выявить узкие места и оптимизировать конфигурацию тестов. В новом переводе от команды Spring АйО мы рассмотрим, какие тесты вызывают повторную загрузку контекста, где конфигурации расходятся и как можно унифицировать окружение для значительного ускорения тестов.

Читать далее

Bitnami Secure Images: Прощание с Бесплатным Продом

Level of difficultyEasy
Reading time6 min
Views4.5K

Команда Spring АйО перевела статью про то, что не так давно, компания Broadcom, которая на данный момент в силу различных M&A сделок косвенно управляет компанией Bitnami, внесла существуенные изменения в политику поддержки docker образов.

Теперь не бесплатно!

Читать далее

Мне не нужен ORM, я могу просто использовать SQL

Level of difficultyEasy
Reading time4 min
Views17K

Команда Spring АйО в новом переводе разобрала популярный аргумент «я просто использую SQL» и объяснила, почему Hibernate — это не замена, а дополнение к нативным запросам. А ещё — когда ORM действительно необходим, а когда можно без него обойтись.

Читать далее
1
23 ...

Information

Rating
99-th
Works in
Registered
Activity