Чашечка Java – Telegram
Чашечка Java
8.94K subscribers
3.84K photos
12 videos
56 files
6.22K links
Лучшие материалы по Java на русском и английском

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

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

Другие каналы: @tproger_channels
Download Telegram
Как не сойти с ума с Grafana Unified Alerting: настраиваем алерт и разбираем все грабли

В какой-то момент простого дашборда уже не хватает. Хочется, чтобы метрики не просто “где-то красиво лежали”, а сами приходили и били в лицо, когда что-то пошло не так.

Разберёмся с Grafana Unified Alerting, expressions, темплейтами уведомлений и типичными ошибками, которые легко словить, если вы впервые лезете в алерты.


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

@a_cup_of_java | Другие наши каналы
Многопоточность без боли: моя шпаргалка для собесов в Java

Всем привет!)

Я работаю Senior Java Developer в одном из банков, и за последние годы мне пришлось пройти не одно собеседование, услышать десятки каверзных вопросов и потратить уйму времени на подготовку. И вот что я понял: многопоточность — это одна из самых сложных и любимых тем на Java-собеседованиях, независимо от уровня кандидата.

Поэтому в этой статье я хочу помочь вам уверенно подготовиться к секции по concurrency: разберём ключевые термины, посмотрим, как это работает на практике, и дам несколько советов, которые реально помогают на собесах. Поехали!


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

@a_cup_of_java | Другие наши каналы
Реактивное программирование в Java: от теории к практике

"Когда пару лет назад я впервые столкнулась с реактивным программированием, - рассказывает моя коллега Екатерина, - казалось, что это что-то слишком сложное и академическое. Но чем больше работаешь с современными высоконагруженными системами, тем яснее становится, что без реактивного подхода сложно обеспечить высокую отзывчивость и масштабируемость".


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

@a_cup_of_java | Другие наши каналы
Выпущена версия Jmix 2.7

Мы рады сообщить о выпуске Jmix 2.7! Эта версия представляет обновленный дизайнер ролей в Jmix Studio, новые UI-компоненты и включает ряд других улучшений фреймворка. Полный список изменений вы можете посмотреть в разделе "Что нового" документации Jmix.

Ниже приведен краткий обзор основных новых функций Jmix 2.7.


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

@a_cup_of_java | Другие наши каналы
Добавляем MapReduce в этот наш SQL: генераторы на основе курсоров

Вот уже который год я потихоньку разрабатываю SQL-ный движок на основе Apache Spark, специализированный под задачи ETL. И хотя диалект языка изначально называется «Transform Definition Language», писать трансформации данных непосредственно на нём самом было до сих пор невозможно. Вместо этого на фазе Transform предполагалось использовать подключаемые модули, которые рантайм интерпретатора предоставляет из Java classpath.

Это очень эффективный с точки зрения производительности, но довольно долгий с точки зрения внедрения, и дорогой в разработке способ. Сначала трансформацию надо описать формально в виде статьи-whitepaper'а (это делает data scientist), потом написать прототип на Python (ответственность data analyst), отладиться на сэмпле реальных данных (тоже аналитик), и тогда уже делать и оптимизировать финальную имплементацию на Java с использованием низкоуровневого API Spark (собственно, задача разработчика). Неудобно.

Нельзя ли его как-нибудь сократить? Например, дать аналитикам инструмент для написания трансформаций непосредственно в самом SQL, вынеся некоторую часть функциональности MapReduce как разновидность итерирующих функций? Можно, конечно!
Давайте узнаем, как именно

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

@a_cup_of_java | Другие наши каналы
Java-дайджест: Spring 7.0, JDK 26 и важные релизы

В обзоре InfoQ: GA Spring Framework 7.0, Spring Data и Spring AI; JEP‑предпросмотры для JDK 26; релизы Payara, Maven RC5, JobRunr и Micronaut — что важно знать.

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

#en

@a_cup_of_java | Другие наши каналы
Как скопировать дерево, но не точь-в-точь

На собеседованиях и литкоде любят вращать бинарные деревья. Но что насчёт трансформации обычного дерева в другое? Как решить эту задачу, и какие могут быть подходы? Рассмотрим на опыте трансляции одного синтаксического в другое, чтобы разобраться.


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

@a_cup_of_java | Другие наши каналы
Spring без боли: моя шпаргалка для собесов в Java. Часть 3

Всем привет!

Сейчас я работаю Senior Java Developer в одном из банков, и за последние годы мне довелось пройти множество собеседований, столкнуться с десятками непростых вопросов и вложить кучу времени в подготовку. И со временем я заметил одну закономерность: Spring — одна из самых объёмных и любимых тем на Java‑собеседованиях, причём спрашивают её у кандидатов любого уровня.

Поэтому в этой статье я хочу помочь вам уверенно подготовиться к вопросам по Spring, также покажу примеры задач, которые дают на собеседованиях. Поехали!


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

@a_cup_of_java | Другие наши каналы
21
Числовой тип данных с плавающей точкой double IEEE 754

Данный пост является продолжением предыдущего поста, оно посвящено детальному разбору вещественного типа данных с плавающей точкой удвоенной точности double


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

@a_cup_of_java | Другие наши каналы
1
Нативный API Versioning в Spring 7: долгожданная официальная поддержка

