Spring АйО – Telegram
Spring АйО
9.58K subscribers
375 photos
273 videos
490 links
Русскоязычное сообщество Spring-разработчиков.

Habr: bit.ly/433IK46
YouTube: bit.ly/4h3Ci0x
VK: bit.ly/4hF0OG8
Rutube: bit.ly/4b4UeX6
Яндекс Музыка: bit.ly/3EIizWy

Чат для общения: @spring_aio_chat
Download Telegram
🚫 Ошибки, которые инженеры совершают при код-ревью

Код-ревью стало ключевым этапом в разработке: генерация кода с помощью LLM упростилась, а вот проверка его качества по-прежнему требует инженерной экспертизы.

В новом переводе от команды Spring АйО эксперты сообщества подробно и на собственном опыте рассказали про нюансы код-ревью.

📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/961332/
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2544👍4
💡 Final должен быть значением по умолчанию для Java-классов

А что, если вам сказали бы, что класс без final — это ошибка проектирования? Что возможность наследования должна быть исключением, а не правилом? В новом переводе от команды Spring АйО автор предлагает радикальную идею: все классы должны быть final по умолчанию.

⚠️ Статья была написана ещё до появления Kotlin-а. Цель перевода данной статьи была поднять запылившийся на полке вопрос в дизайне API: "Нужно ли оставлять API открытым по-умолчанию для внешнего расширения?"

Обсудим в комментариях 👇

📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/961686/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23🔥87👎3🤯2
Forwarded from Amplicode
This media is not supported in your browser
VIEW IN TELEGRAM
🐳 Быстрый старт окружения

Хотите запустить сервис в Docker или Kubernetes? Amplicode поможет с настройкой Docker Compose, Helm-чартов и Terraform файлов — всё генерируется и настраивается в пару кликов.

DevOps для этого больше не обязателен.

👉 Больше фич для деплоймента
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥37👍124👎3
🏎 Насколько Java быстрая?

Некоторые считают Java раздутым монстром, а Rust — чемпионом производительности. Но что, если взглянуть на современную Java с Vector API и многопоточностью? 

В новом переводе от команды Spring АйО посмотрим на запуск масштабной симуляции частиц и сравним результаты. Правда ли, что бывалая Java всё ещё умеет удивлять? 

⚠️ Сравнение performance-а языков всегда было холиварной темой. Рекомендуем расценивать статью как приглашение к конструктивной дискуссиии, а не как призыв к конкретному действию.

📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/962604/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍33🔥1412
Media is too big
VIEW IN TELEGRAM
🍃 Java быстрая, как аппрувить pr, Value классы и объекты | Spring АйО Подкаст №41

😉 СМОТРЕТЬ НА YOUTUBE
😄 СМОТРЕТЬ В VK ВИДЕО
🥰 СМОТРЕТЬ НА RUTUBE
🗯 СЛУШАТЬ НА ЯНДЕКС.МУЗЫКЕ
🤩 СЛУШАТЬ НА SPOTIFY
🤩 СЛУШАТЬ НА APPLE PODCASTS

💬 Аудио версию подкаста можно найти в комментариях
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥23👍145
🐳 DockerHub удаляет старые JDK теги — ваши пайплайны могут быть под угрозой

Если вы используете openjdk:<tag> образы в CI/CD и пулите их с Docker Hub, Вам следует оперативно перепроверить свои пайплайны: мейнтейнеры DockerHub удалили ряд устаревших тегов без громких анонсов. Некоторые сборки уже не работают — пострадали сотни пользователей.

В данной новости эксперт сообщества Spring АйО Михаил Поливаха рассказывает, что произошло, почему это проблема, и какие есть альтернативы.

📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/963782/
👍199🤯8🔥2👎1👌1
🍃 Spring АйО на Java Rock Star Meetup

Недавно прошла офлайн-дискуссия с нашим участием, на которой удалось поднять вечные вопросы: "Стоит ли платить за коммерческую поддержку?", "Зачем нужна LTS-версия?".

Поговорили про релизы Java и Spring, про отношения вендоров и заказчиков и про то, почему стабильность — понятие растяжимое.

