Чашечка Java
8.57K subscribers
3.88K photos
13 videos
56 files
6.33K links
Лучшие материалы по Java на русском и английском

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels
Download Telegram
Новые milestone-релизы в Spring: выпущены обновления Spring Boot 4.0, Spring Security 7.0, Authorization Server 2.0 и других проектов. Улучшения охватывают поддержку новых функций, исправления ошибок и обновления зависимостей, расширяя экосистему Spring.

Подробности: https://www.infoq.com/news/2025/07/spring-news-roundup-jul21-2025/

#en

@a_cup_of_java | Другие наши каналы
Быстрый старт контроллера шаговых двигателей SMSD–4.2CAN в режиме драйвера

Приводятся инструкции, которые помогут сделать первые шаги в экспериментах с контроллером в режиме драйвера шагового двигателя SMSD–4.2CAN под маркой НПО «Электропривод». Это настройка контроллера в режиме драйвера и запуск шагового двигателя с помощью программы CANopen Builder Limited v1.0, запуск двигателя из консоли, программ, написанных на языках С++ и Java, в которых потребуется библиотека CHAI для преобразователя интерфейсов USB–CAN ГКМН.468351.017-03 КБ «Марафон».

Первые две части представляют собой расшифровку лекций прочитанных Белобородовым А.В. и Харьюзовым П.Р. в 2024–2025 годах.


Читать: https://habr.com/ru/articles/931862/?utm_campaign=931862

@a_cup_of_java | Другие наши каналы
🤨1
Новинки Java: выпущен CLI-инструмент для доступа к Quarkus MCP Server, вышел второй бета-релиз Groovy 5.0, обновлены JHipster Lite и GraalVM Native Build Tools. Также доступны новые сборки JDK 25 и JDK 26 с исправлениями. Подробнее в свежем обзоре.

Подробности: https://www.infoq.com/news/2025/07/java-news-roundup-jul21-2025/

#en

@a_cup_of_java | Другие наши каналы
Новый Jakarta EE 11: поддержка виртуальных потоков и Java records

В Jakarta EE 11 появилась поддержка Java 17 и 21, виртуальных потоков и записей. Представлена новая спецификация Jakarta Data для упрощённого доступа к базам. Обновлён набор тестов и улучшена совместимость платформы. Новые горизонты Jakarta EE: что ждать от версии 12

Jakarta EE 12 готовит поддержку полиглот-хранения данных с объединённым API для SQL и NoSQL, расширяет возможности Jakarta Data и вводит улучшенную конфигурацию. Выход ожидается в июле 2026 года с фокусом на консистентность и удобство.

Подробности: https://www.infoq.com/articles/jakarta-ee-11-overview/

#en

@a_cup_of_java | Другие наши каналы
Гайд по использованию Spring GraphQL

Привет, Хабр!

Меня зовут Дмитрий, и я бэкенд-разработчик в SENSE с 10-летним опытом. За это время я успел поработать с финтех-проектами, автоматизировал обработку заказов для интернет-магазинов, но GraphQL долгое время оставался для меня загадочной технологией – я просто не сталкивался с ним в работе. А когда он мне понадобился, то обнаружил, что толковых материалов по Spring-реализации GraphQL очень мало. Поэтому, я решил не только разобраться самостоятельно в теме, но и написать гайд для тех, кто, как и я, только начинает погружаться в эту тему.

Разбираться будем постепенно: в первой статье покажу, как создать проект с GraphQL с нуля. Поехали!


Читать: https://habr.com/ru/companies/it_sense/articles/932054/?utm_campaign=932054

@a_cup_of_java | Другие наши каналы
Ошибки Java по ГОСТу: обзор и примеры

Ошибки в Java по ГОСТу? Да, в этой статье мы вам расскажем, что это за ГОСТ, какие категории ошибок в нём существуют, какие из них относятся к Java, и даже покажем примеры из реальных проектов.


Читать: https://habr.com/ru/companies/pvs-studio/articles/932070/?utm_campaign=932070

@a_cup_of_java | Другие наши каналы
Введение в Jimmer ORM

Совсем недавно статью про ORM-фреймворк Jimmer Михаила Поливахи, эксперта сообщества Spring АйО, опубликовал Baeldung.

Перед вами переработанная и дополненная версия, подготовленная специально для сообщества Spring АйО. В ней Михаил раскрывает ключевые особенности Jimmer: отсутствие JPA-наследия,  декларативные DTO и гибкий DSL и потенциальную интеграцию со Spring.


