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

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

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

Другие каналы: @tproger_channels
Download Telegram
Новый open source Java коннектор для Tarantool: практика с примерами кода

VK Tech открывает исходный код коннектора Tarantool Java EE и переименовывает его в Tarantool Java SDK. Дистрибутив станет доступен в Maven Central, что упростит интеграцию с Java-приложениями в корпоративных средах.

Меня зовут Артём Дубинин, я старший программист в VK Tech. Я разрабатываю коннекторы к Tarantool, а также участвую в разработке различных продуктов в VK Tech. Однажды я понял, что материала про совместную работу Java и Tarantool очень мало и из-за этого может казаться, что совмещать их сложно. Но на самом деле это не так — и иногда альтернативы Tarantool могут быть даже сложнее во взаимодействии. Поэтому я и решил написать эту статью.

Цель статьи — показать через код, что Tarantool реально совместить с Java без больших полотен кода, а итеративно с небольшими сниппетами (не считая java импортов и xml 😄). Мы будем использовать такие, чтобы каждый мог попробовать провести у себя на компьютере эти эксперименты и понять, что Tarantool легок в использовании.


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

@a_cup_of_java | Другие наши каналы
1
Как я мигрировал COBOL-код мейнфрейма на Java: разные подходы и почему ANTLR — лучший выбор

Когда я работал в одной зарубежной компании, мне поставили задачу мигрировать COBOL‑систему расчета инвойсов с мейнфрейма на Java. Она звучала довольно просто: «Нужно переписать старый COBOL‑код на Java, чтобы система жила дальше».

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


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

@a_cup_of_java | Другие наши каналы
10 самых интересных ошибок в Java проектах за 2025 год

2025 год подходит к концу. Minecraft моды, каталонский язык и неочевидные взаимодействия с тернарным оператором — с чем только не успел познакомиться наш анализатор. А значит, самое время вам об этом рассказать — представляем топ-10 ошибок, которые нашёл анализатор PVS-Studio в Open Source проектах за 2025 год.


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

@a_cup_of_java | Другие наши каналы
Hidden классы в Java. Что скрывают Lambda выражения

С переходом Java на более безопасные и стандартизированные подходы к динамической генерации классов, скрытые (hidden) классы стали ключевым механизмом замены устаревшего Unsafe::defineAnonymousClass.

Они решают проблемы доступности, управления жизненным циклом и контроля доступа, особенно актуальные для разработчиков фреймворков и языков на JVM. Хотя скрытые классы пока не полностью заменяют функциональность Unsafe, они лежат в основе ряда важных механизмов, такие как, например, реализация лямбд в JDK.

Подробнее - в новом переводе от команды Spring АйО.


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

@a_cup_of_java | Другие наши каналы
PostgreSQL. Интервальный тип данных. Интеграция с Spring Data JPA

В своей практике мы можем сталкиваться с хранением и поиском информации задаваемой в интревальном формате. Например: срок действия акций, тарифы на доставку и прочее. В статье мы подружим Spring JPA и Range Types.


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

@a_cup_of_java | Другие наши каналы
Очарованные Hibernate: проблемы, которые ведут разработчика странствовать по production

Hibernate часто работает как надо ровно до того момента, пока не приходит настоящая нагрузка. И тогда выясняется, что безобидные на вид решения отключают batching, ломают пагинацию, умножают число запросов и даже незаметно открывают дополнительные транзакции — ровно там, где вы рассчитывали на один аккуратный запрос в рамках одного unit of work.

В этой статье мы постарались собрать добрую дюжину самых неочевидных и при этом действительно продакшн-критичных ошибок работы с Hibernate: как они проявляются в логах и метриках, почему возникают на уровне механики ORM, и какие предохранители помогут поймать их до релиза. Будет практично, предметно и с несколькими моментами, после которых захочется пересмотреть пару любимых паттернов в вашем проекте.
поехали ...

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

@a_cup_of_java | Другие наши каналы
Java-дайджест: Spring Vault, LangChain4j и Gradle 9.3 RC

Краткий обзор по материалу InfoQ: Spring Vault вводит VaultClient/ReactiveVaultClient; LangChain4j 1.10 добавляет мониторинг агентов и обнаружение моделей; Seed4J 2.2 поддерживает Spring Boot 4; патчи для Micronaut, Quarkus, Infinispan.

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

#en

