Чашечка Java
9.27K subscribers
3.69K photos
12 videos
55 files
5.81K links
Лучшие материалы по Java на русском и английском

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

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

Другие каналы: @tproger_channels
Download Telegram
Обнови JDK — живи спокойно. И Libercat тоже

Если вы держите свои продакшн-инстансы на Axiom JDK и Libercat, ловите апдейт: вышли свежие релизы безопасности Java-стека. Делимся, что внутри и почему это важно.


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

@a_cup_of_java | Другие наши каналы
👎3
Structured Concurrency в Java: наконец-то находит опору

API structured concurrency в Java наконец-то обрёл устойчивость. В новом переводе от команды Spring АйО подробно рассматриваются последние изменения, появившиеся с выходом JEP 505: фабричный метод open(), политики Joiner'ов, улучшенная отмена задач, дедлайны, передача контекста через ScopedValues и строгая защита от ошибок использования. Всё это делает параллельное программирование в Java более безопасным, читаемым и управляемым.


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

@a_cup_of_java | Другие наши каналы
👍2👎1
Пишем агента на Kotlin: KOSMOS

Интернет завален реализациями на Питоне, но иногда удобнее разбираться с технологиями на своём основном языке. Для мен;я это Kotlin.

Если вы программист, наверняка к вам приходят знакомые и предлагают писать агентов. Реализовав оного самостоятельно, вы поймете, что задача из себя представляет.

Статья обещает соблюдать два принципа, упрощающих восприятие:

‣ Движение от частного к общему, потому что легче воспринимать примеры, чем абстракцию.
‣ Быстрая обратная связь, как с REPL.

Агента реализуем так, чтобы легко было заменить лежащую в основе LLM. Посмотрим, как отличается работа при использовании REST API в сравнении с SDK, пощупаем Гигачат и Anthropic.

Ах да, 🪐 KOSMOS — акроним. Kotlin Open Synthetic Mind Orbiting System.


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

@a_cup_of_java | Другие наши каналы
Mobile System Design. Проектируем новостную ленту

Элементы System Design уже прочно вошли в процесс собеседований. Однако в мобильной разработке довольно часто возникает недопонимание что же все-таки необходимо продемонстрировать чтобы получить заветный офер. В этой статье я разберу один из кейсов, который может встретиться на реальном собеседовании и кроме этого покажу примерный сценарий такого интервью. Данная статья будет интересна мобильным разработчикам, как Android, так и iOS. Сам формат System Design Interview я разбирал в предыдущей статье. Здесь же мы сконцентрируемся на практике.

Итак, задача: спроектировать новостную ленту.


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

@a_cup_of_java | Другие наши каналы
Method Handles быстрее рефлексии (иногда)

Как Java поддерживает динамические вызовы? От медленной рефлексии до оптимизированных MethodHandle и invokedynamic — изучаем эволюцию динамизма в JVM. Разбираем внутреннее устройство MethodHandle и какие роли играют CallSite и invokedynamic.


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

@a_cup_of_java | Другие наши каналы
Rich Errors в Kotlin 2.4: шаг вперёд или шаг в сторону?

Команда Spring АйО не могла остаться в стороне и не прокомментировать одну из самых обсуждаемых новинок Kotlin, анонсированную на KotlinConf 2025 — Rich Errors.


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

@a_cup_of_java | Другие наши каналы
❤‍🔥1
Githab CLI и Github Actions на страже вайб кодинга с мобильными агентами Cursor

В этой статье, я расскажу, про опыт работы с агентами Cursor, github actions и великолепный Github Cli. Статья не претендует на истину и является частным практическим опытом.

Вступление

Лето. Время отпусков. Делать не фиг.

Можно залипать в рилсах или сериальчиках на пляже, но зачем, если можно создать что-то прикольное с мобильниого телефона, с помощью агентов. А конкретно, с помощью https://cursor.com/agents (стоит 20 баксов в месяц https://docs.cursor.com/account/pricing или 3к рублей в год, если немного поискать).

Итак, создаем репозиторий (В моем случае github.com/RobotAvi/MoneyGame) или берем готовый. Даем задачу агенту.


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

@a_cup_of_java | Другие наши каналы
2💅1
Красиво инжектим JwtAuthenticationToken в Spring Boot юнит тесты

Как часто вам приходится тестировать аутентификацию в ваших юнит тестах Spring Boot приложений? Мне довольно часто.

И сейчас расскажу о своем кейсе, где я сделал эту работу удобней.


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

@a_cup_of_java | Другие наши каналы
Spring Tips: Аннотация @Lazy

Хотите ускорить запуск приложения и сэкономить память? Аннотация @Lazy в Spring поможет инициализировать бины только тогда, когда они действительно понадобятся. Команда Spring АйО поможет разбобраться, как применять @Lazy точечно и глобально, в чём плюсы и подводные камни ленивой инициализации, и как избежать неожиданных ошибок на проде.


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

@a_cup_of_java | Другие наши каналы
Новые milestone-релизы в Spring: выпущены обновления Spring Boot 4.0, Spring Security 7.0, Authorization Server 2.0 и других проектов. Улучшения охватывают поддержку новых функций, исправления ошибок и обновления зависимостей, расширяя экосистему Spring.

Подробности: https://www.infoq.com/news/2025/07/spring-news-roundup-jul21-2025/

#en

