Spring АйО – Telegram
Spring АйО
9.97K subscribers
401 photos
279 videos
523 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
🥷 Hidden классы в Java. Что скрывают Lambda выражения

С переходом Java на более безопасные и стандартизированные подходы к динамической генерации классов, скрытые (hidden) классы стали ключевым механизмом замены устаревшего Unsafe::defineAnonymousClass.

Они решают проблемы доступности, управления жизненным циклом и контроля доступа, особенно актуальные для разработчиков фреймворков и языков на JVM. Хотя скрытые классы пока не полностью заменяют функциональность Unsafe, они лежат в основе ряда важных механизмов, такие как, например, реализация лямбд в JDK.

📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/980928/
🔥17👍94
🛠 Михаил Поливаха. Garbage Collection. Где мы сейчас

Наш эксперт Михаил Поливаха выступил с докладом про сборку мусора:

Сборка мусора является довольно сложным механизмом. В большинстве managed языков runtime скрывает от нас детали дислокации памяти. С другой стороны, выбор определённого сборщика мусора может существенно улучшить производительность.

Поговорим о том, какие алгоритмы сборки мусора бывают, какие бывают концептуальные трейд оффы при их использовании, и какой алгоритм вам может подойти больше всего.


😉 СМОТРЕТЬ НА YOUTUBE
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥33👍1063
Media is too big
VIEW IN TELEGRAM
🍃 gRPC в Spring Boot, зачем разработчику Hidden классы, HashMap vs MongoDB | Spring АйО Подкаст №46

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

💬 Аудио версию подкаста можно найти в комментариях
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥117🤩1
Forwarded from Amplicode
⚡️ Spring MCP: набор инструментов для AI-помощника от Amplicode

Эта статья дополняет предыдущую. Там мы зафиксировали проблемы. Здесь разберем, что именно мы сделали со стороны Amplicode, чтобы агент начал работать как опытный software engineer: опираясь на структуру проекта, детерминированные генераторы и понятные высокоуровневые операции.

Если коротко, в первой статье было несколько основных болей:

• LLM часто обучены на слегка устаревшем мире, и это вылезает в мелочах (и не только)
• Галлюцинации и нехватка контекста идут рука об руку: «кажется, в этой библиотеке должен быть такой метод» и пошло-поехало
• Переизбыток контекста тоже зло: агент прочитал половину репозитория, потратил деньги, запутался, а потом еще и забыл начало чата
• Типичный агентный workflow: «сгенерил простыню кода, оно не компилится, давай чинить, ой теперь сломалось другое»

И на этом фоне появляется логичный вопрос:

А можно сделать так, чтобы агент работал не с сырыми файлами, а с моделью проекта и сущностями фреймворка? Чтобы он не гадал, где DTO, как принято именовать контроллеры и какие миграции у вас используются?


Собственно, Spring MCP от Amplicode про это.

📚 Читать на Хабр: https://habr.com/ru/companies/haulmont/articles/976872/
👍22🔥123👎1
🍃 Дорогие друзья и участники сообщества Spring АйО!

Уходящий год еще раз показал, какую силу имеет профессиональное сообщество. Сегодня Spring АйО — это уже почти 10000 разработчиков, объединенных интересом к Spring, технологиям, обмену опыта и живому диалогу. Ваша вовлеченность, вопросы, комментарии и поддержка делают это пространство по-настоящему ценным.

В 2026 году нас ждут новые идеи, форматы и темы. Мы планируем еще больше полезных материалов, практических разборов и обсуждений того, что действительно важно для Spring-разработчиков.

Спасибо, что остаетесь с нами и разделяете этот путь. С новым годом, друзья!🎄
🔥10836🤩10👎1
🎙 Второй выпуск подкаста «За ширмой IT» уже на канале!

Друзья, эксперты Евгений Сулейманов и Михаил Поливаха поговорили о том, что действительно важно для инженера сегодня и завтра:

— зачем разработчику на самом деле нужен open source
— почему спикерство — это не только про сцену и лайки
— что происходит с рынком и при чем тут AI
— как выбирать технологии и выстраивать обучение, если не хочется бегать за каждым трендом

😉 СМОТРЕТЬ НА YOUTUBE

Приятного просмотра и, как всегда, будем рады вашим мыслям в комментариях 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2310👎5🔥5
🧪 Project Panama: как Java научилась говорить на C!

Как безопасно и эффективно вызывать C-функции из Java? Благодаря Project Panama — новому API из OpenJDK — это стало возможно без использования JNI.

В новом переводе от команды Spring АйО познакомимся с основами FFM API, посмотрим на запуск Hello World на C, роль jextract, и на то, как управлять памятью вне кучи JVM.

📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/985144/
24🔥22👍142
🚨 Срочный апдейт по безопасности в Node.js

