Чашечка 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
Корпоративный RAG как MCP-сервис: подключаем кодовую базу к IDE

В компаниях с несколькими продуктами знания о коде и архитектуре почти неизбежно расползаются. Часть живёт в репозиториях, часть — в статьях с архитектурными решениями, часть — в корпоративной базе знаний (в нашем случае — Confluence). На небольшом масштабе это выглядит как порядок. Но по мере роста начинают проявляться системные эффекты.

Появляется дублирование функционала с разными подходами. Сложнее становится погружаться в новый продукт при кросс-командных переходах. Поиск по каждому репозиторию и каждому пространству документации по отдельности — медленный и утомительный. В итоге вопросы уходят к «знающим людям», которые постепенно превращаются в узкое горлышко.

Мы столкнулись с этим в явном виде и сформулировали задачу так: дать разработчикам и системным аналитикам быстрый и актуальный поиск по всей кодовой базе компании с возможностью диалога через универсального агента.

В этой статье я расскажу, как мы построили локальный RAG-сервис, оформили его как MCP-сервер и подключили к IDE. Подход будет полезен командам с большим количеством репозиториев, внутренней документацией и требованиями к безопасности.


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

@a_cup_of_java | Другие наши каналы
InfoQ Trends Reports 2025 — что важно разработчикам

InfoQ собрал серию отчетов по архитектуре, культуре, AI/ML, облакам и Java. Главные идеи: эволюция технологий, AI как соавтор в доставке ПО, роль человеческого суждения, рост платформенной инженерии и практические тренды на 1–5 лет.

Подробности: https://www.infoq.com/minibooks/2025-infoq-trends-reports-emag/

#en

@a_cup_of_java | Другие наши каналы
DeepSeek в Intellij Idea через плагин Continue

Может кому пригодится, на просторах интернета не нашел, как запустить модель deepseek в idea, потому сам вместе с deepseek допиливал конфиг и обучал модель работе через инструменты плагина. Ну и попутно решил проблему с зависаниями, плагин очень любил зависнуть, приходилось ide перезапускать.

Сразу оговорюсь, решение не элегантно, я не убирал лишний код, строки и текст, я просто добился рабочего состояния и более ничего не тестировал и не трогал. Годами работы приучен "работает - не трож". Потому решение as is выкладываю. Можете сами эксперименты проводить и допиливать, мне был просто нужен рабочий инструмент, на тюнинг не осталось желания, накрыла лень и я продолжил заниматься изначальным своим проектом =)


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

@a_cup_of_java | Другие наши каналы
Как я поучаствовал в разработке Camunda 8 или пример типичной ошибки в многопоточном коде

Зимой 2024 года мне довелось поучаствовать в разработке проекта на Camunda 8. Сразу оговорюсь: проект в итоге реализовали на другом движке. Тем не менее, команда успела сделать стенд, прогнать тесты и замерить производительность.

В этой статье я расскажу об одном эпизоде, когда мне пришлось исправить библиотеку spring-zeebe из Camunda 8, отвечающую за обвязку Job Worker на Spring.

Одной из моих задач было отладить процесс, используя локальные интеграционные тесты с Docker и библиотекой Testcontainers. Мы создали простой процесс, вызывающий наш Job Worker, подлежавший отладке. Сразу столкнулись с плавающей ошибкой: иногда тест проходил успешно, иногда — нет. Несколько тасков работали корректно, однако первый периодически игнорировался без видимых ошибок. Изначально подозревали проблему в собственном коде, проверяли конфигурацию Job Worker, благодаря чему узнали много нового о Camunda 8.


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

@a_cup_of_java | Другие наши каналы
LLM + 1C: Почему чат-бот для учета — это плохая идея, и как реализовать AI-шлюз через OData

LLM + 1C = ? Почему чат-бот для учета — это плохая идея, и как я сделал из него «умный шлюз».

Изначально идея казалась кристально чистой: пользователь отправляет текстовый или голосовой запрос (например: «Выведи топ должников по Тверской области на текущую дату и суммы задолженности»).


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

@a_cup_of_java | Другие наши каналы
Как жёсткие правила сборки релизов упростили жизнь инженерам финтеха

Перевели инфраструктуру Java-разработки высоконагруженного финтеха с SLA 99,99% на доверенный репозиторий компонентов. Это отечественные продукт из экосистемы Axiom JDK. Делимся инженерными деталями этого перехода.


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

@a_cup_of_java | Другие наши каналы
Доступ к ChatGPT за 5 минут без VPN

Примерно год назад я написал статью ChatGPT без VPN за 10 минут (и установка нативного приложения). Хотя она актуальна до сих пор, сегодня я хочу вам рассказать про еще один способ.

Суть: мы делаем свой DNS-профиль в NextDNS или Cloudflare и автоматически актуализируем его раз в сутки.

Для этого я написал небольшую программу. Самое приятное: для ее работы вам не придется ничего устанавливать вообще.


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

@a_cup_of_java | Другие наши каналы
Java-дайджест: январь 2026

По данным InfoQ: вышли обновления — maintenance/point-релизы для Spring gRPC, Quarkus, Gatherers4j, Keycloak, Grails и Java Operator SDK; также доступны сборки JDK 26 и 27 с исправлениями и улучшениями.

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

#en

@a_cup_of_java | Другие наши каналы
1
Параллельные стримы и CompletableFuture: ошибки и решения

Кратко о ловушках параллелизации в Java (вложенные parallel, flatMap, потеря контекста в ForkJoinPool, OOM с CompletableFuture) и практических решениях: точечная параллелизация, разделение executors, семафоры, thenApply vs thenApplyAsync. Кейс Hugo Marques (JDK24).

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

#en

@a_cup_of_java | Другие наши каналы
Как затащить AI в Java/Kotlin проект

Мир Enterprise-разработки на Java/Kotlin и мир нейронных сетей кажутся параллельными вселенными. С одной стороны - статическая типизация, многопоточность, Spring-контейнеры, а с другой - Python-скрипты, тензорные операции и эксперименты в Jupyter Notebook. Между ними - пропасть, через которую многие команды не решаются перешагнуть.

Однако необходимость строить этот мост возникает всё чаще. Заказчик хочет «искусственный интеллект» в новом фиче, аналитики мечтают о реализации чат-бота  с преферансом и барышнями, а менеджеры слышали, что конкуренты уже всё автоматизировали. Как же совместить надежность и структуру JVM-проекта с гибкостью и мощью AI? В этой статье постараемся разобраться какие инструменты для этого есть на данный момент и как с ними работать.


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

@a_cup_of_java | Другие наши каналы
1
От Redis к Kafka Streams: как мы проверяем сетевую доступность 200к устройств

В инфраструктуре банка мы ежедневно работаем с ~200 000 физических устройств: это IP-камеры, сетевые видеорегистраторы и другая периферия. Каждое из них должно быть проверено на доступность — не реже чем раз в 10 минут.

Требования к системе:

- не создавать бессмысленную нагрузку на инфраструктуру;

- решение должно быть горизонтально масштабируемым;

- система должна выдерживать падение pod, rebalance, сетевые сбои.


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

@a_cup_of_java | Другие наши каналы
Миграция проекта с Node.js на Java-стек с помощью ИИ

Один из наших проектов нужно было перенести на Kotlin, чтобы включить его в общую экосистему клиента и упростить поддержку. Мы должны были курировать процесс и следить за итоговой реализацией, в которой заказчик решил использовать ИИ.

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


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

@a_cup_of_java | Другие наши каналы
😐1
Kafka для начинающих: работа с Kafka транзакциями на практике — когда они нужны, а когда когда только вредят?

Как работать с Kafka транзакциями из Spring Boot? Когда они нужны, а когда бесполезны или даже вредны?

Простым языком и с примерами кода о Kafka транзакциях.


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

@a_cup_of_java | Другие наши каналы
И снова про алгоритмы и структуры данных…

За годы разработки приходит понимание, что происходит в тех или иных сервисах, когда они тормозят, лагают, выдают «неожидаемое» поведение. В данной статье хочу рассмотреть проблему неправильного использования алгоритмов и архитектурных решений с бытовой, общечеловеческой стороны.


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

@a_cup_of_java | Другие наши каналы
Реализация гексагональной архитектуры на Java

В данной статье рассматривается архитектура проекта, позволяющая модульным образом интегрировать инфраструктурные фреймворки, такие как Spring, Quarkus и Micronaut, без необходимости модификации ядра предметной области (domain) или внешних API.


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

@a_cup_of_java | Другие наши каналы
Project Panama: как Java научилась говорить на C! (Часть 1)

Как безопасно и эффективно вызывать C-функции из Java? Благодаря Project Panama — новому API из OpenJDK — это стало возможно без использования JNI.

В новом переводе от команды Spring АйО познакомимся с основами FFM API, посмотрим на запуск Hello World на C, роль jextract, и на то, как управлять памятью вне кучи JVM.


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

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