@a_cup_of_java | Другие наши каналы
Быстрый старт контроллера шаговых двигателей SMSD–4.2CAN в режиме драйвера

Приводятся инструкции, которые помогут сделать первые шаги в экспериментах с контроллером в режиме драйвера шагового двигателя SMSD–4.2CAN под маркой НПО «Электропривод». Это настройка контроллера в режиме драйвера и запуск шагового двигателя с помощью программы CANopen Builder Limited v1.0, запуск двигателя из консоли, программ, написанных на языках С++ и Java, в которых потребуется библиотека CHAI для преобразователя интерфейсов USB–CAN ГКМН.468351.017-03 КБ «Марафон».

Первые две части представляют собой расшифровку лекций прочитанных Белобородовым А.В. и Харьюзовым П.Р. в 2024–2025 годах.


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

@a_cup_of_java | Другие наши каналы
🤨1
Новинки Java: выпущен CLI-инструмент для доступа к Quarkus MCP Server, вышел второй бета-релиз Groovy 5.0, обновлены JHipster Lite и GraalVM Native Build Tools. Также доступны новые сборки JDK 25 и JDK 26 с исправлениями. Подробнее в свежем обзоре.

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

#en

@a_cup_of_java | Другие наши каналы
Новый Jakarta EE 11: поддержка виртуальных потоков и Java records

В Jakarta EE 11 появилась поддержка Java 17 и 21, виртуальных потоков и записей. Представлена новая спецификация Jakarta Data для упрощённого доступа к базам. Обновлён набор тестов и улучшена совместимость платформы. Новые горизонты Jakarta EE: что ждать от версии 12

Jakarta EE 12 готовит поддержку полиглот-хранения данных с объединённым API для SQL и NoSQL, расширяет возможности Jakarta Data и вводит улучшенную конфигурацию. Выход ожидается в июле 2026 года с фокусом на консистентность и удобство.

Подробности: https://www.infoq.com/articles/jakarta-ee-11-overview/

#en

@a_cup_of_java | Другие наши каналы
Гайд по использованию Spring GraphQL

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

Меня зовут Дмитрий, и я бэкенд-разработчик в SENSE с 10-летним опытом. За это время я успел поработать с финтех-проектами, автоматизировал обработку заказов для интернет-магазинов, но GraphQL долгое время оставался для меня загадочной технологией – я просто не сталкивался с ним в работе. А когда он мне понадобился, то обнаружил, что толковых материалов по Spring-реализации GraphQL очень мало. Поэтому, я решил не только разобраться самостоятельно в теме, но и написать гайд для тех, кто, как и я, только начинает погружаться в эту тему.

Разбираться будем постепенно: в первой статье покажу, как создать проект с GraphQL с нуля. Поехали!


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

@a_cup_of_java | Другие наши каналы
Ошибки Java по ГОСТу: обзор и примеры

Ошибки в Java по ГОСТу? Да, в этой статье мы вам расскажем, что это за ГОСТ, какие категории ошибок в нём существуют, какие из них относятся к Java, и даже покажем примеры из реальных проектов.


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

@a_cup_of_java | Другие наши каналы
Введение в Jimmer ORM

Совсем недавно статью про ORM-фреймворк Jimmer Михаила Поливахи, эксперта сообщества Spring АйО, опубликовал Baeldung.

Перед вами переработанная и дополненная версия, подготовленная специально для сообщества Spring АйО. В ней Михаил раскрывает ключевые особенности Jimmer: отсутствие JPA-наследия,  декларативные DTO и гибкий DSL и потенциальную интеграцию со Spring.


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

@a_cup_of_java | Другие наши каналы
JEP 519: Компактные заголовки объектов — теперь официально

Команда Spring АйО представляет одну немаловажную фичу Java 25: компактные заголовки объектов (Compact Object Headers). Это позволит JVM экономить память и ускоряться без вмешательства в код.


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

@a_cup_of_java | Другие наши каналы
3
Тестируем Kafka с Testcontainers

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

Сегодня мы рассмотрим, как протестировать Kafka с помощью Testcontainers.

Testcontainers — это библиотека, которая из JUnit-теста запускает Docker-контейнеры как обычные Java-объекты. Вы пишете пару строк — а на фоне поднимается полноценная инфраструктура: база, брокер, Redis, что угодно. После теста контейнер гарантированно останавливается, поэтому окружение всегда чистое, а CI не засоряется процессами.

Kafka в Testcontainers запускается теми же двумя строками. Получаем реальный брокер, который ничем не отличается от продакшен-копии, но живёт ровно столько, сколько идёт тест.


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

@a_cup_of_java | Другие наши каналы
👍3
Когда State уже не спасает: путь к Statechart

В мире разработки программного обеспечения управление состоянием объекта - одна из фундаментальных задач. Когда поведение объекта должно меняться в зависимости от его внутреннего состояния, разработчики часто обращаются к паттерну State. Однако здесь и возникает путаница: его нередко отождествляют с более общей концепцией — State Machine (Конечный автомат), а то и вовсе не видят разницы.

Погрузимся в мир управления состояниями — от простого к сложному!


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

@a_cup_of_java | Другие наши каналы
❤‍🔥3
PVS-Studio доступен в OpenIDE

Этот момент настал — теперь наш плагин доступен для загрузки из маркетплейса OpenIDE. Более подробно рассказываем в этой статье.


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

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