Spring АйО
9.75K subscribers
390 photos
277 videos
507 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
🏎 Как ускорить MongoDB в Java: profiling, explain(), индексация и антипаттерны

Подготовили материал о том, почему «быстрый запрос в MongoDB» — это индексы, форма запроса, проекции, explain(), профайлер и наблюдаемость в Java/Spring Boot.

Разбираем, как отличать IXSCAN от COLLSCAN, где чаще всего прячутся антипаттерны (skip-пагинация, тяжёлые $regex/$nin, findAll), и как выстроить измеримый цикл оптимизаций от Atlas/Compass до Micrometer.

📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/979440/
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥20👍841
Forwarded from Amplicode
🤩 Продвинутый Telegram-бот для Spring АйО. Часть 1: Архитектура и первая рабочая версия

Запускаем цикл видео про разработку телеграм-бота на Spring!

В первом выпуске — база, на котором строится весь сервис. На самом деле, мы уже всё подключили, развернули и запустили в облаке, можно тыкать (@spring_aio_bot) 😉 Для подписчиков там даже есть приятный бонус)

В следующих частях покажем, как интегрировали в бота Spring AI и как разворачивали всё это дело.

Ну и конечно — код открыт и лежит на GitHub. Забирайте, изучайте, экспериментируйте!

😉 СМОТРЕТЬ НА YOUTUBE
😄 СМОТРЕТЬ В VK ВИДЕО
🥰 СМОТРЕТЬ НА RUTUBE
Please open Telegram to view this post
VIEW IN TELEGRAM
👍30🔥1564😁2
Parallel streams — это не «бесплатный» прирост производительности, а дорогая оптимизация.

🟣 Любое распараллеливание добавляет накладные расходы: разбиение данных, управление задачами через fork-join, синхронизацию и объединение результатов. Если операция над элементом дешёвая или данных недостаточно много, этот оверхед полностью съедает потенциальный выигрыш — и последовательный стрим оказывается быстрее.

🟣 Вторая причина — ограничения самой задачи. Многие вычисления по природе последовательны или содержат существенную последовательную часть, которую нельзя распараллелить. Закон Амдала жёстко ограничивает максимальный speedup: даже небольшой последовательный участок ставит потолок ускорению, независимо от количества ядер. В streams эта доля часто больше, чем кажется.

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

Подробнее в новом переводе статьи от Брайана Гоетца – одного из ключевых архитекторов экосистемы Java и главного авторитета по конкурентному и параллельному программированию в JVM.

@spring_aio
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
25👍23🔥112
🚀 Тред-дампы и Project Loom (виртуальные потоки)

С появлением виртуальных потоков в Java благодаря Project Loom, параллельное программирование стало проще, а производительность — выше.

Однако за этой простотой кроются новые вызовы для инструментов отладки и анализа. Как читать тред-дампы, если их теперь тысячи — или миллионы? Какие средства реально помогают найти взаимные блокировки и аномалии в асинхронном коде? Рассмотрим в новом переводе от команды Spring АйО.

📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/980566/
🔥20👍117
🥷 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👍963
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/
👍21🔥123👎1
🍃 Дорогие друзья и участники сообщества Spring АйО!

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

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

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

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

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

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

Приятного просмотра и, как всегда, будем рады вашим мыслям в комментариях 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
👍219🔥4👎3