Читать: https://habr.com/ru/companies/spring_aio/articles/932096/?utm_campaign=932096

@a_cup_of_java | Другие наши каналы
JEP 519: Компактные заголовки объектов — теперь официально

Команда Spring АйО представляет одну немаловажную фичу Java 25: компактные заголовки объектов (Compact Object Headers). Это позволит JVM экономить память и ускоряться без вмешательства в код.


Читать: https://habr.com/ru/companies/spring_aio/articles/932162/?utm_campaign=932162

@a_cup_of_java | Другие наши каналы
3
Тестируем Kafka с Testcontainers

Привет, Хабр!

Сегодня мы рассмотрим, как протестировать Kafka с помощью Testcontainers.

Testcontainers — это библиотека, которая из JUnit-теста запускает Docker-контейнеры как обычные Java-объекты. Вы пишете пару строк — а на фоне поднимается полноценная инфраструктура: база, брокер, Redis, что угодно. После теста контейнер гарантированно останавливается, поэтому окружение всегда чистое, а CI не засоряется процессами.

Kafka в Testcontainers запускается теми же двумя строками. Получаем реальный брокер, который ничем не отличается от продакшен-копии, но живёт ровно столько, сколько идёт тест.


Читать: https://habr.com/ru/companies/otus/articles/931264/?utm_campaign=931264

@a_cup_of_java | Другие наши каналы
👍41
Когда State уже не спасает: путь к Statechart

В мире разработки программного обеспечения управление состоянием объекта - одна из фундаментальных задач. Когда поведение объекта должно меняться в зависимости от его внутреннего состояния, разработчики часто обращаются к паттерну State. Однако здесь и возникает путаница: его нередко отождествляют с более общей концепцией — State Machine (Конечный автомат), а то и вовсе не видят разницы.

Погрузимся в мир управления состояниями — от простого к сложному!


Читать: https://habr.com/ru/articles/931962/?utm_campaign=931962

@a_cup_of_java | Другие наши каналы
❤‍🔥3
PVS-Studio доступен в OpenIDE

Этот момент настал — теперь наш плагин доступен для загрузки из маркетплейса OpenIDE. Более подробно рассказываем в этой статье.


Читать: https://habr.com/ru/companies/pvs-studio/articles/932866/?utm_campaign=932866

@a_cup_of_java | Другие наши каналы
👍4
Java в 2025 году: взгляд на результаты опроса Stack Overflow

Рустам Курамшин, эксперт Spring АйО, разобрал свежий отчёт Stack Overflow за 2025 год о результатах ежегодного опроса разработчиков за 2025 год, и это отличный повод взглянуть на экосистему Java через призму статистики и интересов сообщества.


Читать: https://habr.com/ru/companies/spring_aio/articles/933180/?utm_campaign=933180

@a_cup_of_java | Другие наши каналы
👍1
Фичи будущего в интерфейсе, которые можно и нельзя использовать в 2025 году: разбираем Baseline 2025

Какие CSS- и HTML-фичи войдут в вёрстку к 2025 году? Разбираем доклад Михаила Балицкого (Яндекс) о Baseline 2025: сабгриды, попапы без JS, анимации скролла и почему SASS ещё рано списывать.

Читать: «Фичи будущего в интерфейсе, которые можно и нельзя использовать в 2025 году: разбираем Baseline 2025»

@a_cup_of_java | Другие наши каналы
JEP 520: Метод-трейсинг и тайминг в JFR — замер времени конкретных методов без кода и агентов

Команда Spring АйО провела небольшое исследование JEP 520. В Java 25 JFR (Java Flight Recorder) позволит точно отслеживать выполнение конкретных методов — без изменения исходников, без логирования и без сторонних Java-агентов.


Читать: https://habr.com/ru/companies/spring_aio/articles/933306/?utm_campaign=933306

@a_cup_of_java | Другие наши каналы
Как Java-разработчику эффективно решать алгоритмические задачи

Многие Java-разработчики боятся алгоритмических задач (и я один из тех, кто включается в каждую дискуссиую на тему надобности алго-собесов для бигтеха). Они кажутся чем-то из параллельной реальности: где-то там, в университетах, на LeetCode, в собеседованиях в FAANG и контестах.

Но реальность такова: если вы хотите расти — алгоритмы знать нужно или хотя бы желательно. И не только ради собесов. Они в действительности помогают мыслить как инженер: структурировать задачи, оценивать сложность, писать оптимальный код, ну и шаблонно мыслить :)