Node.js выпустил срочный security-релиз, который закрывает опасную уязвимость отказа в обслуживании (DoS). И это хороший повод обратить внимание всем backend-разработчикам, а не только JS-сообществу.

Михаил Поливаха, эксперт сообщества Spring АйО, пояснил в чём проблема и почему она касается в том числе Java разработчиков.

В чем суть проблемы?

В ряде Node.js-приложений сервер мог падать целиком от одного запроса. Без логов. Без обработки ошибок. Без возможности мониторинга причин.

А всё дело в том, что рантайм Node-ы в рамках ассинхронного контекста (Promise или async/await) не контролировал глубокую или даже бесконечную рекурсию и позволял ей положить весь рантайм.

В результате:

🔵ошибка не перехватывалась кодом
🔵не доходила до глобальных обработчиков
🔵сервер падал с ошибкой

Кого это затронуло сильнее всего?

🔵Приложения на React / Next.js
🔵Любые системы с APM (Datadog, New Relic, OpenTelemetry)
🔵Большинство продакшн-Node.js-сервисов по умолчанию

Что сделали разработчики Node.js?

🔵Исправили поведение: теперь ошибка возвращается в код, а не убивает процесс
🔵Выпустили security-релиз для всех актуальных веток
🔵Отдельно подчеркнули, что это больше смягчение, а не гарантия безопасности

Почему это важно для Spring разработчика?

А потому, что контролировать рекурсию на основе входных данных нужно всегда, и Spring Data, например, в своё время фиксила такую дыру у себя тоже в рамках Property Path Traversal.

Главный вывод

Если глубина рекурсии, размер и строение входных структур или объём ресурсов могут контролироваться пользователем — нужно вводить явные ограничения, как это сделала Spring Data.

Это справедливо для Node.js, для Java / Spring, для любых backend-систем.

📌 Помним, что DoS-уязвимости часто рождаются не в бизнес-логике, а на стыке рантайма, инфраструктуры и удобных абстракций.

🔗 Подробнее: https://nodejs.org/en/blog/vulnerability/january-2026-dos-mitigation-async-hooks
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2210👍76
🚀 Spring АйО × JPoint: свой трек

В этом году Spring АйО представляет собственный трек на конференции JPoint, Трек будет посвящен разработке на Spring.

Мы открыты к любым идеям, но в первую очередь ищем доклады про Spring и все, что вокруг него:

🟠архитектура и реальные проектные решения
🟠производительность и узкие места
🟠безопасность
🟠тестирование
🟠интеграции и инфраструктура

⚠️ Новое Open Source Решение

Кроме того, на треке Spring АйО состоится первая публичная презентация нового Open Source продукта, посвящённого отладке и глубокому мониторингу приложений на Spring Boot. Автором продукта является один из экспертов Spring АйО сообщества.

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

📩 Заявку на участие можно оставить тут: https://spring-aio.ru/2026
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥40👍16111
Media is too big
VIEW IN TELEGRAM
🍃 Проект Panama, собесим Михала Поливаху, Node.js профакапились | Spring АйО Подкаст №47

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

💬 Аудио версию подкаста можно найти в комментариях
Please open Telegram to view this post
VIEW IN TELEGRAM
12👍11🔥43
JVM ещё жива, но уже бесполезна: как Netflix научился убивать её по GC

Вместо того чтобы ждать, пока Java-приложение окончательно "зависнет" из-за GC, инженеры Netflix сделали jvmquake — инструмент, который сам определяет, что JVM уже не спасти, вызывает дамп памяти и аккуратно завершает процесс. Меньше тревог, больше аптайма.

Подробности - в новом переводе от команды Spring АйО.

📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/987116/
👍41🔥139🤔1
🛠️ Observability-as-Code в Spring Boot: Контракты и тесты для метрик, логов и трейсов

Думаешь, метрики и логи — дело вкуса? А вот и нет. В продвинутых командах они становятся частью контракта: что логировать, какие метрики собирать, как проверять всё это тестами и в CI.

В статье от эксперта Spring АйО Евгения Сулейманова рассмотрим, как внедрить наблюдаемость "по-серьезному" — через код, тесты и архитектурные правила. Spring Boot, Micrometer, OpenTelemetry и немного магии ArchUnit.

📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/987358/
👍41🔥1710
👩‍💻 Почему Kotlin ломает JPA

Используешь Kotlin с Jakarta Persistence и думаешь, что всё работает? Возможно, до первой неожиданной ошибки. data class, val, final-классы и даже значения по умолчанию — всё это может тайно мешать корректной работе JPA.

Вместе с Торбеном Янссеном в новом переводе от команды Spring АйО разберем скрытые ловушки и показывают, как настроить проект правильно, чтобы не наступить на мину.

📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/987890/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍30🔥85😁3
Forwarded from OpenIDE
🔥 Роман Елизаров про AI в разработке ПО, OpenSource и культуру IT

Большая часть интервью — про практику. Насколько хорошо ИИ-агенты пишут код сегодня, где они реально помогают, а где создают дополнительные риски.

Поговорили о качестве сгенерированного кода, границе ответственности, безопасности, конфликте интересов между разработчиками и безопасниками, а также о монополизации в Open Source.

В конце — про будущее профессии: как будут выглядеть инструменты разработки, куда расти инженеру в эпоху автоматизации и есть ли у разработчика жизнь вне кода.

😉 СМОТРЕТЬ НА YOUTUBE
😄 СМОТРЕТЬ В VK ВИДЕО
🥰 СМОТРЕТЬ НА RUTUBE
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥1152
☕️ 23 января 1996 года — день, с которого началась Java как мы ее знаем

Друзья, ровно в этот день вышла первая стабильная версия Java Development Kit 1.0. Не демка и не академический эксперимент, а полноценный набор инструментов для разработчиков: компилятор javac, интерпретатор байткода, VM и стандартная библиотека. Все, чтобы писать, собирать и запускать Java-приложения «из коробки».

Для своего времени это был настоящий прорыв. Код можно было написать один раз и запускать на разных платформах — без необходимости компиляции под разные ABI ОС и разные CPU ISAs. Именно тогда появилась идея, которая позже превратится в мем, а затем — в индустриальный стандарт:

Write Once, Run Anywhere.


Интересно, что Java изначально рождалась не как «удобный язык», а как ответ на вполне конкретные инженерные боли. Как говорил James Gosling в одном из интервью:

“I do not want to have to debug another freaking memory corruption bug.”


Отсюда — управляемая память, строгая модель типов и ставка на безопасность, которая в 90-х выглядела почти радикально.

Несколько любопытных фактов вдогонку:

🛑Изначально Java задумывалась для embedded-устройств, а вовсе не для веба и enterprise. Массовое использование Java в Web — результат эволюции платформы, а не исходный план.

🛑Многие вещи, которые когда-то подавались как Java киллер фичи, со временем либо полностью исчезли из JDK, либо стали устаревшими. Например:
– Java Serialization API
– Java Applets
– Java RMI
– и ряд других технологий, когда-то казавшихся «будущим»

Первая версия JDK была далека от сегодняшней экосистемы, но именно с нее начался путь, который привел нас к современным JVM, Spring, микросервисам, облакам и enterprise-разработке. И удивительно, сколько фундаментальных решений, принятых почти 30 лет назад, до сих пор лежат в основе того, чем мы пользуемся каждый день.

👀 А вы помните, с какой версии Java начали работать вы?
Please open Telegram to view this post
VIEW IN TELEGRAM
69🔥24👍16🤩2
Forwarded from Amplicode
«Безобидный» активатор IntelliJ IDEA — это не патч лицензии, а полноценный Java-агент, который встраивается в JVM до старта IDE

Shell-скрипт сначала ставит зависимости (на Linux — через sudo, на macOS — с правками ~/.zshrc), затем скачивает набор JAR’ов с внешнего сервера без подписей и checksums и прописывает -javaagent в vmoptions.

С этого момента сторонний код получает доступ и может менять байткод любых классов — включая стандартную библиотеку Java.

Дальше начинается самое интересное.

Агент:
— блокирует DNS и HTTP-запросы к серверам лицензирования JetBrains
— скрывает своё присутствие, подменяя списки VM-аргументов и загрузку классов
— патчит BigInteger#oddModPow() и подменяет результат модульного возведения в степень по правилам из конфига

Это фундаментальная операция для RSA (криптографический алгоритм с открытым ключом). То есть компрометируется не только проверка лицензии, а вся криптография внутри JVM процесса IDE: HTTPS, Git over SSL, подписи, API-аутентификация.

Фактически вы работаете в среде, где нельзя доверять результатам криптографических проверок.

Отдельный слой рисков — системный. Скрипт получает root-права на время установки, модифицирует shell-конфиги и загружает исполняемый код с сервера третьей стороны. Что именно окажется в JAR’ках завтра — пользователь не контролирует.

И, наконец, юридические риски. Использование пиратского ПО — прямое нарушение ст. 146 УК РФ. В корпоративной среде порог «крупного ущерба» достигается очень быстро: достаточно нескольких нелегальных лицензий. В случае инцидента крайним почти всегда оказывается тот, кто установил софт.

Подробный технический разбор — от shell-скрипта до патча криптопримитивов — в новой статье на Хабре.

👉 Любая IDE от JetBrains бесплатно: что на самом деле происходит, когда вы запускаете “безобидный” активатор
👎44👍23🤯17🔥12😁42