Команда Spring АйО подготовила перевод статьи о том, как Spring Framework 7 приносит нативную поддержку API-версионирования — темы, которая годами оставалась на разработчиках и собирала тонны костылей. Теперь Spring Framework предлагает единый, продуманный механизм как для серверной, так и для клиентской стороны. Что это меняет для архитектуры и разработки на Spring — разберёмся в статье.


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

@a_cup_of_java | Другие наши каналы
Как IN (:ids) раздувал Hibernate Query Plan Cache до 100+ МБ и почему ANY(:ids) спас прод

При разборе продакшн heap dump я обнаружил странность: Hibernate Query Plan Cache занимал почти треть памяти. Обычный IN (:ids) внезапно генерировал тысячи SQL-планов и раздувал heap.

Почему так происходит и как полностью решить проблему с помощью ANY(:ids) — разбираю пошагово на реальном примере


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

@a_cup_of_java | Другие наши каналы
😁5
Мечтают ли ИИ-агенты об удобных IDE?

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


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

@a_cup_of_java | Другие наши каналы
1
Axiom JDK: криптография «из коробки» и подключение ГОСТ-провайдеров

Приглашаем на вебинар, на котором поговорим, как защитить сборки, избежать зависимостей от внешних репозиториев и повысить надёжность.

Вебинар бесплатный, нужно только зарегистрироваться.


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

@a_cup_of_java | Другие наши каналы
CookBook maven plugin. CDI, отладка и тестирование

CookBook maven plugin. CDI, отладка и тестирование. Цель статьи - рассказать об опыте разработки плагина.


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

@a_cup_of_java | Другие наши каналы
БД без боли: моя шпаргалка для собесов в Java. Часть 3

Всем привет!
Я Senior Java Developer в банке, и за эти годы мне довелось пройти немало собеседований. Где-то было спокойно, где-то — как в допросной, с каверзными вопросами, странными задачами и вечным «а почему так, а не иначе?». В процессе я собрал целую коллекцию тем, которые всплывают снова и снова, особенно когда дело касается баз данных.

Сегодня хочу поделиться этим опытом и разобрать вопросы, которые чаще всего задают именно по SQL-базам.


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

@a_cup_of_java | Другие наши каналы
Spring 7 и Spring Boot 4: API‑версионирование, JSpecify и резильенс

По данным InfoQ, релизы вводят встроенное REST API‑версионирование, JSpecify‑аннотации для null‑безопасности, механизмы устойчивости (retry, concurrency limit), миграцию на Jackson 3 и модульную автонастройку. Читайте статью.

Подробности: https://www.infoq.com/news/2025/11/spring-7-spring-boot-4/

#en

@a_cup_of_java | Другие наши каналы
3👍1
Упрощаем работу с микросервисами при помощи API Gateway на Java

Микросервисы легко разрастаются до зоопарка эндпоинтов, где каждый сервис живёт по своим правилам, а клиенту приходится знать обо всех. В статье разберем, как API Gateway превращает этот хаос в единую точку входа: берёт на себя маршрутизацию, аутентификацию, агрегацию запросов и наблюдаемость. На простом примере с Spring Cloud Gateway рассмотрим, как собрать такой слой поверх Java-сервисов и упростить жизнь и разработчикам, и внешним потребителям API.
Разобраться с Gateway

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

@a_cup_of_java | Другие наши каналы
Вышла GigaIDE 2025.1: подключаем свой маркетплейс плагинов

На днях вышла новая версия GigaIDE Community Edition. Долгожданное обновление, которое помимо обновления базовой платформы до IntelliJ 2025.1 и мультиагентной системы на базе GigaCode, имеет собственный маркетплейс плагинов. Особенно стоит отметить, что команда GigaIDE пошла по пути максимальной открытости и добавила возможность переключаться между различными маркетплейсами прямо в интерфейсе GigaIDE.


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

@a_cup_of_java | Другие наши каналы
Kafka без боли: моя шпаргалка для собесов в Java. Часть 5

Всем привет!

Я работаю Senior Java Developer в одном из банков, и за последние годы мне довелось пройти не один десяток собеседований, выслушать массу неожиданных вопросов и потратить немало времени на подготовку. И вот что я понял: Kafka - одна из самых любимых и в то же время самых коварных тем на технических интервью. Независимо от уровня кандидата, вопросы по Kafka появляются почти всегда - от базовой архитектуры до тонкостей гарантий доставки и работы consumer groups.

Сегодня я хочу помочь подготовиться к вопросам по Kafka, вопросы будут разной сложности, будет интересно. Поехали!


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

@a_cup_of_java | Другие наши каналы
🔥2❤‍🔥1
Spring Boot 4. Новые модули. Зачем?

Это довольно короткая статья, целью которой является пояснение того, что вообще такое "модуляризация" Spring Boot, почему она появилась и откуда, собственно, ноги растут.

Для многих Spring Boot это просто автоконфигурация. Само собой Spring Boot гораздо шире и включает в себя в том числе ещё и

Spring Boot Actuator

Spring Boot DevTools

Spring Boot Tools и т.д.


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

@a_cup_of_java | Другие наши каналы
❤‍🔥2
Как я проходил собеседование на Senior Java

Всем привет!

Сейчас я работаю Senior Java Developer в банке, и за последние годы мне довелось пройти немало собеседований — разных по уровню, стилю и степени «жесткости». Сегодня я хочу рассказать об одном из них и поделиться опытом, который может быть полезен тем, кто тоже готовится к новым вызовам.


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

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