😉 СМОТРЕТЬ НА YOUTUBE
😄 СМОТРЕТЬ В VK ВИДЕО
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥13👍871
🎯 Ну всё! Теперь точно Final

Относительно недавно вышел JDK 25, про который мы активно писали. Через полгода будет релиз JDK 26 который, помимо прочего, таргетирует JEP 500, который стремится сделать final поля на самом деле final.

В данной статье на Хабр, эксперт сообщества, Михаил Поливаха, поведает про краткую историю вопроса с final, что с final в Java не так, и как Java платформа докатилась до жизни такой.

📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/964962/
🔥23👍116🤯21
🎉 Встречаем Spring AI Agents и Spring AI Bench

Java-разработчикам теперь доступен мощный инструментарий для работы с агентными ИИ-системами: Spring AI представила проекты Agents и Bench.

В новом переводе от команды Spring АйО рассмотрим, как первый обеспечивает удобную абстракцию для работы с CLI ИИ-агентами, а второй — предлагает реалистичные бенчмарки для оценки их эффективности в задачах enterprise-разработки.

📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/965294/
216👍10🔥5👎31🤔1🤯1
Forwarded from Amplicode
😎 Работа с объектами в HTTP-запросах

Работать с объектами намного удобнее и безопаснее, чем со строками: IDE подсказывает поля, типы проверяются на этапе компиляции – меньше шансов ошибиться.

Connekt, построенный на Kotlin DSL, позволяет использовать все эти преимущества при работе с HTTP-запросами — результат можно сразу сохранять в объект, а затем передавать его дальше по сценарию, например, в следующий шаг авторизации или повторно использовать данные без лишнего парсинга.

😏 Больше фич для работы с HTTP
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🤔115🔥3👎1
🎲 Сравнение собеседований в 8 крупных технологических компаниях

В новом переводе от команды Spring АйО Пунит Патвари недавно принял предложение о работе в Atlassian на должность ведущего инженера-программиста (Principal Software Engineer). За три месяца он прошёл более 60 собеседований в 11 компаниях, как он мне рассказал, и отказался ещё от трёх процессов после того, как согласился на предложение от Atlassian — включая собеседование в Meta.

* Meta признана экстремистcкой организацией в России

📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/965926/
🔥19👍1043
🚀 Spring Framework 7.0 — новая эпоха Spring официально началась

Spring команда выкатили GA релиз Spring Framework 7.0 — это старт нового поколения фреймворка с фокусом на Java 25 и фундамент для Spring Boot 4.0, который на момент выпуска поста пока не вышел в GA.

Что нового:
🛑Поддержка Java 25 (LTS) при сохранении baseline на Java 17
🛑Переезд на Jakarta EE 11: Servlet 6.1, JPA 3.2, Bean Validation 3.1
🛑Широкая адоптация JSpecify в рамках всей экосистемы Spring
🛑Поддержка Jackson 3.0 (2.x пока можно, но уже deprecated)
🛑Kotlin 2.2 и JUnit 6.0

Из новых фич, которые стоит посмотреть:
🛑Программная регистрация бинов (более гибкий подход, чем XML/аннотации)
🛑Core resilience features — встроенная устойчивость к сбоям
🛑Новый JmsClient
🛑API versioning на уровне фреймворка
🛑Расширенная конфигурация HTTP Interface Client
🛑RestTestClient для более удобного тестирования HTTP

Обратите внимание, что для Spring Framework 6 и 7 одинаковая baseline версия Java - 17. Если вы уже используете Java 17, то для перехода на Spring Framework 7 вам не потребуется повторно обновлять версию JDK.

Тем не менее, Java 25 постепенно станет дефолтом для enterprise-приложений на Spring
Please open Telegram to view this post
VIEW IN TELEGRAM
43👍22🔥13
Media is too big
VIEW IN TELEGRAM
🍃 DockerHub ломает пайплайны, Spring AI идёт в наступление, а собесы становятся жёстче | Spring АйО Подкаст №42

😉 СМОТРЕТЬ НА YOUTUBE
😄 СМОТРЕТЬ В VK ВИДЕО
🥰 СМОТРЕТЬ НА RUTUBE
🗯 СЛУШАТЬ НА ЯНДЕКС МУЗЫКЕ
🤩 СЛУШАТЬ НА SPOTIFY
🤩 СЛУШАТЬ НА APPLE PODCASTS

