Quarkus 3.19 Prepares for LTS Release 3.20
One month after the release of Quarkus 3.18.0, version 3.19.0 was released in February 2025. This is the last release before the next long-term support (LTS) version, 3.20.0, which is now feature complete and scheduled to be released on March 26th according to the Release Planning guide. The new release uses the new @ConfigMapping infrastructure, UBI 9 images and Mockito’s inline strategy.
By Johan Janssen
Read: https://www.infoq.com/news/2025/03/quarkus-3-19/
@a_cup_of_java | Другие наши каналы
One month after the release of Quarkus 3.18.0, version 3.19.0 was released in February 2025. This is the last release before the next long-term support (LTS) version, 3.20.0, which is now feature complete and scheduled to be released on March 26th according to the Release Planning guide. The new release uses the new @ConfigMapping infrastructure, UBI 9 images and Mockito’s inline strategy.
By Johan Janssen
Read: https://www.infoq.com/news/2025/03/quarkus-3-19/
@a_cup_of_java | Другие наши каналы
Принципы SOLID и основы построения коммерческой организации
Привет, дорогой друг!
Сегодня я тебе объясню принципы SOLID максимально понятным способом.
Для того чтобы совсем упростить задачу, в этом тексте не будет ни единой строчки кода.
Представь себе, что ты решил заняться бизнесом.
Первым делом ты организуешь небольшую торговую компанию. Ты только начинаешь свой путь в бизнесе, и поэтому всё делаешь сам. И закупаешь товар, и развозишь его по точкам, и ведёшь учёт, и ремонтируешь грузовую газель.
Но заказы растут, обороты увеличиваются, и вот ты уже нанимаешь менеджера по закупкам, чтобы покупал, менеджера по продажам, чтобы продавал, ремонтника, чтобы чинил, и бухгалтера, чтобы считал.
Людей в твоей команде немного, все друг друга знают, вы как одна большая дружная семья. И нет-нет, но периодически, кто-нибудь из сотрудников пытается взять себе дополнительные полномочия из чужой области. То ремонтник порывается съездить на рынок и закупить товар (ему же по дороге), то продажник научить ремонтника как правильно чинить технику (он всё детство провёл в гараже, где они с друзьями чинили папину волгу), то бухгалтерша Галина Петровна решает всех построить и взять на себя часть руководящих функций.
В результате никто не знает, кто за что отвечает, ответственность размывается, и люди перестают понимать, где находятся границы их зоны ответственности.
Но ты стоишь на страже интересов бизнеса! Железной рукой ты пресекаешь безобразия и вводишь жёсткий принцип – каждый сотрудник отвечает только за своё поле деятельности, у каждого своя ответственность, и никто в чужой огород лазать не смей. Закупщик – только закупает. Продажник – только продаёт. Каждый сотрудник должен иметь только одну зону ответственности.
Читать: https://habr.com/ru/articles/890528/?utm_campaign=890528
@a_cup_of_java | Другие наши каналы
Привет, дорогой друг!
Сегодня я тебе объясню принципы SOLID максимально понятным способом.
Для того чтобы совсем упростить задачу, в этом тексте не будет ни единой строчки кода.
Представь себе, что ты решил заняться бизнесом.
Первым делом ты организуешь небольшую торговую компанию. Ты только начинаешь свой путь в бизнесе, и поэтому всё делаешь сам. И закупаешь товар, и развозишь его по точкам, и ведёшь учёт, и ремонтируешь грузовую газель.
Но заказы растут, обороты увеличиваются, и вот ты уже нанимаешь менеджера по закупкам, чтобы покупал, менеджера по продажам, чтобы продавал, ремонтника, чтобы чинил, и бухгалтера, чтобы считал.
Людей в твоей команде немного, все друг друга знают, вы как одна большая дружная семья. И нет-нет, но периодически, кто-нибудь из сотрудников пытается взять себе дополнительные полномочия из чужой области. То ремонтник порывается съездить на рынок и закупить товар (ему же по дороге), то продажник научить ремонтника как правильно чинить технику (он всё детство провёл в гараже, где они с друзьями чинили папину волгу), то бухгалтерша Галина Петровна решает всех построить и взять на себя часть руководящих функций.
В результате никто не знает, кто за что отвечает, ответственность размывается, и люди перестают понимать, где находятся границы их зоны ответственности.
Но ты стоишь на страже интересов бизнеса! Железной рукой ты пресекаешь безобразия и вводишь жёсткий принцип – каждый сотрудник отвечает только за своё поле деятельности, у каждого своя ответственность, и никто в чужой огород лазать не смей. Закупщик – только закупает. Продажник – только продаёт. Каждый сотрудник должен иметь только одну зону ответственности.
Читать: https://habr.com/ru/articles/890528/?utm_campaign=890528
@a_cup_of_java | Другие наши каналы
Grokаем виджеты: пишем код с Grok 3 от Маска
Тестируем возможности нейросети Grok 3 от Илона Маска для кодинга: генерируем веб-виджеты, сравниваем с ChatGPT и DeepSeek, разбираем плюсы и минусы.
Читать: «Grokаем виджеты: пишем код с Grok 3 от Маска»
@a_cup_of_java | Другие наши каналы
Тестируем возможности нейросети Grok 3 от Илона Маска для кодинга: генерируем веб-виджеты, сравниваем с ChatGPT и DeepSeek, разбираем плюсы и минусы.
Читать: «Grokаем виджеты: пишем код с Grok 3 от Маска»
@a_cup_of_java | Другие наши каналы
Presentation: A Walk Along the Complexity-performance Curve
Richard Startin explores the relationship between complexity and performance through the lens of recent improvements to the Java String class, visiting continuous profiling and some assembly code.
By Richard Startin
Read: https://www.infoq.com/presentations/java-string-performance/
@a_cup_of_java | Другие наши каналы
Richard Startin explores the relationship between complexity and performance through the lens of recent improvements to the Java String class, visiting continuous profiling and some assembly code.
By Richard Startin
Read: https://www.infoq.com/presentations/java-string-performance/
@a_cup_of_java | Другие наши каналы
Парсим сайт для получения УДК иерархии
Предыстория:
У меня на домашнем ПК скопилось некоторое количество книг в электронном формате. Это в основной массе техническая литература. И мне хотелось всё это систематизировать. Придумывать не хочется, когда в книгах есть УДК, ББК классификаторы.
Читать: https://habr.com/ru/articles/890644/?utm_campaign=890644
@a_cup_of_java | Другие наши каналы
Предыстория:
У меня на домашнем ПК скопилось некоторое количество книг в электронном формате. Это в основной массе техническая литература. И мне хотелось всё это систематизировать. Придумывать не хочется, когда в книгах есть УДК, ББК классификаторы.
Читать: https://habr.com/ru/articles/890644/?utm_campaign=890644
@a_cup_of_java | Другие наши каналы
Null-safety в Spring приложении с JSpecify и NullAway
Новый перевод от команды Spring АйО расскажет о проблемах, вызываемых неожиданным появлением
Читать: https://habr.com/ru/companies/spring_aio/articles/890558/?utm_campaign=890558
@a_cup_of_java | Другие наши каналы
Новый перевод от команды Spring АйО расскажет о проблемах, вызываемых неожиданным появлением
NullPointerException в продакшен, о способах борьбы с этой проблемой, над которыми работает команда Java и о скором выходе новых решений, которые помогут разработчикам навсегда избавиться от этого кошмара. Читать: https://habr.com/ru/companies/spring_aio/articles/890558/?utm_campaign=890558
@a_cup_of_java | Другие наши каналы
Заглянули в хрустальный шар, а там ваше будущее показывают
Так и видим, как вы сидите в Доме IT-карьеры и выбираете себе вакансию по душе. В наш хрустальный шар заглянуть не дадим, слишком сакральный инструмент, а вот в окошки самого дома можете смело подглядывать самостоятельно.
Реклама
Так и видим, как вы сидите в Доме IT-карьеры и выбираете себе вакансию по душе. В наш хрустальный шар заглянуть не дадим, слишком сакральный инструмент, а вот в окошки самого дома можете смело подглядывать самостоятельно.
Реклама
Концерт для Java с ИИ — разработка готовых к продакшен LLM приложений
Команда Spring АйО перевела и адаптировала доклад Томаса Витале “Concerto for Java and AI — Building Production-Ready LLM Applications”, в котором рассказывается по шагам, как усовершенствовать интерфейс приложения с помощью больших языковых моделей (LLM). В качестве примера автор доклада на глазах слушателей разрабатывает приложение-ассистент для композитора, пишущего музыку для фильмов.
Доклад будет опубликован двумя частями. В первой части рассказывается о том, как возникла проблема, какие подходы автор доклада применил к ее решению и как реализовать автоматическую классификацию персональных заметок композитора по типам, используя ИИ.
Читать: https://habr.com/ru/companies/spring_aio/articles/890966/?utm_campaign=890966
@a_cup_of_java | Другие наши каналы
Команда Spring АйО перевела и адаптировала доклад Томаса Витале “Concerto for Java and AI — Building Production-Ready LLM Applications”, в котором рассказывается по шагам, как усовершенствовать интерфейс приложения с помощью больших языковых моделей (LLM). В качестве примера автор доклада на глазах слушателей разрабатывает приложение-ассистент для композитора, пишущего музыку для фильмов.
Доклад будет опубликован двумя частями. В первой части рассказывается о том, как возникла проблема, какие подходы автор доклада применил к ее решению и как реализовать автоматическую классификацию персональных заметок композитора по типам, используя ИИ.
Читать: https://habr.com/ru/companies/spring_aio/articles/890966/?utm_campaign=890966
@a_cup_of_java | Другие наши каналы
Разница между @Component, @Controller, @Service и @Repository в Spring
Статья на Java67 объясняет различия между аннотациями Spring. @Component используется для обобщённых классов, @Controller — для контроллеров в MVC, @Service — для бизнес-логики, а @Repository — для доступа к данным. Каждая аннотация помогает Spring управлять классами в определённом контексте. Лучшие онлайн-курсы по программированию: от Python до DevOps
Ищете качественные курсы для прокачки навыков в IT? Эта статья предлагает обширный список курсов, включая дизайн систем, Spring, Python и DevOps. Независимо от уровня подготовки, найдется подходящий для вас курс. Ознакомьтесь с полным списком и начните обучение!
Подробности: http://www.java67.com/2022/06/difference-between-component-service-repository-in-spring.html
#en
@a_cup_of_java | Другие наши каналы
Статья на Java67 объясняет различия между аннотациями Spring. @Component используется для обобщённых классов, @Controller — для контроллеров в MVC, @Service — для бизнес-логики, а @Repository — для доступа к данным. Каждая аннотация помогает Spring управлять классами в определённом контексте. Лучшие онлайн-курсы по программированию: от Python до DevOps
Ищете качественные курсы для прокачки навыков в IT? Эта статья предлагает обширный список курсов, включая дизайн систем, Spring, Python и DevOps. Независимо от уровня подготовки, найдется подходящий для вас курс. Ознакомьтесь с полным списком и начните обучение!
Подробности: http://www.java67.com/2022/06/difference-between-component-service-repository-in-spring.html
#en
@a_cup_of_java | Другие наши каналы
Простой редактор текста by java through design
Всем привет. Для того чтобы писать код нужен удобный инструмент, кто-то пользуется IDE, кто-то редакторами текста Emacs, VIM. Зачастую, чтобы программисту было удобно, разработчику надо соблюсти много нюансов, тоесть в одном случае есть ускорение разработки, но решение тяжеловесное, в другом случае, разработчик, чтобы пользоваться редактором начинает писать код, чтобы писать код. Конечно это крайности, и проще поставить IDE/VSCode/etc... , но что если можно найти эту золотую середину!?
Неоднократно автор пытался делать текстовый редактор, но что-то было всё не то, пока не вспомнил, что есть старый добрый SWING, и java by design иногда круто и интересно.
В этой статье хочу показать как получилось минимальными усилиями сделать то, что на С или С++ потребует больших знаний без QT/GTK/etc...
Читать: https://habr.com/ru/articles/891044/?utm_campaign=891044
@a_cup_of_java | Другие наши каналы
Всем привет. Для того чтобы писать код нужен удобный инструмент, кто-то пользуется IDE, кто-то редакторами текста Emacs, VIM. Зачастую, чтобы программисту было удобно, разработчику надо соблюсти много нюансов, тоесть в одном случае есть ускорение разработки, но решение тяжеловесное, в другом случае, разработчик, чтобы пользоваться редактором начинает писать код, чтобы писать код. Конечно это крайности, и проще поставить IDE/VSCode/etc... , но что если можно найти эту золотую середину!?
Неоднократно автор пытался делать текстовый редактор, но что-то было всё не то, пока не вспомнил, что есть старый добрый SWING, и java by design иногда круто и интересно.
В этой статье хочу показать как получилось минимальными усилиями сделать то, что на С или С++ потребует больших знаний без QT/GTK/etc...
Читать: https://habr.com/ru/articles/891044/?utm_campaign=891044
@a_cup_of_java | Другие наши каналы
Как исправить java.lang.NoClassDefFoundError в Spring Boot
Столкнулись с ошибкой NoClassDefFoundError при запуске Spring Boot приложения? Причиной может быть несовместимая версия библиотеки Spring в вашем проекте. Решение — обновить версию зависимости, например, spring-web, на более актуальную. Избавившись от конфликта версий, ошибка пропадает. Избегаем распространённых ошибок с зависимостями в Spring Boot
В статье обсуждается важность правильного использования зависимостей в Spring Boot. Автор предупреждает о рисках смешения индивидуальных и стартеров зависимостей и предлагает проверять их на полноту, чтобы избежать ошибок при загрузке классов.
Подробности: http://www.java67.com/2018/05/how-to-javalangnoclassdeffounderror-Spring-Boot-SmartInitializingBean.html
#en
@a_cup_of_java | Другие наши каналы
Столкнулись с ошибкой NoClassDefFoundError при запуске Spring Boot приложения? Причиной может быть несовместимая версия библиотеки Spring в вашем проекте. Решение — обновить версию зависимости, например, spring-web, на более актуальную. Избавившись от конфликта версий, ошибка пропадает. Избегаем распространённых ошибок с зависимостями в Spring Boot
В статье обсуждается важность правильного использования зависимостей в Spring Boot. Автор предупреждает о рисках смешения индивидуальных и стартеров зависимостей и предлагает проверять их на полноту, чтобы избежать ошибок при загрузке классов.
Подробности: http://www.java67.com/2018/05/how-to-javalangnoclassdeffounderror-Spring-Boot-SmartInitializingBean.html
#en
@a_cup_of_java | Другие наши каналы
Эпоха TypeScript: почему JavaScript без строгой типизации умирает? Или нет?
Представьте: вы запускаете новый функционал на продакшен, всё кажется отлично — но через час приходит сообщение от коллег: «Всё сломалось». Знакомо? Для JavaScript-разработчиков это обычная ситуация. Вместе разберёмся, почему так происходит и как TypeScript может спасти от бессонных ночей с дебаггером.
Читать: «Эпоха TypeScript: почему JavaScript без строгой типизации умирает? Или нет?»
@a_cup_of_java | Другие наши каналы
Представьте: вы запускаете новый функционал на продакшен, всё кажется отлично — но через час приходит сообщение от коллег: «Всё сломалось». Знакомо? Для JavaScript-разработчиков это обычная ситуация. Вместе разберёмся, почему так происходит и как TypeScript может спасти от бессонных ночей с дебаггером.
Читать: «Эпоха TypeScript: почему JavaScript без строгой типизации умирает? Или нет?»
@a_cup_of_java | Другие наши каналы
👍1
Reverse shell на Java или кошмар сисадмина
По итогам расследований нескольких инцидентов с безопасностью, рассказываю что еще из «зубастого и рогатого» бывает на свете. Еще один повод бросить это ваше ИТ и уйти в монастырь.
Читать: https://habr.com/ru/articles/891058/?utm_campaign=891058
@a_cup_of_java | Другие наши каналы
По итогам расследований нескольких инцидентов с безопасностью, рассказываю что еще из «зубастого и рогатого» бывает на свете. Еще один повод бросить это ваше ИТ и уйти в монастырь.
Читать: https://habr.com/ru/articles/891058/?utm_campaign=891058
@a_cup_of_java | Другие наши каналы
CRaC в Java
Привет, Хабр!
Сегодня рассмотрим CRaC — это технология, позволяющая создать контрольную точку работающего Java-приложения, сохранив его полное состояние: память, потоки, системные ресурсы и прочее. Иными словами, вы проводите полную инициализацию приложения один раз, делаете «снимок», а затем при повторном запуске восстанавливаете это состояние, обходя долгую процедуру холодного старта.
Читать: https://habr.com/ru/companies/otus/articles/889334/?utm_campaign=889334
@a_cup_of_java | Другие наши каналы
Привет, Хабр!
Сегодня рассмотрим CRaC — это технология, позволяющая создать контрольную точку работающего Java-приложения, сохранив его полное состояние: память, потоки, системные ресурсы и прочее. Иными словами, вы проводите полную инициализацию приложения один раз, делаете «снимок», а затем при повторном запуске восстанавливаете это состояние, обходя долгую процедуру холодного старта.
Читать: https://habr.com/ru/companies/otus/articles/889334/?utm_campaign=889334
@a_cup_of_java | Другие наши каналы
👍3
Создаём HTTP-сервер на Java NIO
Привет, Хабр!
В этой статье создадим HTTP-сервер на чистом Java NIO, без всяких Spring Boot, Jetty и прочих фреймворков. Будем разбираться, как работает неблокирующее I/O, что такое Selector, SocketChannel, и как заставить сервер обрабатывать тысячи запросов одновременно без запуска тысяч потоков.
Читать: https://habr.com/ru/companies/otus/articles/889062/?utm_campaign=889062
@a_cup_of_java | Другие наши каналы
Привет, Хабр!
В этой статье создадим HTTP-сервер на чистом Java NIO, без всяких Spring Boot, Jetty и прочих фреймворков. Будем разбираться, как работает неблокирующее I/O, что такое Selector, SocketChannel, и как заставить сервер обрабатывать тысячи запросов одновременно без запуска тысяч потоков.
Читать: https://habr.com/ru/companies/otus/articles/889062/?utm_campaign=889062
@a_cup_of_java | Другие наши каналы
👍1
Java News Roundup: Jakarta NoSQL 1.0, Spring 7.0-M3, Maven 4.0-RC3, LangChain4j 1.0-beta2
This week's Java roundup for March 10th, 2025 features news highlighting: OpenJDK JEPs targeted and proposed to target for JDK 25; the release of Jakarta NoSQL 1.0; the third milestone release of Spring Framework 7.0; the third release candidate of Maven 4.0; and the second beta release of LangChain4j 1.0.
By Michael Redlich
Read: https://www.infoq.com/news/2025/03/java-news-roundup-mar10-2025/
@a_cup_of_java | Другие наши каналы
This week's Java roundup for March 10th, 2025 features news highlighting: OpenJDK JEPs targeted and proposed to target for JDK 25; the release of Jakarta NoSQL 1.0; the third milestone release of Spring Framework 7.0; the third release candidate of Maven 4.0; and the second beta release of LangChain4j 1.0.
By Michael Redlich
Read: https://www.infoq.com/news/2025/03/java-news-roundup-mar10-2025/
@a_cup_of_java | Другие наши каналы
👍2
TrueSql – заново учимся ходить в базу данных. Часть 3 – транзакции и соединения
Принято считать, что транзакции, сессии и контекст это что-то сложное. Но в TrueSql работать с транзакциями очень просто и прозрачно, а понятий "сессия" и "контекст" просто не существует. Сегодня рассказываем как работать с транзакциями и соединениями в TrueSql. Быстро объясняем внутреннее устройство.
Читать: https://habr.com/ru/articles/888158/?utm_campaign=888158
@a_cup_of_java | Другие наши каналы
Принято считать, что транзакции, сессии и контекст это что-то сложное. Но в TrueSql работать с транзакциями очень просто и прозрачно, а понятий "сессия" и "контекст" просто не существует. Сегодня рассказываем как работать с транзакциями и соединениями в TrueSql. Быстро объясняем внутреннее устройство.
Читать: https://habr.com/ru/articles/888158/?utm_campaign=888158
@a_cup_of_java | Другие наши каналы
Идеи ничего не стоят
Команда Spring АйО перевела статью одного из создателей Hibernate, в которой он объясняет, почему ему часто приходится отвергать новые и хорошие идеи, и почему это на самом деле не означает, что он является врагом всего нового.
Читать: https://habr.com/ru/companies/spring_aio/articles/891436/?utm_campaign=891436
@a_cup_of_java | Другие наши каналы
Команда Spring АйО перевела статью одного из создателей Hibernate, в которой он объясняет, почему ему часто приходится отвергать новые и хорошие идеи, и почему это на самом деле не означает, что он является врагом всего нового.
Читать: https://habr.com/ru/companies/spring_aio/articles/891436/?utm_campaign=891436
@a_cup_of_java | Другие наши каналы
Свежая вакансия в Gehtsoft
Gehtsoft — компания по разработке ПО — ищет Tech Lead Java Developer.
Чем вы будете заниматься:
— разработкой и тестированием новых функций, — устранением причин инцидентов, поддержкой инфраструктуры;
— ускорением выхода продуктов на рынок и повышением их ценности для клиентов;
— снижением технического долга.
Где: удалённо
Опыт: 4+ лет
Вакансия и как отправить отклик: https://tprg.ru/Fm7Y
#вакансии #работа
Gehtsoft — компания по разработке ПО — ищет Tech Lead Java Developer.
Чем вы будете заниматься:
— разработкой и тестированием новых функций, — устранением причин инцидентов, поддержкой инфраструктуры;
— ускорением выхода продуктов на рынок и повышением их ценности для клиентов;
— снижением технического долга.
Где: удалённо
Опыт: 4+ лет
Вакансия и как отправить отклик: https://tprg.ru/Fm7Y
#вакансии #работа
Podcast: Building LinkedIn’s Resilient Data Storage: A Deep Dive into Derived Data Storage with Felix GV
In this podcast, Felix GV, Principal Staff Engineer at LinkedIn, discusses how to create and operate planet-scale data storage solutions for derived data. When it’s time to build a new system, how do you decide on the pieces that must be fitted to ensure a resilient operating system?
By Felix GV
Read: https://www.infoq.com/podcasts/building-linkedin-resilient-data-storage/
@a_cup_of_java | Другие наши каналы
In this podcast, Felix GV, Principal Staff Engineer at LinkedIn, discusses how to create and operate planet-scale data storage solutions for derived data. When it’s time to build a new system, how do you decide on the pieces that must be fitted to ensure a resilient operating system?
By Felix GV
Read: https://www.infoq.com/podcasts/building-linkedin-resilient-data-storage/
@a_cup_of_java | Другие наши каналы
👍1
Как читать сообщения, если никто из брокеров не предоставил удобный интерфейс
Пишите вы себе EDA на основе Apache Kafka, и ваши сервисы тщательно логируют все свои действия, процесс отлажен и работает годами. Вдруг один из сервисов отчитался в логах, что отправил событие в брокер, но другой по какой-то его не прочитал. Как понять, кто виноват?
Как правило, брокер сообщений между сервисами – черная коробка, которая работает, что называется «As Is». Разработчики подключают зависимости, вешают аннотации консюмеров и продюсеров, оно заводится и все рады. Но что они там подключили и как это работает никто не видит.
Так давайте же посмотрим, как мы можем открыть этот чёрный ящик на примере наиболее популярных брокеров сообщений.
Читать: https://habr.com/ru/companies/axenix/articles/886042/?utm_campaign=886042
@a_cup_of_java | Другие наши каналы
Пишите вы себе EDA на основе Apache Kafka, и ваши сервисы тщательно логируют все свои действия, процесс отлажен и работает годами. Вдруг один из сервисов отчитался в логах, что отправил событие в брокер, но другой по какой-то его не прочитал. Как понять, кто виноват?
Как правило, брокер сообщений между сервисами – черная коробка, которая работает, что называется «As Is». Разработчики подключают зависимости, вешают аннотации консюмеров и продюсеров, оно заводится и все рады. Но что они там подключили и как это работает никто не видит.
Так давайте же посмотрим, как мы можем открыть этот чёрный ящик на примере наиболее популярных брокеров сообщений.
Читать: https://habr.com/ru/companies/axenix/articles/886042/?utm_campaign=886042
@a_cup_of_java | Другие наши каналы