Используешь 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
👍31🔥8❤5😁3
Forwarded from OpenIDE
🔥 Роман Елизаров про AI в разработке ПО, OpenSource и культуру IT
Большая часть интервью — про практику. Насколько хорошо ИИ-агенты пишут код сегодня, где они реально помогают, а где создают дополнительные риски.
Поговорили о качестве сгенерированного кода, границе ответственности, безопасности, конфликте интересов между разработчиками и безопасниками, а также о монополизации в Open Source.
В конце — про будущее профессии: как будут выглядеть инструменты разработки, куда расти инженеру в эпоху автоматизации и есть ли у разработчика жизнь вне кода.
😉 СМОТРЕТЬ НА YOUTUBE
😄 СМОТРЕТЬ В VK ВИДЕО
🥰 СМОТРЕТЬ НА RUTUBE
Большая часть интервью — про практику. Насколько хорошо ИИ-агенты пишут код сегодня, где они реально помогают, а где создают дополнительные риски.
Поговорили о качестве сгенерированного кода, границе ответственности, безопасности, конфликте интересов между разработчиками и безопасниками, а также о монополизации в Open Source.
В конце — про будущее профессии: как будут выглядеть инструменты разработки, куда расти инженеру в эпоху автоматизации и есть ли у разработчика жизнь вне кода.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🔥11⚡5❤2
☕️ 23 января 1996 года — день, с которого началась Java как мы ее знаем
Друзья, ровно в этот день вышла первая стабильная версия Java Development Kit 1.0. Не демка и не академический эксперимент, а полноценный набор инструментов для разработчиков: компилятор javac, интерпретатор байткода, VM и стандартная библиотека. Все, чтобы писать, собирать и запускать Java-приложения «из коробки».
Для своего времени это был настоящий прорыв. Код можно было написать один раз и запускать на разных платформах — без необходимости компиляции под разные ABI ОС и разные CPU ISAs. Именно тогда появилась идея, которая позже превратится в мем, а затем — в индустриальный стандарт:
Интересно, что Java изначально рождалась не как «удобный язык», а как ответ на вполне конкретные инженерные боли. Как говорил James Gosling в одном из интервью:
Отсюда — управляемая память, строгая модель типов и ставка на безопасность, которая в 90-х выглядела почти радикально.
Несколько любопытных фактов вдогонку:
🛑 Изначально Java задумывалась для embedded-устройств, а вовсе не для веба и enterprise. Массовое использование Java в Web — результат эволюции платформы, а не исходный план.
🛑 Многие вещи, которые когда-то подавались как Java киллер фичи, со временем либо полностью исчезли из JDK, либо стали устаревшими. Например:
– Java Serialization API
– Java Applets
– Java RMI
– и ряд других технологий, когда-то казавшихся «будущим»
Первая версия JDK была далека от сегодняшней экосистемы, но именно с нее начался путь, который привел нас к современным JVM, Spring, микросервисам, облакам и enterprise-разработке. И удивительно, сколько фундаментальных решений, принятых почти 30 лет назад, до сих пор лежат в основе того, чем мы пользуемся каждый день.
👀 А вы помните, с какой версии 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 Serialization API
– Java Applets
– Java RMI
– и ряд других технологий, когда-то казавшихся «будущим»
Первая версия JDK была далека от сегодняшней экосистемы, но именно с нее начался путь, который привел нас к современным JVM, Spring, микросервисам, облакам и enterprise-разработке. И удивительно, сколько фундаментальных решений, принятых почти 30 лет назад, до сих пор лежат в основе того, чем мы пользуемся каждый день.
👀 А вы помните, с какой версии Java начали работать вы?
Please open Telegram to view this post
VIEW IN TELEGRAM
❤73🔥24👍17🤩2
Для тех, кто был слишком занят на неделе или просто пропустил некоторые посты, публикуем дайджест!
– Проект Panama, собесим Михала Поливаху, Node.js профакапились | Spring АйО Подкаст №47
– JVM ещё жива, но уже бесполезна: как Netflix научился убивать её по GC
– Observability-as-Code в Spring Boot: Контракты и тесты для метрик, логов и трейсов
– Почему Kotlin ломает JPA
– 23 января 1996 года — день, с которого началась Java как мы ее знаем
– OpenIDE: Роман Елизаров про AI в разработке ПО, OpenSource и культуру IT
– JPoint: Александр Шустанов — Из Postman в код: Connekt и новый взгляд на тестирование API
Please open Telegram to view this post
VIEW IN TELEGRAM
❤13👍7🔥7
Forwarded from Amplicode
«Безобидный» активатор IntelliJ IDEA — это не патч лицензии, а полноценный Java-агент, который встраивается в JVM до старта IDE
Shell-скрипт сначала ставит зависимости (на Linux — через
С этого момента сторонний код получает доступ и может менять байткод любых классов — включая стандартную библиотеку Java.
Дальше начинается самое интересное.
Агент:
— блокирует DNS и HTTP-запросы к серверам лицензирования JetBrains
— скрывает своё присутствие, подменяя списки VM-аргументов и загрузку классов
— патчит
Это фундаментальная операция для RSA (криптографический алгоритм с открытым ключом). То есть компрометируется не только проверка лицензии, а вся криптография внутри JVM процесса IDE: HTTPS, Git over SSL, подписи, API-аутентификация.
Фактически вы работаете в среде, где нельзя доверять результатам криптографических проверок.
Отдельный слой рисков — системный. Скрипт получает root-права на время установки, модифицирует shell-конфиги и загружает исполняемый код с сервера третьей стороны. Что именно окажется в JAR’ках завтра — пользователь не контролирует.
И, наконец, юридические риски. Использование пиратского ПО — прямое нарушение ст. 146 УК РФ. В корпоративной среде порог «крупного ущерба» достигается очень быстро: достаточно нескольких нелегальных лицензий. В случае инцидента крайним почти всегда оказывается тот, кто установил софт.
Подробный технический разбор — от shell-скрипта до патча криптопримитивов — в новой статье на Хабре.
👉 Любая IDE от JetBrains бесплатно: что на самом деле происходит, когда вы запускаете “безобидный” активатор
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 бесплатно: что на самом деле происходит, когда вы запускаете “безобидный” активатор
Хабр
Любая IDE от JetBrains бесплатно: что на самом деле происходит, когда вы запускаете “безобидный” активатор
Оглавление Введение Shell скрипт установки. Первая линия компрометации. Java-агент и архитектура обхода защиты JetBrains IDEA Риски безопасности Возможные последствия Легальные альтернативы...
👎48👍23🤯17🔥12😁4❤3
Media is too big
VIEW IN TELEGRAM
💬 Аудио версию подкаста можно найти в комментариях
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥8❤7
Настоящая устойчивость систем — в архитектуре. В новом переводе от команды Spring АйО — 8 фундаментальных паттернов проектирования, на которых держатся все современные data engineering-стеки.
Освоив их, вы перестанете тушить пожары и начнёте проектировать платформы, которые выдерживают продакшен.
📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/990336/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18❤8🔥8
Что делать, когда инфраструктура, сдерживавшая злоумышленников, внезапно начинает мешать легитимным клиентам? В Dodo Payments такой момент наступил в 23:00 в четверг — и стал точкой невозврата.
В новом переводе от команды Spring АйО подробно разберем переход с классического ingress-контроллера на полноценный service mesh. Миграция заняла 11 недель и навсегда изменила подход к платформенной инженерии.
📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/990674/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥11❤6
🔥 Redis. Больше, чем просто кеш
Пора перестать воспринимать Redis как временное хранилище key-value. Сегодня это многофункциональный движок, объединяющий в себе брокер сообщений с поддержкой Pub/Sub, гео-БД с Spatial-индексами, и надежный инструмент синхронизации через распределенные блокировки (Redlock). Современный Redis, потенциально, может заменить стек из 3–4 узкоспециализированных сервисов.
В новом переводе от команды Spring АйО рассмотрим, как использовать Redis на полную катушку и превратить его в фундамент вашей архитектуры.
📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/991088/
Пора перестать воспринимать Redis как временное хранилище key-value. Сегодня это многофункциональный движок, объединяющий в себе брокер сообщений с поддержкой Pub/Sub, гео-БД с Spatial-индексами, и надежный инструмент синхронизации через распределенные блокировки (Redlock). Современный Redis, потенциально, может заменить стек из 3–4 узкоспециализированных сервисов.
В новом переводе от команды Spring АйО рассмотрим, как использовать Redis на полную катушку и превратить его в фундамент вашей архитектуры.
📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/991088/
🔥29❤19👍17
Forwarded from OpenIDE
🔥 Fullstack проект на React, Python, Go и Spring: OpenIDE в действии
В новом видео Михаил Поливаха, Павел Кислов и Александр Шустанов проверяют OpenIDE на прочность в работе с мультиязычным стеком.
По ходу видео эксперты рассказывают про типичные инженерные вещи — тестирование, прикладную бизнес-логику и интеграцию компонентов.
В финале — краткие итоги и разговор про роль AI в разработке и инструментах программирования.
😉 СМОТРЕТЬ НА YOUTUBE
😄 СМОТРЕТЬ В VK ВИДЕО
🥰 СМОТРЕТЬ НА RUTUBE
В новом видео Михаил Поливаха, Павел Кислов и Александр Шустанов проверяют OpenIDE на прочность в работе с мультиязычным стеком.
По ходу видео эксперты рассказывают про типичные инженерные вещи — тестирование, прикладную бизнес-логику и интеграцию компонентов.
В финале — краткие итоги и разговор про роль AI в разработке и инструментах программирования.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22❤12🔥9👎1
Для тех, кто был слишком занят на неделе или просто пропустил некоторые посты, публикуем дайджест!
– Зачем убивать JVM, статья Евгения Сулейманова, почему Kotlin ломает JPA | Spring АйО Подкаст №48
– Redis. Больше, чем просто кеш.
– Больше чем Proxy: Istio вместо классического Nginx.
– Паттерны проектирования в Data Engineering, которые необходимо освоить в 2026 году
– Павел Кислов — OAuth 2, JWT, OIDC. Все, что нам недорассказали в Spring
– Amplicode: Быстрый старт окружения
– OpenIDE: Fullstack проект на React, Python, Go и Spring: OpenIDE в действии
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍7❤6
Please open Telegram to view this post
VIEW IN TELEGRAM
11👍89🔥69❤16⚡6🤩4
Media is too big
VIEW IN TELEGRAM
💬 Аудио версию подкаста можно найти в комментариях
Please open Telegram to view this post
VIEW IN TELEGRAM
❤19👍14🔥8
«Контейнер скомпрометирован». С этих слов начался трёхчасовой ночной кошмар с утечкой данных и полным отчётом об инциденте. Всё из-за банального запуска контейнера от root с лишними правами.
В новом переводе от команды Spring АйО — 11 конкретных шагов, которые помогут вам избежать катастрофы: от запуска от непривилегированного пользователя до минимальных образов, сканирования уязвимостей, изоляции сетей и настройки профилей безопасности.
Если вы разворачиваете контейнеры в продакшене — это руководство должно стать вашей чеклист-основой. Ошибка может стоить очень дорого.
📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/992696/
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥25❤10👍5🤯1
Горячий ключ кэша истёк — и за 2 секунды база получила 10 000 одновременных запросов. Попадания в кеш были ~ 95%, пятничных релизов не было, плохих запросов в БД никто не отправлял. Просто одновременно закончился TTL на тысячах инстансов. Они одномоментно не нашли данных в кеше и полезли за ними в БД
Что помогает, если ключи реально «горячие» (то есть, какие-то пары ключ/значение в кеше запрашиваются крайне часто).
– Stale-while-revalidate: если запись просрочена, но есть, то отдаём её сразу, а обновление запускаем параллельно.
– Probabilistic early expiration: часть запросов с небольшой вероятностью инициирует обновление до дедлайна, чтобы обновления распределились по времени.
– Mutex / single-flight: при промахе один запрос обновляет кэш под блокировкой, остальные ждут немного или получают stale; в базу уходит один запрос вместо тысячи.
Комбинация этих подходов в реальных системах снижает нагрузку на БД во время истечения срока на 50–90% и сглаживает пики задержек.
📚 Полный текст по ссылке: https://habr.com/ru/companies/spring_aio/articles/993140/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍27🔥14❤8
Друзья, каждый год мы проводим одно и то же исследование: смотрим, как меняется популярность ключевых зависимостей вокруг Spring по публичным проектам на GitHub (через dependency search). Это не истина в последней инстанции, но хорошая лакмусовая бумага: можно быстро понять, куда двигается массовая практика.
Сразу оговорка по методике:
🛑 1. Использование ключевых Spring Boot зависимостей растёт:spring-boot-starter-web+11%,spring-boot-starter-graphql+34%,spring-boot-starter-webflux+48%.
Неожиданный относительный ростspring-boot-starter-webfluxпри том, что ряд reactive проектов Spring Framework сансетит.
🛑 2. Data-слой растет во всех направлениях:spring-data-cassandra +3%,
spring-data-jpa +24%,
spring-data-jdbc +29%,
spring-data-redis +42%,
spring-data-mongodb +49%,
И непосредственно драйверыorg.postgresql +19%,
com.oracle.database.jdbc +80%,
mysql-connector-j +48%.
Здесь важна структура роста:🛑 JPA растет — Hibernate/JPA никуда не делись и остаются стандартом для большинства пользователей кейсов.🛑 Тем не менее, параллельно уверенно растет Spring Data JDBC. То есть, разработчики всё чаще ищут замену тяжеловесному Hibernate в мире ORM.
🛑 3. Микросервисная инфраструктура ускорилась:spring-cloud-consul-config
spring-cloud-config-server
Люди гораздо чаще используют Spring Cloud Config, чем интеграцию с Hashicorp Vault. Вероятно, это связано с тем, что Spring Cloud Config является проверенным временем решением под Apache License 2.0, где Hashicorp Vault является более редким решением, которое, к тому же, из-за политики лицензирования имеет ряд ограничений при использования в Production.
🛑 4. По API-докам видно, кто живет по инерции:
Springfox почти стоит (+5%),
Springdoc растет, но умеренно (+13%).
Springfox не исчез, но выглядит как технология поддержки существующих кодовых баз. Новые проекты все чаще выбирают OpenAPI-стек, просто без резких скачков от года к году.
🛑 5. Maven vs Gradle: без революции
По долям картина стабильная:
Maven ~81%, Gradle ~19% и в 2024, и в 2025. Большого перетока не видно. Скорее, Gradle уже давно стал значимой частью ландшафта, и так и остается.
🛑 6. MapStruct vs ModelMapper:
Если вынести маппинг DTO/Entity в отдельный мини-срез, получается любопытная картина:🛑 MapStruct — больше по базе и дает больший прирост в количестве: 67 700 → 102 000 (Δ +34 300, +51%)🛑 ModelMapper — растет быстрее по темпу, но стартует с меньшей базы: 47 652 → 78 520 (Δ +30 868, +65%)
Вывод простой: MapStruct остается “дефолтом” по массовому использованию, а ModelMapper выглядит как инструмент, который уверенно догоняет по темпам роста.
❓ А что будет в 2026? Обсудим в комментариях.
* Все данные получены анализом зависимостей, используемых в проектах на GitHub (dependency search)."
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍36🔥11❤9
Forwarded from TechMeetup
TechMeetup #11: Spring АйО x МТС Банк
🗒 Spring АйО собрали несколько интересных докладов, МТС Банк опять ждет в гости
Всё как всегда — четыре доклада, нетворкинг, афтепати и активности от партнера, но в новом формате со спикерами от русскоязычного сообщества Spring.
🗓 Когда: 26 февраля 2026, с 19:00 до 22:30 GMT+03:00 (онлайн и офлайн);
📍 Где (офлайн): Москва, м. Технопарк. Проспект Андропова 18, корпус 1. (Здание с вывеской МТС Банк, Медиарум);
👍 Участие: бесплатно
🎉 Нетворкинг: бесценно
🔗 Подробнее о программе на странице мероприятия
Не упусти возможность послушать опытных спикеров, обсудить актуальные темы и пообщаться с коллегами по цеху.
Ждем именно тебя🫵
🎁 Бонусы: еда и напитки в перерыве, маленький праздник среди недели. А вместе с нетворкингом и активностями от МТС Банка - время, проведенное с пользой и удовольствием.
⭐ Регистрируйся, места на офлайн часть ограничены
Spring АйО | МТС Банк
TechMeetup/Java | JVM | CFP: Подать доклад | Общалка и вопросы | Записи
Всё как всегда — четыре доклада, нетворкинг, афтепати и активности от партнера, но в новом формате со спикерами от русскоязычного сообщества Spring.
Не упусти возможность послушать опытных спикеров, обсудить актуальные темы и пообщаться с коллегами по цеху.
Ждем именно тебя
Spring АйО | МТС Банк
TechMeetup/Java | JVM | CFP: Подать доклад | Общалка и вопросы | Записи
Please open Telegram to view this post
VIEW IN TELEGRAM
❤16👍13🔥9👎2🤔1
Forwarded from OpenIDE
Современный senior Spring-разработчик просто обязан разбираться в Kubernetes!
Независимо от того, разворачиваете ли вы приложение в облаке или работаете с внутренним кластером компании, — без этих знаний уже никуда.
В новом докладе Илья Кучмин рассказал, что необходимо знать, какие есть подводные камни, на что обратить внимание и как применять инструменты деплоя в Kubernetes.
😉 СМОТРЕТЬ НА YOUTUBE
😄 СМОТРЕТЬ В VK ВИДЕО
Независимо от того, разворачиваете ли вы приложение в облаке или работаете с внутренним кластером компании, — без этих знаний уже никуда.
В новом докладе Илья Кучмин рассказал, что необходимо знать, какие есть подводные камни, на что обратить внимание и как применять инструменты деплоя в Kubernetes.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍40🔥16⚡7👎2