💬 Аудио версию подкаста можно найти в комментариях
Please open Telegram to view this post
VIEW IN TELEGRAM
110🔥7👍5😁3
😭 Технический долг — это больно. А архитектурный?

В новой статье очень чётко объясняется, почему основная проблема не в «грязном коде», а в том, что фатальные перекосы рождаются на уровнях, куда разработчики обычно даже не смотрят.

На уровне приложений всё вроде просто: слишком много сервисов, половина — SaaS, данные лежат где попало. Это тот случай, когда «немного архитектурного долга» превращается в рост расходов и бесконечные сроки поставки.

А вот бизнес-слой — штука коварнее. Когда процессы не документированы, «владельцы» непонятны, а «фантомные» схемы живут в Confluence с 2017 года, компания начинает строить планы на неверных предпосылках. Тут уже не про код — тут про то, что неправильная схема процессов может парализовать пол-организации быстрее, чем любой упавший микросервис.

И наконец — стратегический уровень. Это та точка, где неверно определённые бизнес-возможности превращают многолетнюю стратегию в упражнение «стрельнули мимо, но уверенно». Стратегический долг редко заметен сразу, но именно он блокирует трансформации и закрепляет ошибочные решения на годы вперёд.

Вывод простой: архитектурный долг — это не про классы и паттерны, а про системную слепоту. Хорошая новость — архитекторы как раз и существуют для того, чтобы её лечить: собирать данные, строить модели, показывать несостыковки и помогать выбрать, где долг критичен, а где — допустим.

Статья на Хабр "Почему архитектурный долг опаснее технического?"
19🔥13👍9
🔥 В Spring 7 завезли нативное версионирование API

База нововведения — ApiVersionStrategy. Он понимает, где искать версию (header, query, media type или путь), умеет её парсить как семантическую, знает поддерживаемый диапазон и может автоматически выставлять Deprecation/Sunset-заголовки. То есть вместо самодельных фильтров теперь есть один официальный механизм.

В контроллерах появляется новый атрибут version:


@GetMapping(path = "/account/{id}", version = "1.1")
public Account get() { ... }


Хочешь гибкости — прописываешь "1.1+", и метод будет жить до тех пор, пока ты явно не создашь новую версию. Функциональные эндпоинты тоже подтянулись — у них теперь есть предикат version("1.2").

На клиентской стороне — ApiVersionInserter, который один раз настраиваешь:


RestClient client = RestClient.builder()
.baseUrl("http://localhost:8080")
.apiVersionInserter(ApiVersionInserter.useHeader("API-Version"))
.build();

// И дальше только версия
client.get().uri("/account/1")
.apiVersion(1.1)
.retrieve()
.body(Account.class);


Тестовые клиенты работают по той же логике.

Статья на Хабр "Нативный API Versioning в Spring 7: долгожданная официальная поддержка"
Демо-проект с тестами и примерами
Документация
39👍29🔥22🤩3🤔1🤯1
Forwarded from Amplicode
🤖 Мечтают ли ИИ-агенты об удобных IDE?

О программировании с помощью AI-агентов трубят из-за каждого угла. Последнее время появилось достаточно много инструментов, которые буквально пишут код за разработчика.

Наша команда следит за индустрией ИИ в разработке достаточно давно. Помимо внедрения ИИ в сам процесс разработки наших продуктов, мы активно занимаемся интеграцией Amplicode с современными AI-агентами и не только.

И у нас есть свои мысли на этот счет)

📚 Читать на Хабр: https://habr.com/ru/companies/haulmont/articles/925088/
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥147👍7
⚡️ Вышел Spring Boot 4

Spring Boot перешёл на новую мажорную версию — 4.0.0. Релиз состоялся 20 ноября 2025 года, его анонсировал Phil Webb от имени всей команды Spring. Новая версия построена на Spring Framework 7-ой версии.

Михаил Поливаха также выложил небольшую статью на Habr, где описал мотивацию за главным структурным изменением Spring Boot 4 - разбиением Spring Boot на модули.