@a_cup_of_java | Другие наши каналы
SRE‑агент на базе ИИ — диагностика за секунды
Bruno Borges (Microsoft) описывает переход от ручного тюнинга SLO к автономным SRE‑агентам на LLM/MCP: OpenTelemetry, USE, jPDM, анализ дампов, интеграция с PagerDuty/Kubernetes и автоматическое устранение инцидентов для снижения MTTR.

Подробности: https://www.infoq.com/presentations/sre-java-agent/

#en

@a_cup_of_java | Другие наши каналы
Плагины с человеческим лицом: истории комьюнити OpenIDE

Мы в OpenIDE хорошо понимаем, что среда разработки — это не просто набор инструментов и функций. Это пространство, в котором разработчик проводит значительную часть своего времени: думает, экспериментирует, ошибается и создаёт новое. Именно поэтому для нас особенно важны открытость, доступность и ощущение живого диалога внутри экосистемы.

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

И когда до Нового года остаётся совсем немного времени, а сил на сложные технические материалы почти не остаётся, мы решили немного сменить ритм. Вместо глубоких разборов — лёгкое, тёплое и предпраздничное чтение. Так появилась идея серии интервью с участниками нашего комьюнити — людьми, которые создают плагины для OpenIDE.

Мы поговорили с разработчиками, которые вкладывают своё время, знания и идеи в то, чтобы OpenIDE становилась лучше, удобнее и сильнее. У каждого из них — своя история, мотивация и собственный взгляд на то, каким должен быть современный инструмент для разработки.

Это истории не столько про технологии, сколько про идеи, мотивацию и путь от «а что если» до готового инструмента, которым пользуются другие. Формат, который позволяет выдохнуть, вдохновиться и спокойно войти в новый год.

Мы хотим сделать этих людей видимыми. Показать, что за каждым плагином стоит не абстрактная функция, а конкретный человек или команда, которым действительно не всё равно. И, возможно, вдохновить других стать частью этого сообщества - потому что OpenIDE развивается именно так: вместе с людьми и благодаря людям.


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

@a_cup_of_java | Другие наши каналы
Пузырь 2021–2022 годов лопнул: эксперты составили прогноз рынка на 2026 год

После пузыря 2021–2022 ИТ-рынок стабилизируется: в 2026 ждут низкий найм, меньше джунов и рост спроса на сильных инженеров

Читать: «Пузырь 2021–2022 годов лопнул: эксперты составили прогноз рынка на 2026 год»

@a_cup_of_java | Другие наши каналы
💊8
ИИ работает, PR не успевают: риск для SDLC

На QCon AI NY Michael Webster рассказал, что ИИ даёт 3–5× рост скорости разработки на месяц, но затем накапливается технический долг и ревью усложняются. Варианты борьбы: Test Impact Analysis для CI/CD и агент Chunk для валидации кода.

Подробности: https://www.infoq.com/news/2025/12/ai-in-sdlc-webster/

#en

@a_cup_of_java | Другие наши каналы
От Чёрного моря до Невы: история одного комьюнити-тура

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

2025 год выдался богатым на конференции и митапы, которые мы успели посетить, а некоторые даже организовать. В этой статье мы совершим небольшой тур по городам и событиям этого года, важным для нашей команды.

Buckle up, folks!


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

@a_cup_of_java | Другие наши каналы
1👾1
StingrayTV Alice: путь от идеи до беты

Привет, это снова Егор. И я сегодня расскажу историю о том, как я решил накодить что-то для своего триколоровского ресивера, и что из этого вышло...


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

@a_cup_of_java | Другие наши каналы
Ускоряем индексацию нодлистов Фидонета при помощи Java Streams и Spring Data JDBC: перебираем нодлисты прямиком с СУБД

Привет, это снова Егор. И да - это снова статья про Фидонет. Так уж сложилось, что именно эта тематика оказался слишком уж популярным на моём Хабре, и неразрывно связана со мной, хотя я всячески пытался "сбежать" от данной тематики.

Однако я решил совместить приятное с полезным - рассказать про недавние мои поправки в NodehistJ, которые значительно ускорит индексацию диффов нодлистов сети Фидонет, а также значительно снизит потребление ОЗУ, за счёт одного из лучших вещей, которая есть в Spring Data JDBC - live streaming данных с СУБД без использования неэффективной пагинации. Данная технология позволяет быстро перебирать нодлисты за считанные минуты, и ускорить индексацию даже на слабых серверах, за счёт прямого перебора данных из СУБД, в live-режиме, без использования неэффективной пагинации, но с использованием самых обычного Java Streams.


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

