Чашечка Java
9.24K subscribers
3.7K photos
12 videos
55 files
5.83K links
Лучшие материалы по Java на русском и английском

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

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

Другие каналы: @tproger_channels
Download Telegram
Фичи будущего в интерфейсе, которые можно и нельзя использовать в 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
Уязвимости XXE в разрезе Java

В этой статье мы рассмотрим дефект безопасности XXE в контексте Java. Поговорим о причинах возникновения и возможных последствиях, посмотрим на примеры и, конечно, обсудим способы защиты.


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

@a_cup_of_java | Другие наши каналы
JobRunr 8.0: умное планирование задач с заботой об экологии

Новая версия JobRunr предлагает carbon-aware scheduling — запуск задач в часы с низким углеродным следом, поддержку Kotlin сериализации и удобный центр уведомлений на дашборде. Эти функции помогут разработчикам создавать более устойчивые приложения.

Подробности: https://www.infoq.com/news/2025/08/jobrunr-8-carbon-aware/

#en

@a_cup_of_java | Другие наши каналы
Kafka умеет синхронно. В Spring Boot

Apache Kafka — король асинхронного взаимодействия в микросервисных архитектурах. Но что если нужно получить ответ сразу?

Перевод от команды Spring АйО шаг за шагом покажет, как превратить Kafka в инструмент синхронной коммуникации — с настройкой ReplyingKafkaTemplate, топиками для ответа и тайм-аутами.


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

@a_cup_of_java | Другие наши каналы
😴31
Kotlin для бэкенд разработки: преимущества и примеры

Kotlin, современный язык программирования от JetBrains, уже давно зарекомендовал себя не только в Android‑разработке, но и как мощная альтернатива Java для бэкенд‑разработки. Kotlin полностью совместим с Java, работает на JVM и предлагает более лаконичный, безопасный и выразительный синтаксис.


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

@a_cup_of_java | Другие наши каналы
🥱7👎3❤‍🔥1
StarRocks 3.5: Snapshot, Load Spill, партиции, MV, транзакции, безопасность

StarRocks 3.5 приносит точечные улучшения по надёжности, производительности и безопасности: кластерные Snapshot для DR в архитектуре shared-data (разделение хранения и вычислений), оптимизацию пакетной загрузки (Load Spill) для сокращения мелких файлов и пропуска Compaction, более гибкое управление жизненным циклом партиций (слияние по времени и автоматический TTL), многооператорные транзакции для ETL, ускорение запросов по озеру данных через автоматические глобальные словари, а также поддержку OAuth 2.0 и JWT.


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

@a_cup_of_java | Другие наши каналы
Java vs Kotlin: у кого больше преимуществ в 2025 году

В 2018 я впервые познакомился с Kotlin, и он мне практически сразу понравился. Да и как можно не полюбить язык, названный в честь тотемного животного всех программистов? Шучу, на самом деле в честь острова.

Я уже несколько лет пишу бэкенд на Kotlin. До этого писал на Java, но переход совершил практически одномоментно, потому что тогда мне  казалось, что Kotlin закрывает множество минусов Java и привносит более простой и лаконичный синтаксис.  Но при этом я стараюсь следить за тем, как развивается Java.


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

@a_cup_of_java | Другие наши каналы
Как читать тело HttpServletRequest в Spring Boot несколько раз

Если поискать в интернете решение задачи «How to read HttpServletRequest multiple times», то можно найти множество ответов - и на Stack Overflow, и на Baeldung. Но все ли они подходят для всех случаев?


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

@a_cup_of_java | Другие наши каналы
Конфигурация Spring Security на пальцах

В новом переводе от команды Spring АйО мы рассмотрим решение для регистрации и аутентификации пользователя через клиентское JavaScript-приложение с использованием инфраструктуры Spring Security, а также access и refresh токенов.

Существует множество базовых примеров работы со Spring Security, поэтому цель данной статьи — более подробно описать возможный процесс с помощью блок-схем.


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

@a_cup_of_java | Другие наши каналы
Таро врёт! В отличие от нашей IT-колоды

Цифровые арканы говорят с вами и проливают свет на ранее неведомые потоки информации. Вытяните «Карту дня» и получите мудрый совет судьбы: https://tprg.ru/nbw1

Реклама
2
Как не багнуться: почему плавание — лучший спорт для тех, кто сидит за компьютером

Работа в IT может быть по-настоящему вредной. Не из-за дедлайнов, багов или багрепортов. Главная угроза — сидячий образ жизни. По 8 и более часов в день мы находимся в одном и том же положении, что негативно сказывается на осанке, кровообращении, работе мышц и даже когнитивных способностях. Чтобы ум оставался продуктивным, тело должно быть в порядке. Ведь даже самый продвинутый искусственный интеллект не будет работать без надежного железа, а человеческий интеллект работает только в здоровом теле.

Одним из лучших видов физической активности для «сидячих» профессионалов считается плавание. Почему? Давайте разбираться.


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

@a_cup_of_java | Другие наши каналы
Осторожно: @Size не проверяет на null! Как я пропустил баг

Почему @Size(min = 1) в Spring не проверяет null и пропускает пустые поля? Разбираем реальный кейс с формой отзыва, объясняем поведение @Size, @NotBlank, @NotNull и показываем, как правильно валидировать обязательные поля в Spring Boot.

Читать: «Осторожно: @Size не проверяет на null! Как я пропустил баг»

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