Spring АйО
Русскоязычное сообщество Spring-разработчиков. Habr: bit.ly/433IK46 YouTube: bit.ly/4h3Ci0x VK: bit.ly/4hF0OG8 Rutube: bit.ly/4b4UeX6 Яндекс Музыка: bit.ly/3EIizWy Чат для общения: @spring_aio_chat По вопросам сотрудничества: @befayer
Ko'proq ko'rsatish📈 Telegram kanali Spring АйО analitikasi
Spring АйО (@spring_aio) kanali faol ishtirokchi. Hozirda hamjamiyat 10 904 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 11 444-o'rinni va Rossiya mintaqasida 60 268-o'rinni egallagan.
📊 Auditoriya ko‘rsatkichlari va dinamika
невідомо sanasidan buyon loyiha tez o‘sib, 10 904 obunachiga ega bo‘ldi.
03 Iyun, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni 185 ga, so‘nggi 24 soatda esa 7 ga o‘zgardi va umumiy qamrov yuqori darajada qolmoqda.
- Tasdiqlash holati: Tasdiqlanmagan
- Jalb etish (ER): Auditoriya o‘rtacha 57.30% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 26.19% ini tashkil etuvchi reaksiyalarni to‘playdi.
- Post qamrovi: Har bir post o‘rtacha 6 249 marta ko‘riladi; birinchi sutkada odatda 2 856 ta ko‘rish yig‘iladi.
- Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 43 ta reaksiya keladi.
- Tematik yo‘nalishlar: Kontent айо, хабр, api, jep, amplicode kabi asosiy mavzularga jamlangan.
📝 Tavsif va kontent siyosati
Muallif resursni shaxsiy fikrni ifoda etish maydoni sifatida ta’riflaydi:
“Русскоязычное сообщество Spring-разработчиков.
Habr: bit.ly/433IK46
YouTube: bit.ly/4h3Ci0x
VK: bit.ly/4hF0OG8
Rutube: bit.ly/4b4UeX6
Яндекс Музыка: bit.ly/3EIizWy
Чат для общения: @spring_aio_chat
По вопросам сотрудничества: @befayer”
Yuqori yangilanish chastotasi (oxirgi ma’lumot 04 Iyun, 2026 da olingan) sababli kanal doimo dolzarb va katta qamrovli bo‘lib qoladi. Analitika auditoriya kontent bilan faol hamkorlik qilishini, uni Texnologiyalar & Aralashmalar toifasidagi muhim ta’sir nuqtasiga aylantirishini ko‘rsatadi.
null, потом double-checked locking, volatile, синхронизация. Ошибиться легко, а final не поставить. Итог - код хрупче и JVM хуже делает constant folding.
В JDK 26 (preview, JEP 526) добавили LazyConstant<T>: final поле, рецепт вычисления через Supplier, значение доступно через get(). Supplier выполнится при первом get и только один раз успешно, даже при гонке потоков. Кроме этого значение помечается как @Stable - JVM может считать его константой и агрессивнее оптимизировать.
Граничные случаи: null нельзя; не сериализуется; исключение из Supplier пробросится и следующая попытка снова пересчитает; equals у LazyConstant - только identity.
Для 1:n есть List.ofLazy и Map.ofLazy: элементы/значения считаются по индексу/ключу по требованию и кэшируются.
📎Полный текст — https://habr.com/ru/companies/spring_aio/articles/1042294/String.format() в горячем коде
- Автобоксинг
и так далее. И каждый подобный пролёт делает приложение чуть медленнее, и в какой-то момент это рискует превратиться в критическую массу, которая больно выстрелит на следущем спайке нагрузки.
Если вы пишете на Java и у вас всё вроде работает, но под нагрузкой сервисы начинают задыхаться, эта статья покажет конкретные паттерны, на которые стоит посмотреть.
📎 Полный текст: https://habr.com/ru/companies/spring_aio/articles/1039778/@Transactional влияет на latency, HikariCP, JDBC-соединения, блокировки в PostgreSQL, Hibernate flush, rollback-правила и p95/p99 в проде.
— Дмитрий Соломенников
«Не Котлином единым, или почему одного языка недостаточно»
Разговор о том, почему экосистема не заканчивается на Kotlin, какие еще языки и проекты развиваются рядом, зачем это все вообще нужно и возможен ли когда-нибудь действительно универсальный язык программирования.
👉 Для участия нужна только регистрация.public контракты являются public только для авторов библиотеки, а не для пользователей.
Ребята из Netflix ввели простые метки для API: @Public - можно использовать снаружи, @Experimental - тоже можно, но интерфейс может меняться, @Deprecated - готовится к удалению. Все остальное считается внутренним и использованию извне не подлежит. Но сами аннотации проблему не решают, нужна проверка на масштабе.
Решение - ArchUnit + Nebula ArchRules.
ArchUnit анализирует скомпилированный байткод, поэтому одинаково работает для Java/Kotlin/Scala и проверяет реальный код на classpath. Команды пишут правила (например: «вне пакета библиотеки нельзя зависеть от ее deprecated/internal API»), публикуют их как отдельный arch-rules JAR, а runner автоматически запускает проверки в репозиториях и делает отчеты с точной строкой нарушения.
📎 Полный текст: https://habr.com/ru/companies/spring_aio/articles/1037012/Ниже — лишь малая часть доступных функций Spring MCP: –list_spring_beans_tool,list_all_domain_entities,list_project_endpoints— список бинов, сущностей и эндпоинтов, в том числе в библиотеках и стартерах –get_bean_injection_info,get_entity_details,get_endpoint_info— доступ к структурированной информации о связях бина и структуре сущностей –create_migration_script— генерация миграционных скриптов –read_class_file— доступ к содержимому файлов в зависимостях
А вот некоторые из Spring Skills: –В будущем мы планируем развивать набор Spring Skills вместе с командой Amplicode. 📎 Подробнее про Spring Agent Toolkit читайте в новой статье на Хабр: https://habr.com/ru/companies/haulmont/articles/1034688/Spring Planning— создаёт структурированный план реализации с интерактивным сбором контекста, выбором архитектуры и декомпозицией задач –Spring Explore— исследует приложение Spring Boot и формирует контекст проекта: технологический стек, структуру модулей, доменные сущности, REST-эндпоинты –Spring Data JPA— правила и рекомендации по работе со Spring Data JPA: создание и изменение сущностей, репозиториев, проекций и транзакционного кода –CRUD REST Controller— создаёт Spring REST-контроллер с CRUD-эндпоинтами –Java Debug— отладка приложений через отладчик IntelliJ IDEA: брейкпоинты, debug-сессии, пошаговое выполнение, вычисление выражений, инспекция состояния во время выполнения
val (name, age) = person. Но компилятор берет значения не по именам, а по позиции component1/component2.
Отсюда проблемы. Если поменяли порядок параметров в data class или сделали age вычисляемым свойством: то та же строка начинает доставать другое поле. Причем иногда код даже скомпилируется, но, конечно, смысл изменится: val (age, name) = person.
И вот теперь Kotlin экспериментально переводит круглые скобки на деструктурирование по имени. Синтаксис будет такой: (val name, val age) = person. И порядок внутри скобок не важен. Переименование явно: (val years = age, val theName = name) = person.
Позиционное же деструктурирование остается, но переезжает в квадратные скобки для Pair/Triple и коллекций: val [x, y] = point.
Сейчас этот функционал является экспериментальным, но есть планы в будущем переехать полностью на деструктурирование по имени.
📎 Полный текст: https://habr.com/ru/companies/spring_aio/articles/1035596/Claude Haiku 4.5 со Skills набрал 27.7% против 22.0% у Opus 4.5 без них!Маленькая и дешёвая модель обошла флагман просто потому что знала, что именно ей нужно делать. Это работает в обе стороны: если у тебя Haiku или локальная модель, skills могут помочь компенсировать разницу в интеллекте. Для миллионеров, использующих Opus на повседневке, со Skills прирост ещё больше (+23.3%). Сейчас мы как раз занимаемся разработкой Spring Skills. Один из скиллов называется spring-explore. Зачем он? Перед задачами, где нужно сначала разобраться в проекте, этот skill помогает агенту собрать первичный контекст о Spring Boot-приложении. Прежде чем браться за задачу, агент должен понять контекст: стек, модульную структуру, доменные сущности, репозитории, сервисы, DTO, мапперы и REST-слой. Потому что без явного сценария модели исследуют проект хаотично: лезут не туда, смотрят лишнее, тратят время, токены и tool calls на всё подряд. Внутри spring-explore исследование разбито на этапы: ☑️ сначала агент по запросу предсказывает, какие сущности и компоненты вообще могут быть затронуты ☑️ затем выбирает только релевантные пути исследования ☑️ после этого строит конкретный план MCP-вызовов, выполняет его ☑️ и на выходе собирает exploration report с implicit assumptions. Каждый этап жёстко ограничен: что смотреть, что пропускать и когда вообще не нужно вызывать инструменты. А вся проектная информация в исследовательском цикле должна собираться через Spring MCP: получить описание сущности, найти репозитории, сервисы, контроллеры, мапперы, DTO и другие связанные компоненты. Все Spring Skills опубликованы на GitHub, поэтому давайте пробовать, пишите фидбек и не забывайте ставить звёздочки ⭐️
RetryTemplate, @Retryable и @ConcurrencyLimit доступны без отдельной зависимости. @Retryable работает и с реактивными типами (через Retry из Project Reactor); для обычных вызовов используется RetryTemplate с политикой retry/backoff. @ConcurrencyLimit помогает ограничивать доступ к ресурсу, что особенно полезно с Virtual Threads.
Особое внимание команда Spring уделила AI Agent-ам и потенциальной поддержке тулинга для AI Agent-ов в рамках проекта Spring Tools.
📎 Полный текст: https://habr.com/ru/companies/spring_aio/articles/1034282/Давно известный факт: подавляющая часть (более половины) IT проектов оказываются неуспешными. Имеется в виду, что IT продукт либо сильно задерживается по времени, либо становиться существенно более дорогим, либо попросту становиться нерабочим. У подобной мрачной статистики много причин. В эти выходные, Михаил опубликовал статью, посвященную одной из этих причин. Возможно, многие даже узнают в этой истории свой проект. Приятного чтения.📎 Читать на Хабре: https://habr.com/ru/companies/spring_aio/articles/1033330/
Спасибо ребятам из @spring_aio за предоставленный для розыгрыша мерч-бокс 🔥 Если хотите попытать удачу, то жмите сюда!😉 СМОТРЕТЬ НА YOUTUBE 😄 СМОТРЕТЬ В VK ВИДЕО 🥰 СМОТРЕТЬ НА RUTUBE
Endi mavjud! Telegram Tadqiqoti 2025 — yilning asosiy insaytlari 
