Чашечка Java
رفتن به کانال در Telegram
Лучшие материалы по Java на русском и английском Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels
نمایش بیشتر8 570
مشترکین
-424 ساعت
-87 روز
-2730 روز
آرشیو پست ها
8 570
Корпоративный RAG как MCP-сервис: подключаем кодовую базу к IDE
В компаниях с несколькими продуктами знания о коде и архитектуре почти неизбежно расползаются. Часть живёт в репозиториях, часть — в статьях с архитектурными решениями, часть — в корпоративной базе знаний (в нашем случае — Confluence). На небольшом масштабе это выглядит как порядок. Но по мере роста начинают проявляться системные эффекты.
Появляется дублирование функционала с разными подходами. Сложнее становится погружаться в новый продукт при кросс-командных переходах. Поиск по каждому репозиторию и каждому пространству документации по отдельности — медленный и утомительный. В итоге вопросы уходят к «знающим людям», которые постепенно превращаются в узкое горлышко.
Мы столкнулись с этим в явном виде и сформулировали задачу так: дать разработчикам и системным аналитикам быстрый и актуальный поиск по всей кодовой базе компании с возможностью диалога через универсального агента.
В этой статье я расскажу, как мы построили локальный RAG-сервис, оформили его как MCP-сервер и подключили к IDE. Подход будет полезен командам с большим количеством репозиториев, внутренней документацией и требованиями к безопасности.
Читать: https://habr.com/ru/articles/983424/?utm_campaign=983424
@a_cup_of_java | Другие наши каналы
8 570
Эволюция программиста 2005–2025: от CRT-мониторов до квантовых алгоритмов
Эпохи развития программирования в России и в мире. Какие стадии прошли разработчики и к чему пришли в настоящий момент. Прогнозы на будущее.
Читать: «Эволюция программиста 2005–2025: от CRT-мониторов до квантовых алгоритмов»
@a_cup_of_java | Другие наши каналы
8 570
Field vs Constructor Injection в Java: ошибка объектного дизайна или вопрос синтаксиса?
Знаю, знаю... Прочитав заголовок, хочется голосом волка из мультфильма «Жил был пёс» сказать — «Шо, опять?». Ведь битва этих подходов давно закончилась и разработчики Spring уже поставили точку.
Но недавняя публикация в одном довольно крупном Telegram‑канале заставила меня вернуться к этому вопросу. В качестве главных аргументов против field injection там приводились лишь сложность изоляции в тестах и неудобство создания экземпляров для unit‑тестов.
И хотя с этими пунктами не поспоришь, у многих разработчиков и не только начинающих, остаются вопросы: каковы реальные последствия для самого объекта? Можно ли считать его полноценным сразу после создания
new? И почему все современные рекомендации так настаивают на конструкторах?
Поиск ответов показал мне, что аргумент о тестах лишь верхушка айсберга. В глубине, куда я Вас сегодня приглашаю заглянуть, скрываются куда более фундаментальные вопросы принципов объектно‑ориентированного дизайна, гарантий Java Memory Model и уважения к жизненному циклу объекта.
Читать: https://habr.com/ru/articles/983344/?utm_campaign=983344
@a_cup_of_java | Другие наши каналы8 570
Комментарии в коде: зло или спасение ?
Когда нужны комментарии в коде, а когда без них лучше. Объясняем на примерах, как писать понятные и полезные комментарии
Читать: «Комментарии в коде: зло или спасение ?»
@a_cup_of_java | Другие наши каналы
8 570
Конечные автоматы (FSM) Просто о сложном
Что такое конечный автомат (FSM) и зачем он нужен программисту? Эта статья простыми словами объясняет концепцию FSM, его компоненты, преимущества и реализацию на JavaScript с примерами. Разберём логику состояний, событий и переходов без сложной теории.
Читать: «Конечные автоматы (FSM) Просто о сложном»
@a_cup_of_java | Другие наши каналы
8 570
Ограничь меня полностью! Или история одной ма-а-а-аленькой фичи
Бывало ли у вас так что задача на час максимум в результате занимает целый рабочий день или даже больше?
Почему так происходит? Нужно ли тестировать сторонние библиотеки? Есть ли польза от типичных задач для собеседований? Когда "костыль" вполне рабочее решение?
Частные ответы на все эти, казалось бы не связанные, вопросы попытаемся найти в непридуманной истории фичи, которая изначально казалась на 5 минут, а вышло...
Читать: https://habr.com/ru/articles/983196/?utm_campaign=983196
@a_cup_of_java | Другие наши каналы
8 570
7 курсов, с которых реально стартуют в IT в 2025
Хотите начать карьеру в IT с нуля? Рассказываем, какие курсы в 2025 реально помогают попасть в IT, даже без опыта и тех.образования.
Читать: «7 курсов, с которых реально стартуют в IT в 2025»
@a_cup_of_java | Другие наши каналы
8 570
Java Digest — Новогодний спецвыпуск
Всем привет! 👋👋👋👋👋 Мы Java-разработчики Т-Банка: Андрей, Арсений, Роман, Константин и Константин. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки и делимся этим со всем сообществом.
Читать: https://habr.com/ru/companies/tbank/articles/983164/?utm_campaign=983164
@a_cup_of_java | Другие наши каналы
8 570
Как встроить распознавание документов в Android: пошаговое руководство
Разбираемся, как быстро добавить возможность распознавания документов в Android. Пошаговое руководство по встраиванию Smart Document Engine.
Читать: «Как встроить распознавание документов в Android: пошаговое руководство»
@a_cup_of_java | Другие наши каналы
8 570
Инженерия создания микросервиса 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 | Другие наши каналы
8 570
Под капотом многопоточной синхронизации в 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 | Другие наши каналы
8 570
CORS от А до Я: история, ошибки и грамотная настройка
Что такое CORS, почему браузер блокирует запросы и как избежать типичных ошибок. Простое объяснение для разработчиков + рабочие решения.
Читать: «CORS от А до Я: история, ошибки и грамотная настройка»
@a_cup_of_java | Другие наши каналы
8 570
Java → Rust → 0% готовности: как разработчик за 7 лет так и не дошел до MVP своего проекта
Разработчик 7 лет переписывал проект с Java на Rust — и так и не дошёл до MVP. Теперь он признает: без дисциплины, фокуса и приоритизации даже лучший код — пустышка
Читать: «Java → Rust → 0% готовности: как разработчик за 7 лет так и не дошел до MVP своего проекта»
@a_cup_of_java | Другие наши каналы
8 570
Easy Maven — Dependencies Search. Или воскрешаем Maven Dependency Helper плагин
Всем привет! Недавно я опубликовал статью, в которой сказал что она будет последней по Easy Maven т.к. все что можно я уже делегировал Maven — импорт проекта, запуск тасков, анализ зависимостей. Но недавнее обилие багов в IDEA 2025.3 связанных как с зависанием так и повышенным потреблением памяти Maven проектами, окунуло меня в баг трекер IDEA, где я нашел много похожих проблем, которые также затрагивают и мавен индексы. Помню как меня самого это раздражало, когда IDEA чуть ли не при каждом открытии, начинает сканировать локальный репозиторий. Про это даже писали в комментариях — где ответ был один — отключить это. Плюс недавно один из постов в тг канале (спасибо за это @javadev), еще больше убедил меня в том, что так дальше жить нельзя и я решил поправить проблему поиска зависимостей так как я ее вижу — не изобретать велосипед, а делегировать поиск туда, где это уже реализовано. Ведь как известно: самый лучший код — тот который ты не написал. Посмотрим что из этого вышло.
Читать: https://habr.com/ru/articles/981132/?utm_campaign=981132
@a_cup_of_java | Другие наши каналы
8 570
Meta* и Яндекс годами собирали данные о вас через локальные порты Android. Даже в режиме инкогнито
Meta* и Яндекс отслеживали действия пользователей Android даже в режиме инкогнито через соединение с localhost. Использовались скрипты Pixel и Метрики, встроенные на миллионы сайтов. Теперь механизм отключён, но работал с 2017 года.
Читать: «Meta* и Яндекс годами собирали данные о вас через локальные порты Android. Даже в режиме инкогнито»
@a_cup_of_java | Другие наши каналы
8 570
От Чёрного моря до Невы: история одного комьюнити-тура
Привет, Хабр!
2025 год выдался богатым на конференции и митапы, которые мы успели посетить, а некоторые даже организовать. В этой статье мы совершим небольшой тур по городам и событиям этого года, важным для нашей команды.
Buckle up, folks!
Читать: https://habr.com/ru/companies/axiomjdk/articles/982122/?utm_campaign=982122
@a_cup_of_java | Другие наши каналы
8 570
Как отправлять email из кода: nodemailer, SMTP и HTML-письма
Как отправлять email из кода. Показываем, как отправлять письма через Nodemailer, SMTP и HTML. Рассматриваем пошаговую инструкцию и основные нюансы ✔ Tproger
Читать: «Как отправлять email из кода: nodemailer, SMTP и HTML-письма»
@a_cup_of_java | Другие наши каналы
اکنون در دسترس! پژوهش تلگرام ۲۰۲۵ — مهمترین بینشهای سال 
