Spring АйО
10.9K subscribers
496 photos
310 videos
638 links
Русскоязычное сообщество Spring-разработчиков.

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

Чат для общения: @spring_aio_chat
По вопросам сотрудничества: @befayer
Download Telegram
Привет, Друзья!

Эксперт нашего сообщества, Евгений Сулейманов, проводит опрос зрелости Production систем. Опрос довольно небольшой, и Spring АйО просит Вас пройти его с целью того, чтобы понять, как эксплуатируются современные системы.

Опрос довольно небольшой, агрегированные и обезличенные результаты потом опубликуем.

Евгений Сулейманов:

Запускаю State of Production Engineering 2026 - исследование о том, как команды разработки живут в ПРОДе.

Это не опрос про Java.
Не опрос про Kubernetes.
Не опрос про DevOps.
И не "какой инструмент observability вы используете".

Смотрим шире:

- архитектура и владение
- поставка и безопасность релизов
- управление инцидентами
- observability как способность расследовать, а не просто смотреть графики
- resilience
- данные
- рантайм и работа с платформой
- AI в процессе SDLC
- инженерная культура
- стоимость инцидентов, даунтаймы и надежность.

Основная идея проста: зрелость production engineering - это не наличие инструментов, а способность команды управляемо проводить изменение от идеи до стабильной эксплуатации в ПРОДе.

Нужны ответы людей, которые действительно связаны с ПРОДом:

CTO, Head of Engineering, тимлиды, архитекторы, разработчики, SRE, DevOps, QA лиды, delivery/product менеджеры - все, кто участвует в релизах, инцидентах, эксплуатации, архитектурных решениях и инженерных процессах.

Анкета занимает примерно 10–15 минут.
Можно отвечать без имени и компании.
По итогам подготовлю публичный отчет и бенчмарки по зрелости production engineering.

Ваш опыт очень важен.


Пройти опрос:
State of Production Engineering 2026
👍108😁5👌1
Media is too big
VIEW IN TELEGRAM
🍃 Spring AI 2.0, Anthropic спрятал бомбу, Геттеры опасны | Spring АйО Подкаст №65

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

💬 Аудио версию подкаста можно найти в комментариях
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥178👍7😁4
😵‍💫 Когда Hibernate плевать на ваш OneToOne Lazy Loading

Вы аккуратно расставили FetchType.LAZY на всех *ToOne связях, уверены, что лишних запросов в БД нет — и тут в логах всплывает необъяснимый SELECT, который вы не просили.

Особенно обидно, когда это @OneToOne: на @ManyToOne ровно тот же LAZY работает железно и всегда, а здесь Hibernate вдруг идёт в базу eagerly, будто вашей аннотации и не было.

А самое неприятное — большинство объяснений в сети сводятся к тому, что просто так уж устроено, но главный вопрос "Почему?" остается без ответа. Почему один и тот же LAZY в одном
случае работает, а в другом молча игнорируется?

В новой статье Михаил Поливаха, разбирает по полочкам:

☑️ Что на самом деле такое FetchType.LAZY и почему это всего лишь hint, а не приказ;
☑️ Почему @OneToOne иногда невозможно сделать lazy именно в Java;
☑️ Почему @ManyToOne при этом ленив всегда — и при чём тут владение связью и foreign key;
☑️ Как с этим жить: optional = false, дизайн схемы, @MapsId и другое.

📎 Подробнее в статье на Хабр: https://habr.com/ru/companies/spring_aio/articles/1050462/
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥30👍175🤩1
🛡 Project Valhalla: 10 спустя

В Java наконец появляется ответ на старую проблему: полноценные классы часто слишком дорогие для памяти и процессора.

Пример - массив из миллиона, например, точек Point. Сейчас это обычно не миллион точек подряд, а миллион ссылок на объекты в куче. У каждого объекта есть служебные данные, его нужно создать, потом убрать сборщиком мусора. Плюс процессор постоянно прыгает по памяти, а это медленно.

Project Valhalla добавляет value class. Это обычный на вид класс с полями, конструктором и методами, но без идентичности объекта. JVM сможет хранить такие данные плотнее: например, прямо внутри массива, без отдельного объекта для каждого значения.

JEP 401 планируют включить в JDK 28 как preview. Это еще не финал: value class пока может быть null, а полная поддержка быстрых generics и плотных коллекций появится позже. Но первый рабочий шаг Valhalla уже близко.

📎 Статья целиком: https://habr.com/ru/companies/spring_aio/articles/1050938/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍35🔥2711
Наши друзья из Axiom проводят вебинар для тех, кто сталкивается с Java, Kubernetes и всем, что связано с защищённым контуром.

Ребята обещают показать самый что ни на есть практический сценарий: Java-сервисы внутри Kubernetes, mTLS, ГОСТ TLS, Axiom JDK Certified и КриптоПро/JTLS. В общем самая жиза.