Я расскажу, как можно подойти к этому процессу системно и без боли — на основе личного опыта Java-разработчика и преподавателя.
Решаем алгоритмы

Читать: https://habr.com/ru/articles/932998/?utm_campaign=932998

@a_cup_of_java | Другие наши каналы
Новинки Java: EclipseStore 3.0 и Gradle 9.0 вышли с улучшениями, а Hibernate ORM, Reactive и Search достигли стадии релиз-кандидатов. Piranha Cloud теперь под крылом Eclipse Foundation. Также вышли обновления Quarkus, Micronaut и LangChain4j. Подробнее — в свежем обзоре.

Подробности: https://www.infoq.com/news/2025/08/java-news-roundup-jul28-2025/

#en

@a_cup_of_java | Другие наши каналы
Аннотация Lazy как спасение от циклических зависимостей

В прошлом посте команда Spring АйО подробно разобрала, как @Lazy помогает экономить ресурсы и ускорять старт приложения. Но забыли упомянуть ещё один крайне полезный кейс применения этой аннотации — борьбу с циклическими зависимостями.


Читать: https://habr.com/ru/companies/spring_aio/articles/931170/?utm_campaign=931170

@a_cup_of_java | Другие наши каналы
JEP 511: Импорт модулей в Java 25 — как упростить работу с библиотеками

Команда Spring АйО проанализировала JEP 511: импорт модулей. Теперь можно будет одним импортом подключать все пакеты, которые экспортирует модуль. Это сильно упростит работу с большими библиотеками, особенно в прототипах и обучении.


Читать: https://habr.com/ru/companies/spring_aio/articles/933476/?utm_campaign=933476

@a_cup_of_java | Другие наши каналы
Explyt Spring Debugger

Всем привет! На связи команда Explyt Spring. Недавно была статья от JetBrains, а также ее перевод на Habr, где они рассказывали о новом плагине Spring Debugger и о том как используют нативный код Spring для лучшего понимания контекста приложения. С помощью non-suspending breakpoints JetBrains “вклиниваются” в жизненный цикл Spring и собирают все необходимые для плагина данные. Но ведь это почти тоже что и мы пытались делать в нашем плагине с помощью javaagent, о котором писали статьи. И нам даже показалось, что они вдохновлялись нашими статьями, первая из которых увидела свет в октябре 2024 года (возможно только показалось).

Нужно отдать должное тому как они интегрировали эту идею в плагин - данные о контексте сами подгружаются в процессе дебага, максимально прозрачно для пользователя и без лишних действий с его стороны. У нас же, требовалось загружать контекст приложения вручную, выбрав соответствующую “ран” конфигурацию, на основе которой мы получали данные о приложении, что стало предметом конструктивной критики со стороны пользователей.

Нам эта идея понравилась, к тому же у нас почти все готово - есть javaagent с помощью которого мы патчим байт код Spring и получаем его контекст, поэтому возьмем текущий наш механизм и просто улучшим UX и посмотрим что из этого получилось.


Читать: https://habr.com/ru/companies/explyt/articles/933158/?utm_campaign=933158

@a_cup_of_java | Другие наши каналы
3👍1
ИИ против разума: битва за навыки программиста

ИИ — мощный инструмент, но он может сделать своим бездумным ретранслятором. Читайте, как сохранить мастерство, создавать с нуля, разбираться в ошибках и развивать мышление, чтобы побеждать в эпоху искусственного интеллекта.

Читать: https://tprg.ru/vgon

#ru

@a_cup_of_java | Другие наши каналы
Java и ООП: путешествие туда и обратно

Недавно на подкасте Spring АйО мы обсуждали новые свитчи в Джаве - с паттерн-матчингом и деструктуризацией. Я тогда ещё выразил мнение, что всё это неправославно, по зумерски и отход от принципов ООП.

Не от ипкапсуляции, полиморфизма и наследования, а вообще от подхода. Новые свитчи будут провоцировать разработчиков писать код по новому, а не так, как завещали нам наши далёкие предки. С нарушением традиций, норм и устоев. Как учит Кейси Муратори, если вы понимаете о ком я.

Но какие они вообще были эти устои? Каким было ООП, когда всё только началось и чем это отличается от свитчей, до которых мы в конце концов докатились?


Читать: https://habr.com/ru/companies/spring_aio/articles/934514/?utm_campaign=934514

@a_cup_of_java | Другие наши каналы
🤷‍♂21