Главное:
Полная модульность: кодовая база переразбита на меньшие и точечно используемые JAR'ы.
Null safety благодаря JSpecify: везде, по всем проектам Spring.
Поддержка Java 25 (и сохранена совместимость с Java 17).
API Versioning: встроенные средства управления версиями REST-API.
HTTP Service Clients: новый стандартный способ описывать REST-клиентов.

Команда Spring предоставила отдельное руководство по миграции.

Материалы от сообщества Spring АйО на тему Spring 7 и Spring Boot 4:
Нативный API Versioning в Spring 7: долгожданная официальная поддержка
Jackson 3 ворвался в Spring
Состояние HTTP-клиентов в Spring
Spring Boot 4 и Spring Framework 7: Ключевые фичи и изменения
Вышел Spring Framework 7.0


🍃 @spring_aio
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥64👍2617
😎 Перестаньте думать и начните уже писать код!

Джефф Атвуд говорит вслух то, что многие думают, но редко признают. Можно часами гонять UML и вылизывать диаграммы, но без живого прототипа все эти решения — чистая фантазия на тему «как бы оно выглядело, если бы существовало».

Мысль статьи довольно жёсткая, но предельно понятная: сколько бы вы ни планировали, первый дизайн почти наверняка окажется неверным. И единственный способ принимать осмысленные архитектурные решения — писать код, получать обратную связь, менять подход и снова писать код. Итерации, а не медитации над белой доской.

📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/967474/
👍317🔥43🤔1
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Бесплатный оффлайн митап в МСК

На предстоящем Java Rock Stars Meetup для вас выступят две легенды из мира Java:

🟣 Роман Елизаров с докладом "От языков программирования к Developer Experience"
🟣 Алексей Рагозин с докладом "JDK Flight Recorder в Java 25"

Участие абсолютно бесплатное. Главное – зарегистрироваться!

P.S. Как классно было в прошлый раз можете оценить по прикрепленному шортсу)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1910👍9
🪨 Spring Framework получит нативную поддержку Python и JavaScript

Михаил Поливаха, эксперт сообщества Spring АйО и контрибьютор в Spring, поделился своими мыслями по поводу issue под номером 35725, который на первый взгляд может показаться неоднозначным.

В версии Spring Framework 7.1 (предположительно) появится возможность нативно исполнять Python, JavaScript и другие noscripting-языки — благодаря интеграции с GraalPy, GraalJS и Truffle. Почему это вообще стало возможным?

GraalVM переживает перестройку: Oracle выводит проект из жёсткой привязки к Java SE, переосмысляет приоритеты и активнее ищет рынки для GraalJS/GraalPy. Эти направления продолжают активно развиваться — и как раз становятся фундаментом для будущей поддержки скриптов в Spring.

Важно: Spring и GraalVM исторически «дружат» ещё со времён Spring Native. Graal часто использует Spring Petclinic в своих демо, а Spring — один из ключевых потребителей AOT-технологий, Leyden и связанных инициатив. Поэтому усиление интеграции — логичный шаг.

Что это даст Spring?
— возможность встраивать скриптовые плагины, DSL и расширения без JVM-обвязки
— шанс усилить позицию в экосистеме AOT/fast startup
— поддержку Graal-линейки продуктов, что укрепляет союз с Oracle

Но стоит понимать и риски: новый API будет нишевым, а неаккуратное использование может легко привести к провалам в части security. Потому массовым решением это вряд ли станет.

Одним из драйверов всей инициативы считается Sébastien Deleuze — лидер Spring Framework, ранее создатель Spring Native и большой энтузиаст Kotlin и Graal. Многие в комьюнити отмечают, что благодаря его видению удалось «подтянуть» Spring к новой AOT-эпохе.

P.S. Эксперт сообщества Евгений Сулейманов отметил, что по его мнению ставка Spring на GraalVM — это не «хайп», а игра в долгую. Если Oracle найдёт устойчивые продуктовые ниши для GraalVM, Spring почти гарантированно станет дефолтным enterprise-фреймворком для полиглот-платформ нового поколения. Важно учитывать это, если вы планируете архитектуру на горизонте 5–7 лет.

@spring_aio
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯35👍18🔥6👎522😁2