Будет разбор:
• зачем сервисам сертификаты;
• как работает mTLS;
• где в этой схеме Axiom JDK Certified и КриптоПро;
• почему не надо хранить ключи в container image;
• как network policies помогают не превращать кластер в проходной двор.

👆Спикер — Дмитрий Сапожников.
30 июня в 11:00

Если тема вам близка, регаться тут
Please open Telegram to view this post
VIEW IN TELEGRAM
👍114🔥3
👩‍💻 Большая сила маленьких PR-ов в эру AI

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

И тут обнаруживается узкое место, о котором редко говорят вслух. Финальное решение о том, как изменение вписывается в проект, по-прежнему принимает человек на code review — и именно это ревью становится той точкой, где качество либо сохраняется, либо незаметно утекает. Проблема в том, что у человеческого внимания есть предел, и большие изменения пробивают его слишком легко.

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

📎 Подробнее в статье на Хабр:
https://habr.com/ru/companies/spring_aio/articles/1051808/
Please open Telegram to view this post
VIEW IN TELEGRAM
113👍7🔥4🤩4😁1
👩‍💻 Spring Batch научился работать с MongoDB

Spring Batch - проект в рамках экосистемы Spring Framework, который, как правило не получает должного внимания. Тем не менее, это хорошее решение для Enterprise Batch Processing.

Долгое время Spring Batch требовал SQL-базу для хранения общего состояния, шагов перехода, статусов выполнения и время запусков. Даже если проект жил на MongoDB, рядом часто приходилось держать Postgres или MySQL только ради метаданных.

В Spring Boot 4.1 стало проще: появился spring-boot-starter-batch-data-mongodb. Теперь Spring Batch научился работать с MongoDB.

В статье Josh Long рассказывает про новинки в рамках Spring Batch, в том числе и новую интеграцию с MongoDB, а также работу с GraalVM

📎 Полный текст: https://habr.com/ru/companies/spring_aio/articles/1052358/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1610🔥7
Друзья, всем привет!

Недавно эксперт сообщества, Михаил Поливаха, выступил на подкасте "Тысяча Фичей" Александра Пахомова, спикера Jpoint.

Парни поговорили о наболевшем:

1. Почему Java до сих пор плотно держит Enterprise и на цифрах не сдает позиции.
2. Почему Oracle отказался от своего Enterprise Edition для Java.
3. Когда Spring Framework придёт конец и придёт ли вообще.
4. Когда нужно и не нужно использовать AI.
5. Как сохранить экспертизу и глубокое понимание в эру искусственного интелекта.

Подкаст довольно длинный, и все темы удалось разобрать довольно глубоко.

Слушать в Apple Podcasts | Spotify | Яндекс | браузер

Ссылка на канал Александра

Надеемся, Вам будет интересно! 🫡
1🔥316👍5
Skill of the Week: Spring Data JDBC

Продолжаем рубрику Skill of the Week: каждую неделю разбираем скилл, который помогает вам и AI-агентам в реальной работе.

Spring Data JDBC — сознательно простой стек: агрегаты в духе DDD, загрузил корень целиком, изменил, сохранил. Казалось бы, чем проще технология, тем легче с ней агенту.

Так ли это на практике? Скорее наоборот.

Кода с Spring Data JDBC в открытом доступе мало, и модели приходится достраивать поведение фреймворка по своим общим представлениям. Итог: агент ссылается на внутренний компонент чужого агрегата, заводит репозиторий для владеемой сущности и нарушает границы там, где этого делать нельзя 🫠.


Skill объясняет агенту, как Spring Data JDBC устроен на самом деле: что такое агрегат, где проходит его граница и почему репозиторий бывает только у корня. Для моделей среднего класса это критично (на отдельных задачах скилл подтягивает Haiku почти до уровня Opus!).

Этому и посвящён скилл недели.

📚 Как научить агента мыслить агрегатами разобрали в статье на Хабре
👍2013🔥102
🤑 В Java нет универсального типа для денег

double быстрый, но хранит десятичные числа как двоичные приближения: 0.1 + 0.2 дает 0.30000000000000004. BigDecimal точен в десятичной арифметике, но дороже по памяти и CPU.

Выбор зависит от задачи: для метрик и ML хватит double с допуском, для налогов и счетов нужен BigDecimal с явным RoundingMode, для низкой latency - fixed-point на long.

Ошибка не в double или BigDecimal, а в выборе без понимания точности, округления и нагрузки.

🔗 Полный текст: https://habr.com/ru/companies/spring_aio/articles/1054074/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23😁134🔥1
Media is too big
VIEW IN TELEGRAM
🍃 AI мигрирует Python на Spring Boot, MongoDB ещё жива, SpringBatch 4 закончился | Spring АйО Подкаст №66

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

💬 Аудио версию подкаста можно найти в комментариях
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥63