es
Feedback
Чашечка Java

Чашечка Java

Ir al canal en Telegram

Лучшие материалы по Java на русском и английском Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels

Mostrar más
8 454
Suscriptores
-224 horas
-167 días
-6030 días
Archivo de publicaciones
Spring Boot наконец получил нативную поддержку gRPC Забудьте о сторонних стартерах и костылях — Spring gRPC 1.0 GA уже здесь. Теперь можно строить высокопроизводительные RPC-сервисы с Protocol Buffers прямо из коробки, без плясок с бубном. В новом переводе от команды Spring АйО рассмотрим пошаговую миграцию со старых решений, генерацию кода из .proto, и сравнение с тем, как это работает в Quarkus. Читать: https://habr.com/ru/companies/spring_aio/articles/978418/?utm_campaign=978418 @a_cup_of_java | Другие наши каналы

JEP 500: final станет по‑настоящему final По InfoQ: в JDK 26 вводят запрет/ограничение на изменение final-полей через deep re
JEP 500: final станет по‑настоящему final По InfoQ: в JDK 26 вводят запрет/ограничение на изменение final-полей через deep reflection — по умолчанию выдаётся предупреждение; доступны режимы warn/deny/allow и JFR-событие jdk.FinalFieldMutation для аудита. Подробности: https://www.infoq.com/news/2025/12/jdk26-final-fields-reflection/ #en @a_cup_of_java | Другие наши каналы

Настраиваем ИИ-помощника бесплатно и без вендорлока в IntelliJ IDEA, GoLand, WebStorm, OpenIDE и GigaIDE AI-помощники в IDE — уже не фантастика, а ежедневная реальность. Но как сделать так, чтобы они действительно помогали, не лезли не в тему, не сливали код в облако и не требовали подписку на каждого чиха? Ответ — Continue: open source AI-ассистент, который интегрируется с IntelliJ IDEA, GoLand, WebStorm, OpenIDE и другими IDE на базе IntelliJ Platform. Он предоставляет автодополнение, чат, команды над выделенными фрагментами и даже агентный режим с патчами на несколько файлов. Главное — вы выбираете модель и правила игры. Читать: https://habr.com/ru/companies/haulmont/articles/978172/?utm_campaign=978172 @a_cup_of_java | Другие наши каналы

Один сервис — четыре стека: практический бенчмарк с SLO по p99 и Docker/JMeter В статье я сравниваю четыре реализации одного и того же сервиса поверх PostgreSQL: 1. Spring MVC + JDBC 2. Spring WebFlux + R2DBC 3. Ktor + JDBC 4. Go + pgx Все сервисы крутятся в Docker с одинаковыми ресурсными лимитами и прогоняются через один и тот же JMeter-план. Для каждого стека я ищу максимальный RPS при соблюдении SLO по p99-латентности. Я подробно разбираю: - как устроен стенд (Docker-compose, Postgres, Prometheus, Grafana, JMeter); - как реализованы сервисы и чем различаются модели конкурентности; - методологию нагрузочного тестирования и расчёта RPS@p99≤SLA; - как реально ведут себя блокирующий стек, реактивный стек и Go под честной нагрузкой. Читать: https://habr.com/ru/companies/domclick/articles/970104/?utm_campaign=970104 @a_cup_of_java | Другие наши каналы

Как мы перевернули подход к мобильным интерфейсам с Backend Driven UI После того как наш парк вырос до более 245 тысяч самокатов и велосипедов, а команда сервисных центров начала исчисляться сотнями человек, стало ясно: управлять статусами устройств, задач и процессов в нашем внутреннем сервисном приложении по старинке уже не получится. Представьте себе: нужно изменить статус самоката или работы, а механик, специалист по контролю качества и бригадир — роли с разными функциями — видят одни и те же кнопки, одни и те же статусы, в которые можно перевести самокат. Иногда нажимают не туда — и ремонт идет не по желаемому процессу, что-то может потеряться, сроки увеличиваются… Добавим в уравнение еще разные версии мобильного приложения с различным набором кнопок — в какой-то версии кнопку убрали, в какой-то добавили. В итоге вся надежда только на бэкенд, перед которым встала задача контролировать и валидировать действие каждого пользователя в приложении. В WCMA (Whoosh Control Maintenance App, писали о нем в предыдущей статье), нашем внутреннем приложении для управления флотом, мы столкнулись с этой проблемой в полной мере. Напомню, в этом приложении работает наша сервисная команда, через него мы обслуживаем самокаты и велосипеды в городе, следим за их зарядом, переставляем на спросовые парковки, а также восстанавливаем и чиним. Одна из первых версий WCMA была больше похожа на пульт-отмычку для самоката, приложение не было интуитивным: все переводы доступны, а значит люди нажимали куда попало, часто новички путались в процессах и кнопках, в целом было мало контроля над действиями пользователей. Это могло вызывать ошибки “в полях” или при ремонте флота. Чтобы это исправить, мы завели большее количество ролей в системе, и каждая роль получила свой особенный раздел в WCMA. А для надежности добавили много проверок на бэкенде, валидирующих действия команды. Такой подход работал, статусная модель была простой: несколько базовых состояний и переходы между ними. Но с ростом бизнеса логика усложнилась. Появились региональные особенности работы в разных городах, ролевые ограничения, условные переходы, зависящие от контекста. Меня зовут Игорь Волынский, я backend-разработчик в команде WCMA Whoosh. И сегодня я расскажу, как мы решили эту проблему: построили централизованную и гибкую систему управления статусами, добавили условные переводы с хендлерами для проверки бизнес-правил и реализовали динамические сценарии для гибкого формирования UI. Спойлер: теперь наши механики и менеджеры видят только те действия, которые им реально доступны, а бэкенд гарантирует целостность данных на уровне системы. Читать про формирование UI через бэкенд Читать: https://habr.com/ru/companies/whoosh/articles/977814/?utm_campaign=977814 @a_cup_of_java | Другие наши каналы

Какие навыки в IT будут решающими в 2026 году: разбор по специализациям Разбираем, какие скилы и знания станут обязательными
Какие навыки в IT будут решающими в 2026 году: разбор по специализациям Разбираем, какие скилы и знания станут обязательными в 2026 году, что будут ценить работодатели и как новичку не потеряться на входе в ИТ-индустрию Читать: «Какие навыки в IT будут решающими в 2026 году: разбор по специализациям» @a_cup_of_java | Другие наши каналы

Большой гайд по мобильной разработке от Tproger: полезные статьи, практики и советы Делимся нашими статьями про мобильную раз
Большой гайд по мобильной разработке от Tproger: полезные статьи, практики и советы Делимся нашими статьями про мобильную разработку: iOS, Android, Flutter, SwiftUI, Jetpack Compose, публикация в сторах и советы по доступности — всё в одном месте. Читать: «Большой гайд по мобильной разработке от Tproger: полезные статьи, практики и советы» @a_cup_of_java | Другие наши каналы

Изменения цен на GitHub Actions GitHub только что анонсировал изменения в ценообразовании Actions. Ранее GitHub Actions имел бесплатный control plane. Это означало, что если вы использовали GitHub Actions, но запускали задачи вне GitHub-hosted runners — будь то ваши собственные машины или в вашем собственном AWS аккаунте — вы ничего не платили GitHub за эти минуты; вы платили только за вычислительные ресурсы. Теперь подход изменился. Команда Spring АйО подготовила перевод анонса команды Github. Читать: https://habr.com/ru/companies/spring_aio/articles/977674/?utm_campaign=977674 @a_cup_of_java | Другие наши каналы

TornadoVM 2.0: GPU-ускорение и LLM для Java InfoQ пишет о релизе TornadoVM 2.0 — инструменте для оффлоада Java на GPU/CPU/FPG
TornadoVM 2.0: GPU-ускорение и LLM для Java InfoQ пишет о релизе TornadoVM 2.0 — инструменте для оффлоада Java на GPU/CPU/FPGA и JIT-компиляции в CUDA/OpenCL/SPIR‑V. В комплекте SDK и GPULlama3.java для LLM-инференса в чистом Java с поддержкой FP16 и квантованных моделей. Подробности: https://www.infoq.com/news/2025/12/tornadovm-20-gpu-llm/ #en @a_cup_of_java | Другие наши каналы

Как мы построили рекламную платформу с нуля Каждая успешная рекламная кампания начинается с технологий, которые остаются за кадром. Но именно от них зависит, увидит ли целевой пользователь нужное объявление, сможет ли рекламодатель быстро настроить кампанию и получить точный отчет, и не сгорит ли его бюджет из-за мошенников или технических сбоев. Когда мы начинали проект AdWebs, нам нужно было создать платформу, которая справится с тремя ключевыми вызовами: высокая нагрузка, безопасность данных и безупречный пользовательский опыт. Вот как мы это сделали. Читать: https://habr.com/ru/articles/977384/?utm_campaign=977384 @a_cup_of_java | Другие наши каналы

Новый инструмент AWS: Transform Custom InfoQ: AWS представила AWS Transform Custom — AI‑агент для массовой модернизации и реф
Новый инструмент AWS: Transform Custom InfoQ: AWS представила AWS Transform Custom — AI‑агент для массовой модернизации и рефакторинга кода: обновления Java/Node/Python, миграции рантаймов, архитектурные правки. Обещают до 5× ускорения и интеграцию в пайплайны; вызвал дискуссию о точности. Подробности: https://www.infoq.com/news/2025/12/aws-transform-technical-debt/ #en @a_cup_of_java | Другие наши каналы

Value Object: как победить примитивную одержимость без DDD Кажется, что оборачивать BigDecimal и String в отдельные классы — это overengineering и преждевременный DDD. Но именно из-за этих «лишних» типов в прод не пролезают посылки в ПВЗ, проценты внезапно превращаются из 0.8 в 80, а деньги теряют валюту и смысл. В статье на реальном примере логистики разбираем, как один небольшой record Weight и несколько аккуратных Value Object’ов наводят порядок в бизнес-логике: инварианты перестают жить в комментариях, проверки перестают дублироваться, а код начинает читаться как текст предметной области. Без внедрения полного DDD, без религиозного фанатизма — только практические шаги. Как избавиться от одержимости примитивами Читать: https://habr.com/ru/companies/cdek_blog/articles/975426/?utm_campaign=975426 @a_cup_of_java | Другие наши каналы

Обнаружение взаимоблокировок на JVM с помощью Fray Команда Spring АйО подготовила перевод про Fray — инструмент для обнаружения и воспроизведения ошибок многопоточности в Java-программах. Основанный на научных исследованиях и написанный на Kotlin, Fray использует технику теневой блокировки для выявления взаимоблокировок и других проблем синхронизации. Он уже доказал свою эффективность на таких проектах, как Kafka, Flink и Lucene. Читать: https://habr.com/ru/companies/spring_aio/articles/976924/?utm_campaign=976924 @a_cup_of_java | Другие наши каналы

Как устроен Amplicode MCP: от кувалды к скальпелю Эта статья дополняет предыдущую. Там мы зафиксировали проблемы. Здесь разберем, что именно мы сделали со стороны Amplicode, чтобы агент начал работать как опытный software engineer: опираясь на структуру проекта, детерминированные генераторы и понятные высокоуровневые операции. Если коротко, в первой статье было несколько основных болей: – LLM часто обучены на слегка устаревшем мире, и это вылезает в мелочах (и не только). – Галлюцинации и нехватка контекста идут рука об руку: «кажется, в этой библиотеке должен быть такой метод» и пошло-поехало. – Переизбыток контекста тоже зло: агент прочитал половину репозитория, потратил деньги, запутался, а потом еще и забыл начало чата. – Типичный агентный workflow: «сгенерил простыню кода, оно не компилится, давай чинить, ой теперь сломалось другое». И на этом фоне появляется логичный вопрос: а можно сделать так, чтобы агент работал не с сырыми файлами, а с моделью проекта и сущностями фреймворка? Чтобы он не гадал, где DTO, как принято именовать контроллеры и какие миграции у вас используются? Собственно, Amplicode MCP про это. Читать: https://habr.com/ru/companies/haulmont/articles/976872/?utm_campaign=976872 @a_cup_of_java | Другие наши каналы

Java-итоги недели — Spring Tools 5, TornadoVM и обновления По обзору InfoQ: вышли Spring Tools 5.0, milestone‑релизы Spring A
Java-итоги недели — Spring Tools 5, TornadoVM и обновления По обзору InfoQ: вышли Spring Tools 5.0, milestone‑релизы Spring AI и Shell, TornadoVM 2.1, декабрьский релиз Payara, Hibernate ORM 7.2, Spock 2.4 и ряд патчей для JDK, Micronaut и Tomcat. Подробности: https://www.infoq.com/news/2025/12/java-news-roundup-dec08-2025/ #en @a_cup_of_java | Другие наши каналы

Live Reload на JVM В этой статье я хотел бы обобщить всё, что мы знаем про Hot/Live Reloading на JVM, и далее показать, как я пришел к реализации универсального Live Reloading решения для любых веб-приложений на JVM. Вкратце, в этой статье мы: 🔹 Попробуем сформулировать, какие виды релоадинга бывают. 🔹 Подробно рассмотрим, какие реализации существуют на JVM. 🔹 И немножко обсудим детали реализации универсального решения, и что вообще к нему привело. Читать: https://habr.com/ru/articles/974004/?utm_campaign=974004 @a_cup_of_java | Другие наши каналы

Kafka для начинающих: работа с оффсетами на практике Как работать с оффсетами в Kafka на практике, используя Spring Boot? Разбираем проблемы и их решения на примере интернет-магазина. Простым языком и с примерами кода о режимах коммитов, проблемах с транзакциями и надёжных паттернах. Читать: https://habr.com/ru/articles/965218/?utm_campaign=965218 @a_cup_of_java | Другие наши каналы

15 полезных команд терминала macOS для новичков Команды терминала macOS для новичков: поиск файлов, очистка диска, управление
15 полезных команд терминала macOS для новичков Команды терминала macOS для новичков: поиск файлов, очистка диска, управление процессами, скрытые настройки системы. Синтаксис и примеры для каждой команды. Читать: «15 полезных команд терминала macOS для новичков» @a_cup_of_java | Другие наши каналы

Вебхук слева Рассказываю про одну простую, но эффективную реализацию вебхуков, не требующую тотальной переделки вашей замечательной системы и/или сетевой инфраструктуры. ~300 строк кода. Читать: https://habr.com/ru/articles/976296/?utm_campaign=976296 @a_cup_of_java | Другие наши каналы

Как сократить расходы на токены и повысить точность LLM Когда количество доступных LLM инструментов (tool-ов) разрастается, традиционные подходы к tool calling становятся непрактичными — утилизация токенов улетает ещё до начала общения. К тому же, модели становится сложнее выбрать нужный набор tool-ов для решения проблемы. В новом переводе от команды Spring АйО читаем о паттерне Tool Search Tool, предложенном Anthropic и реализованном в Spring AI с помощью ToolSearchToolCallAdvisor. Он позволяет LLM динамически находить нужные инструменты по мере необходимости, экономя до 64% токенов и повышая точность. Читать: https://habr.com/ru/companies/spring_aio/articles/976178/?utm_campaign=976178 @a_cup_of_java | Другие наши каналы