Forwarded from Amplicode
This media is not supported in your browser
VIEW IN TELEGRAM
Хотите запустить сервис в Docker или Kubernetes? Amplicode поможет с настройкой Docker Compose, Helm-чартов и Terraform файлов — всё генерируется и настраивается в пару кликов.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥37👍12❤4👎3
🏎 Насколько Java быстрая?
Некоторые считают Java раздутым монстром, а Rust — чемпионом производительности. Но что, если взглянуть на современную Java с Vector API и многопоточностью?
В новом переводе от команды Spring АйО посмотрим на запуск масштабной симуляции частиц и сравним результаты. Правда ли, что бывалая Java всё ещё умеет удивлять?
⚠️ Сравнение performance-а языков всегда было холиварной темой. Рекомендуем расценивать статью как приглашение к конструктивной дискуссиии, а не как призыв к конкретному действию.
📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/962604/
Некоторые считают Java раздутым монстром, а Rust — чемпионом производительности. Но что, если взглянуть на современную Java с Vector API и многопоточностью?
В новом переводе от команды Spring АйО посмотрим на запуск масштабной симуляции частиц и сравним результаты. Правда ли, что бывалая Java всё ещё умеет удивлять?
📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/962604/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍33🔥14❤12
Для тех, кто был слишком занят на неделе или просто пропустил некоторые посты, публикуем дайджест!
– Не пиши на JavaScript, AWS не сдюжил, HTTP/3 не панацея | Spring АйО Подкаст №40
– JEP 401: Value классы и объекты
– Ошибки, которые инженеры совершают при код-ревью
– Final должен быть значением по умолчанию для Java-классов
– Насколько Java быстрая?
– JPoint 2025: полный плейлист
– Amplicode: Генерация отдельных Liquibase/Flyway выражений через визуальные инструменты
– Axiom JDK выпускает Axiom Spring
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥4❤3
Media is too big
VIEW IN TELEGRAM
💬 Аудио версию подкаста можно найти в комментариях
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥23👍14❤5
🐳 DockerHub удаляет старые JDK теги — ваши пайплайны могут быть под угрозой
Если вы используете openjdk:<tag> образы в CI/CD и пулите их с Docker Hub, Вам следует оперативно перепроверить свои пайплайны: мейнтейнеры DockerHub удалили ряд устаревших тегов без громких анонсов. Некоторые сборки уже не работают — пострадали сотни пользователей.
В данной новости эксперт сообщества Spring АйО Михаил Поливаха рассказывает, что произошло, почему это проблема, и какие есть альтернативы.
📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/963782/
Если вы используете openjdk:<tag> образы в CI/CD и пулите их с Docker Hub, Вам следует оперативно перепроверить свои пайплайны: мейнтейнеры DockerHub удалили ряд устаревших тегов без громких анонсов. Некоторые сборки уже не работают — пострадали сотни пользователей.
В данной новости эксперт сообщества Spring АйО Михаил Поливаха рассказывает, что произошло, почему это проблема, и какие есть альтернативы.
📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/963782/
👍19❤9🤯8🔥2👎1👌1
Недавно прошла офлайн-дискуссия с нашим участием, на которой удалось поднять вечные вопросы: "Стоит ли платить за коммерческую поддержку?", "Зачем нужна LTS-версия?".
Поговорили про релизы Java и Spring, про отношения вендоров и заказчиков и про то, почему стабильность — понятие растяжимое.
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥13👍8❤7⚡1
🎯 Ну всё! Теперь точно Final
Относительно недавно вышел JDK 25, про который мы активно писали. Через полгода будет релиз JDK 26 который, помимо прочего, таргетирует JEP 500, который стремится сделать final поля на самом деле final.
В данной статье на Хабр, эксперт сообщества, Михаил Поливаха, поведает про краткую историю вопроса с final, что с final в Java не так, и как Java платформа докатилась до жизни такой.
📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/964962/
Относительно недавно вышел JDK 25, про который мы активно писали. Через полгода будет релиз JDK 26 который, помимо прочего, таргетирует JEP 500, который стремится сделать final поля на самом деле final.
В данной статье на Хабр, эксперт сообщества, Михаил Поливаха, поведает про краткую историю вопроса с final, что с final в Java не так, и как Java платформа докатилась до жизни такой.
📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/964962/
🔥23👍11❤6🤯2⚡1
🎉 Встречаем Spring AI Agents и Spring AI Bench
Java-разработчикам теперь доступен мощный инструментарий для работы с агентными ИИ-системами: Spring AI представила проекты Agents и Bench.
В новом переводе от команды Spring АйО рассмотрим, как первый обеспечивает удобную абстракцию для работы с CLI ИИ-агентами, а второй — предлагает реалистичные бенчмарки для оценки их эффективности в задачах enterprise-разработки.
📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/965294/
Java-разработчикам теперь доступен мощный инструментарий для работы с агентными ИИ-системами: Spring AI представила проекты Agents и Bench.
В новом переводе от команды Spring АйО рассмотрим, как первый обеспечивает удобную абстракцию для работы с CLI ИИ-агентами, а второй — предлагает реалистичные бенчмарки для оценки их эффективности в задачах enterprise-разработки.
📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/965294/
2❤16👍10🔥5👎3⚡1🤔1🤯1
Forwarded from Amplicode
😎 Работа с объектами в HTTP-запросах
Работать с объектами намного удобнее и безопаснее, чем со строками: IDE подсказывает поля, типы проверяются на этапе компиляции – меньше шансов ошибиться.
Connekt, построенный на Kotlin DSL, позволяет использовать все эти преимущества при работе с HTTP-запросами — результат можно сразу сохранять в объект, а затем передавать его дальше по сценарию, например, в следующий шаг авторизации или повторно использовать данные без лишнего парсинга.
😏 Больше фич для работы с HTTP
Работать с объектами намного удобнее и безопаснее, чем со строками: IDE подсказывает поля, типы проверяются на этапе компиляции – меньше шансов ошибиться.
Connekt, построенный на Kotlin DSL, позволяет использовать все эти преимущества при работе с HTTP-запросами — результат можно сразу сохранять в объект, а затем передавать его дальше по сценарию, например, в следующий шаг авторизации или повторно использовать данные без лишнего парсинга.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🤔11❤5🔥3👎1
🎲 Сравнение собеседований в 8 крупных технологических компаниях
В новом переводе от команды Spring АйО Пунит Патвари недавно принял предложение о работе в Atlassian на должность ведущего инженера-программиста (Principal Software Engineer). За три месяца он прошёл более 60 собеседований в 11 компаниях, как он мне рассказал, и отказался ещё от трёх процессов после того, как согласился на предложение от Atlassian — включая собеседование в Meta.
* Meta признана экстремистcкой организацией в России
📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/965926/
В новом переводе от команды Spring АйО Пунит Патвари недавно принял предложение о работе в Atlassian на должность ведущего инженера-программиста (Principal Software Engineer). За три месяца он прошёл более 60 собеседований в 11 компаниях, как он мне рассказал, и отказался ещё от трёх процессов после того, как согласился на предложение от Atlassian — включая собеседование в Meta.
* Meta признана экстремистcкой организацией в России
📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/965926/
🔥19👍10❤4⚡3
🚀 Spring Framework 7.0 — новая эпоха Spring официально началась
Spring команда выкатили GA релиз Spring Framework 7.0 — это старт нового поколения фреймворка с фокусом на Java 25 и фундамент для Spring Boot 4.0, который на момент выпуска поста пока не вышел в GA.
Что нового:
🛑 Поддержка Java 25 (LTS) при сохранении baseline на Java 17
🛑 Переезд на Jakarta EE 11: Servlet 6.1, JPA 3.2, Bean Validation 3.1
🛑 Широкая адоптация JSpecify в рамках всей экосистемы Spring
🛑 Поддержка Jackson 3.0 (2.x пока можно, но уже deprecated)
🛑 Kotlin 2.2 и JUnit 6.0
Из новых фич, которые стоит посмотреть:
🛑 Программная регистрация бинов (более гибкий подход, чем XML/аннотации)
🛑 Core resilience features — встроенная устойчивость к сбоям
🛑 Новый JmsClient
🛑 API versioning на уровне фреймворка
🛑 Расширенная конфигурация HTTP Interface Client
🛑 RestTestClient для более удобного тестирования HTTP
Обратите внимание, что для Spring Framework 6 и 7 одинаковая baseline версия Java - 17. Если вы уже используете Java 17, то для перехода на Spring Framework 7 вам не потребуется повторно обновлять версию JDK.
Тем не менее, Java 25 постепенно станет дефолтом для enterprise-приложений на Spring
Spring команда выкатили GA релиз Spring Framework 7.0 — это старт нового поколения фреймворка с фокусом на Java 25 и фундамент для Spring Boot 4.0, который на момент выпуска поста пока не вышел в GA.
Что нового:
Из новых фич, которые стоит посмотреть:
Обратите внимание, что для Spring Framework 6 и 7 одинаковая baseline версия Java - 17. Если вы уже используете Java 17, то для перехода на Spring Framework 7 вам не потребуется повторно обновлять версию JDK.
Тем не менее, Java 25 постепенно станет дефолтом для enterprise-приложений на Spring
Please open Telegram to view this post
VIEW IN TELEGRAM
❤43👍22🔥13
Media is too big
VIEW IN TELEGRAM
💬 Аудио версию подкаста можно найти в комментариях
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤10🔥7👍5😁3
😭 Технический долг — это больно. А архитектурный?
В новой статье очень чётко объясняется, почему основная проблема не в «грязном коде», а в том, что фатальные перекосы рождаются на уровнях, куда разработчики обычно даже не смотрят.
На уровне приложений всё вроде просто: слишком много сервисов, половина — SaaS, данные лежат где попало. Это тот случай, когда «немного архитектурного долга» превращается в рост расходов и бесконечные сроки поставки.
А вот бизнес-слой — штука коварнее. Когда процессы не документированы, «владельцы» непонятны, а «фантомные» схемы живут в Confluence с 2017 года, компания начинает строить планы на неверных предпосылках. Тут уже не про код — тут про то, что неправильная схема процессов может парализовать пол-организации быстрее, чем любой упавший микросервис.
И наконец — стратегический уровень. Это та точка, где неверно определённые бизнес-возможности превращают многолетнюю стратегию в упражнение «стрельнули мимо, но уверенно». Стратегический долг редко заметен сразу, но именно он блокирует трансформации и закрепляет ошибочные решения на годы вперёд.
Вывод простой: архитектурный долг — это не про классы и паттерны, а про системную слепоту. Хорошая новость — архитекторы как раз и существуют для того, чтобы её лечить: собирать данные, строить модели, показывать несостыковки и помогать выбрать, где долг критичен, а где — допустим.
Статья на Хабр "Почему архитектурный долг опаснее технического?"
В новой статье очень чётко объясняется, почему основная проблема не в «грязном коде», а в том, что фатальные перекосы рождаются на уровнях, куда разработчики обычно даже не смотрят.
На уровне приложений всё вроде просто: слишком много сервисов, половина — SaaS, данные лежат где попало. Это тот случай, когда «немного архитектурного долга» превращается в рост расходов и бесконечные сроки поставки.
А вот бизнес-слой — штука коварнее. Когда процессы не документированы, «владельцы» непонятны, а «фантомные» схемы живут в Confluence с 2017 года, компания начинает строить планы на неверных предпосылках. Тут уже не про код — тут про то, что неправильная схема процессов может парализовать пол-организации быстрее, чем любой упавший микросервис.
И наконец — стратегический уровень. Это та точка, где неверно определённые бизнес-возможности превращают многолетнюю стратегию в упражнение «стрельнули мимо, но уверенно». Стратегический долг редко заметен сразу, но именно он блокирует трансформации и закрепляет ошибочные решения на годы вперёд.
Вывод простой: архитектурный долг — это не про классы и паттерны, а про системную слепоту. Хорошая новость — архитекторы как раз и существуют для того, чтобы её лечить: собирать данные, строить модели, показывать несостыковки и помогать выбрать, где долг критичен, а где — допустим.
Статья на Хабр "Почему архитектурный долг опаснее технического?"
❤19🔥13👍9
🔥 В Spring 7 завезли нативное версионирование API
База нововведения —
В контроллерах появляется новый атрибут
Хочешь гибкости — прописываешь
На клиентской стороне —
Тестовые клиенты работают по той же логике.
Статья на Хабр "Нативный API Versioning в Spring 7: долгожданная официальная поддержка"
Демо-проект с тестами и примерами
Документация
База нововведения —
ApiVersionStrategy. Он понимает, где искать версию (header, query, media type или путь), умеет её парсить как семантическую, знает поддерживаемый диапазон и может автоматически выставлять Deprecation/Sunset-заголовки. То есть вместо самодельных фильтров теперь есть один официальный механизм.В контроллерах появляется новый атрибут
version:
@GetMapping(path = "/account/{id}", version = "1.1")
public Account get() { ... }
Хочешь гибкости — прописываешь
"1.1+", и метод будет жить до тех пор, пока ты явно не создашь новую версию. Функциональные эндпоинты тоже подтянулись — у них теперь есть предикат version("1.2").На клиентской стороне —
ApiVersionInserter, который один раз настраиваешь:
RestClient client = RestClient.builder()
.baseUrl("http://localhost:8080")
.apiVersionInserter(ApiVersionInserter.useHeader("API-Version"))
.build();
// И дальше только версия
client.get().uri("/account/1")
.apiVersion(1.1)
.retrieve()
.body(Account.class);
Тестовые клиенты работают по той же логике.
Статья на Хабр "Нативный API Versioning в Spring 7: долгожданная официальная поддержка"
Демо-проект с тестами и примерами
Документация
❤39👍29🔥22🤩3🤔1🤯1
Forwarded from Amplicode
О программировании с помощью AI-агентов трубят из-за каждого угла. Последнее время появилось достаточно много инструментов, которые буквально пишут код за разработчика.
Наша команда следит за индустрией ИИ в разработке достаточно давно. Помимо внедрения ИИ в сам процесс разработки наших продуктов, мы активно занимаемся интеграцией Amplicode с современными AI-агентами и не только.
И у нас есть свои мысли на этот счет)
📚 Читать на Хабр: https://habr.com/ru/companies/haulmont/articles/925088/
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14❤7👍7
Spring Boot перешёл на новую мажорную версию — 4.0.0. Релиз состоялся 20 ноября 2025 года, его анонсировал Phil Webb от имени всей команды Spring. Новая версия построена на Spring Framework 7-ой версии.
Михаил Поливаха также выложил небольшую статью на Habr, где описал мотивацию за главным структурным изменением Spring Boot 4 - разбиением Spring Boot на модули.
Главное:
• Полная модульность: кодовая база переразбита на меньшие и точечно используемые JAR'ы.
• Null safety благодаря JSpecify: везде, по всем проектам Spring.
• Поддержка Java 25 (и сохранена совместимость с Java 17).
• API Versioning: встроенные средства управления версиями REST-API.
• HTTP Service Clients: новый стандартный способ описывать REST-клиентов.
Команда Spring предоставила отдельное руководство по миграции.
Материалы от сообщества Spring АйО на тему Spring 7 и Spring Boot 4:
• Нативный API Versioning в Spring 7: долгожданная официальная поддержка
• Jackson 3 ворвался в Spring
• Состояние HTTP-клиентов в Spring
• Spring Boot 4 и Spring Framework 7: Ключевые фичи и изменения
• Вышел Spring Framework 7.0
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥64👍26❤17
😎 Перестаньте думать и начните уже писать код!
Джефф Атвуд говорит вслух то, что многие думают, но редко признают. Можно часами гонять UML и вылизывать диаграммы, но без живого прототипа все эти решения — чистая фантазия на тему «как бы оно выглядело, если бы существовало».
Мысль статьи довольно жёсткая, но предельно понятная: сколько бы вы ни планировали, первый дизайн почти наверняка окажется неверным. И единственный способ принимать осмысленные архитектурные решения — писать код, получать обратную связь, менять подход и снова писать код. Итерации, а не медитации над белой доской.
📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/967474/
Джефф Атвуд говорит вслух то, что многие думают, но редко признают. Можно часами гонять UML и вылизывать диаграммы, но без живого прототипа все эти решения — чистая фантазия на тему «как бы оно выглядело, если бы существовало».
Мысль статьи довольно жёсткая, но предельно понятная: сколько бы вы ни планировали, первый дизайн почти наверняка окажется неверным. И единственный способ принимать осмысленные архитектурные решения — писать код, получать обратную связь, менять подход и снова писать код. Итерации, а не медитации над белой доской.
📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/967474/
👍31❤7🔥4⚡3🤔1
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Бесплатный оффлайн митап в МСК
На предстоящем Java Rock Stars Meetup для вас выступят две легенды из мира Java:
🟣 Роман Елизаров с докладом "От языков программирования к Developer Experience"
🟣 Алексей Рагозин с докладом "JDK Flight Recorder в Java 25"
Участие абсолютно бесплатное. Главное – зарегистрироваться!
P.S. Как классно было в прошлый раз можете оценить по прикрепленному шортсу)
На предстоящем Java Rock Stars Meetup для вас выступят две легенды из мира Java:
Участие абсолютно бесплатное. Главное – зарегистрироваться!
P.S. Как классно было в прошлый раз можете оценить по прикрепленному шортсу)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19❤9👍9
Михаил Поливаха, эксперт сообщества Spring АйО и контрибьютор в Spring, поделился своими мыслями по поводу issue под номером 35725, который на первый взгляд может показаться неоднозначным.
В версии Spring Framework 7.1 (предположительно) появится возможность нативно исполнять Python, JavaScript и другие noscripting-языки — благодаря интеграции с GraalPy, GraalJS и Truffle. Почему это вообще стало возможным?
GraalVM переживает перестройку: Oracle выводит проект из жёсткой привязки к Java SE, переосмысляет приоритеты и активнее ищет рынки для GraalJS/GraalPy. Эти направления продолжают активно развиваться — и как раз становятся фундаментом для будущей поддержки скриптов в Spring.
Важно: Spring и GraalVM исторически «дружат» ещё со времён Spring Native. Graal часто использует Spring Petclinic в своих демо, а Spring — один из ключевых потребителей AOT-технологий, Leyden и связанных инициатив. Поэтому усиление интеграции — логичный шаг.
Что это даст Spring?
— возможность встраивать скриптовые плагины, DSL и расширения без JVM-обвязки
— шанс усилить позицию в экосистеме AOT/fast startup
— поддержку Graal-линейки продуктов, что укрепляет союз с Oracle
Но стоит понимать и риски: новый API будет нишевым, а неаккуратное использование может легко привести к провалам в части security. Потому массовым решением это вряд ли станет.
Одним из драйверов всей инициативы считается Sébastien Deleuze — лидер Spring Framework, ранее создатель Spring Native и большой энтузиаст Kotlin и Graal. Многие в комьюнити отмечают, что благодаря его видению удалось «подтянуть» Spring к новой AOT-эпохе.
P.S. Эксперт сообщества Евгений Сулейманов отметил, что по его мнению ставка Spring на GraalVM — это не «хайп», а игра в долгую. Если Oracle найдёт устойчивые продуктовые ниши для GraalVM, Spring почти гарантированно станет дефолтным enterprise-фреймворком для полиглот-платформ нового поколения. Важно учитывать это, если вы планируете архитектуру на горизонте 5–7 лет.
@spring_aio
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯35👍18🔥6👎5⚡2❤2😁2
Media is too big
VIEW IN TELEGRAM
💬 Аудио версию подкаста можно найти в комментариях
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥26👍10❤8
🤩 Прямой эфир про Spring Data JDBC с Михаилом Поливахой
Онлайн, 9 декабря в 17:00 (МСК) команда Amplicode совместно со Spring АйО проведёт митап про Spring Data JDBC!
В программе:
– Как правильно строить и использовать агрегаты в Spring Data JDBC.
– Почему API устроено так, как устроено — взгляд изнутри от участника разработки Spring Data.
– Фильтрация данных, удобные DTO, реализация бизнес-операций.
Участие бесплатное. Обязательно зарегистрируйтесь, чтобы не пропустить.
🔗 https://events.amplicode.ru/spring-data-jdbc
Онлайн, 9 декабря в 17:00 (МСК) команда Amplicode совместно со Spring АйО проведёт митап про Spring Data JDBC!
В программе:
– Как правильно строить и использовать агрегаты в Spring Data JDBC.
– Почему API устроено так, как устроено — взгляд изнутри от участника разработки Spring Data.
– Фильтрация данных, удобные DTO, реализация бизнес-операций.
Участие бесплатное. Обязательно зарегистрируйтесь, чтобы не пропустить.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥26❤7👍6⚡1