@a_cup_of_java | Другие наши каналы
Easy Maven — Dependencies Search. Или воскрешаем Maven Dependency Helper плагин

Всем привет! Недавно я опубликовал статью, в которой сказал что она будет последней по Easy Maven т.к. все что можно я уже делегировал Maven - импорт проекта и запуск тасков. Но недавнее обилие багов в IDEA 2025.3 связанных как с зависанием так и повышенным потреблением памяти, окунуло меня в баг трекер IDEA, где я нашел много похожих проблем, которые также затрагивают и мавен индексы. Помню как меня самого это раздражало, когда IDEA чуть ли не при каждом открытии, начинает сканировать локальный репозиторий. Про это даже писали в комментариях - где ответ был один - отключить это. Плюс недавно один из постов в тг канале (спасибо за это @javadev), еще больше убедил меня в том, что так дальше жить нельзя и я решил поправить проблему поиска зависимостей так как я ее вижу - не изобретать велосипед, а делегировать поиск туда, где это уже реализовано. Ведь как известно: самый лучший код - тот который ты не написал. Посмотрим что из этого вышло.


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

@a_cup_of_java | Другие наши каналы
Под капотом многопоточной синхронизации в Java: как потоки договариваются через Mark Word

Когда вы пишете synchronized(obj), под капотом происходит целая цепочка событий, которую можно отследить до Mark Word — восьмибайтового служебного поля в каждом Java-объекте. В современных реализациях JVM (таких как HotSpot, OpenJ9, GraalVM) используется динамическая, адаптивная система, которая выбирает наиболее эффективную стратегию блокировки в зависимости от реального поведения потоков.


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

@a_cup_of_java | Другие наши каналы
1
Инженерия создания микросервиса spring-web-flux

Создать Spring-сервис просто: существует масса статей и отличная документация. Однако среди всего этого многообразия материалов зачастую сложно разобраться, какой именно набор технологий лучше выбрать и каким образом эти технологии должным образом интегрировать друг с другом. После перехода на новые версии библиотек многое начинает функционировать иначе, появляются совершенно другие подходы. В данной статье я хочу продемонстрировать один из возможных способов разработки микросервиса в 2026 году, а также рассмотреть несколько инструментов автоматической генерации кода: OpenApiGenerator, JooqCodegen, GigaChat, Liquibase — и объяснить, как они работают вместе в рамках единого проекта.

Точкой отсчета для построения микросервиса сделаем описание REST API. Допустим, в нашем фантастическом мире аналитик заранее подготовил спецификацию API с помощью формата OpenAPI, хотя подобное встречается и в реальной практике.


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

@a_cup_of_java | Другие наши каналы
Java-дайджест: Spring Shell 4.0 и обновления инструментов
По материалам InfoQ: Spring Shell 4.0 GA, JReleaser 1.22.0 с улучшенной поддержкой подписывания, TornadoInsight теперь совместим с TornadoVM 2.0, Apache Camel 4.14.3 и свежие ранние сборки JDK.

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

#en

@a_cup_of_java | Другие наши каналы
JEP 525: таймауты и улучшенные Joiner в структурной конкуренции Java

В статье InfoQ: в preview 6 JEP 525 ввёл onTimeout для Joiner, scope.join() может вернуть частичные результаты как List<t, а также мелкие API‑уточнения. Это облегчает обработку таймаутов и частичных результатов.

Подробности: https://www.infoq.com/news/2026/01/timeout-joiner-refinements/

#en @a_cup_of_java | Другие наши каналы
Java Digest — Новогодний спецвыпуск

Всем привет! 👋👋👋👋👋 Мы Java-разработчики Т-Банка: Андрей, Арсений, Роман, Константин и Константин. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки и делимся этим со всем сообществом.


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

@a_cup_of_java | Другие наши каналы
👍2
Ограничь меня полностью! Или история одной ма-а-а-аленькой фичи

Бывало ли у вас так что задача на час максимум в результате занимает целый рабочий день или даже больше?

Почему так происходит? Нужно ли тестировать сторонние библиотеки? Есть ли польза от типичных задач для собеседований? Когда "костыль" вполне рабочее решение?

Частные ответы на все эти, казалось бы не связанные, вопросы попытаемся найти в непридуманной истории фичи, которая изначально казалась на 5 минут, а вышло...


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

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