Чашечка Java
8.57K subscribers
3.88K photos
13 videos
56 files
6.33K links
Лучшие материалы по Java на русском и английском

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

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

Другие каналы: @tproger_channels
Download Telegram
Как читать сообщения, если никто из брокеров не предоставил удобный интерфейс

Пишите вы себе EDA на основе Apache Kafka, и ваши сервисы тщательно логируют все свои действия, процесс отлажен и работает годами. Вдруг один из сервисов отчитался в логах, что отправил событие в брокер, но другой по какой-то его не прочитал. Как понять, кто виноват?

Как правило, брокер сообщений между сервисами – черная коробка, которая работает, что называется «As Is». Разработчики подключают зависимости, вешают аннотации консюмеров и продюсеров, оно заводится и все рады. Но что они там подключили и как это работает никто не видит.

Так давайте же посмотрим, как мы можем открыть этот чёрный ящик на примере наиболее популярных брокеров сообщений.


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

@a_cup_of_java | Другие наши каналы
Project Leyden Ships Third Option for Faster Application Start with JEP 483 in Java 24

In Java 24, Project Leyden’s JEP 483, "Ahead-of-Time Class Loading & Linking", starts Java applications like Spring PetClinic up to 40% faster without code changes or new application constraints. It needs a training run to build a cache file that ships with the application. With GraalVM Native Image and CRaC, the startup is 95-99% faster but faces more constraints. Leyden plans more improvements.
By Karsten Silz

Read: https://www.infoq.com/news/2025/03/java-24-leyden-ships/

@a_cup_of_java | Другие наши каналы
Автоматизация деплоя: из Bitbucket через Jenkins в MicroK8s — опыт финтех-разработчика

Всем привет! Я — Java-разработчик с пятилетним опытом в финтехе, и сегодня я расскажу, как настроить CI/CD для деплоя Spring Boot приложения из Bitbucket через Jenkins в MicroK8s. Это не просто теория — я поделюсь реальным кейсом, разберу ошибки, с которыми столкнулся, и дам рабочий код. Если вы хотите автоматизировать деплой и не наступать на грабли — поехали!

Представьте: у вас есть микросервис на Spring Boot, который нужно быстро и без ошибок доставить в продакшен. Ручной деплой отнимает время, а команда требует стабильности. Я решил эту задачу с помощью Bitbucket, Jenkins и MicroK8s, но путь оказался не таким гладким, как хотелось бы. Проблемы с аутентификацией, конфликты портов и настройка окружения заставили меня попотеть. Как я справился? Об этом — в статье.

CI/CD (Continuous Integration/Continuous Deployment) — это must-have для современных разработчиков. Автоматизация сборки, тестирования и деплоя приложений экономит время, снижает вероятность ошибок и ускоряет доставку кода до продакшена. В этой статье мы разберем, как настроить полноценный CI/CD-пайплайн для Spring Boot приложения, используя связку Bitbucket, Jenkins и MicroK8s.


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

@a_cup_of_java | Другие наши каналы
Как применять happens-before на практике и в чем основные преимущества этой концепции

Основные правила применения концепции happens-before

Читать: «Как применять happens-before на практике и в чем основные преимущества этой концепции»

@a_cup_of_java | Другие наши каналы
3
Java 24! Спецвыпуск Java Digest

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

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

@a_cup_of_java | Другие наши каналы
👍3
Новый релиз Java 24: что нового

Oracle представила Java 24, не являющуюся LTS-версией. Главные новинки: экспериментальные функции Generational Shenandoah и Compact Object Headers. Java 24 ускоряет запуск приложений и расширяет возможности API Stream. Подробности о новых функциях и ожиданиях от JDK 25 читайте далее.

Подробности: https://www.infoq.com/news/2025/03/java24-released/

#en

@a_cup_of_java | Другие наши каналы
👍4
Функциональное программирование в Java

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

В этой статье я опишу функциональное программирование и расскажу, как оно реализовано в Java. Помимо вопроса «что это?», я постараюсь ответить на вопросы «зачем?», «когда?» и «как?» это используется.


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

@a_cup_of_java | Другие наши каналы
👍4
Forwarded from Типичный программист
Этот текст видят только те, кто хотел писать про IT, но всегда откладывал

Редакция Tproger запустила свой канал для авторов, где учат писать лучше. Если давно хотели попробовать себя в IT-журналистике — самое время начать.
Почему As Code — это не просто тренд, а новая реальность разработки

В статье Максим Морев расскажет, что такое подход As Code, как он развивался и почему он нужен компаниям.

Читать: «Почему As Code — это не просто тренд, а новая реальность разработки»

@a_cup_of_java | Другие наши каналы
👍1
Шатаем ActiveMQ

Пожалуйста обновите ActiveMQ после прочтения этой статьи. Рассказ об одной известной атаке на инфраструктуру крупных ИТ-проектов — брокер сообщений Apache ActiveMQ.


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

@a_cup_of_java | Другие наши каналы
2
Регистрация по взрослому: @AuthenticationalPrinciple, JWT, UserDetails

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

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

Сегодня я покажу как решить эту проблему.


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

@a_cup_of_java | Другие наши каналы
Неблокирующий вызов внешнего сервиса в процессе

Довольно часто из процесса приходится обращаться по API к различным внешним сервисам. По сути, это стандартный сценарий оркестрации систем или даже микросервисов (пардон за модное слово). На BPMN диаграмме это выглядит просто и логично – постучались куда-то по API, получили ответ и перешли к следующей задаче. Для моделей аналитического уровня это нормально.

Однако, переходя к исполняемой модели, надо учитывать, что внешний сервис может быть недоступен или просто отвечает очень небыстро. Что происходит с процессом в это время?


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

@a_cup_of_java | Другие наши каналы
🫡1
Hexagonal Architecture: Почему старая добрая многослойка больше не работает?

Что такое Hexagonal Architecture. Показываем основные возможности применения гексагональной архитектуры в программировании. Рассматриваем пошаговую инструкцию и основные нюансы

Читать: «Hexagonal Architecture: Почему старая добрая многослойка больше не работает?»

@a_cup_of_java | Другие наши каналы
Эффективный подход к тестированию веб-контроллеров в Spring Boot приложениях

Команда Spring АйО перевела статью о том, как правильно подходить к тестированию веб-контроллеров в Spring Boot приложениях, чтобы не делать лишнюю работу, но и не упускать важных аспектов процесса тестирования.


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

@a_cup_of_java | Другие наши каналы
На страже производительности Spring Boot приложений: Профилирование и оптимизация

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

В этой статье мы подробно рассмотрим, как можно оптимизировать производительность Spring Boot приложений, используя базовые методы профилирования и тюнинга. Особое внимание будет уделено таким аспектам, как профилирование процессора и памяти, оптимизация сборки мусора и тюнинг виртуальной машины Java (JVM).


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

@a_cup_of_java | Другие наши каналы
В поисках идеального Database-клиента для IDE: Amplicode выбирает DBeaver

Один из частых вопросов, которые мы слышим от наших пользователей, связан с заменой встроенного инструмента для работы с БД, доступного ранее в IntelliJ IDEA Ultimate. В связи с тем, что DataGrip больше не доступен (а именно так называлась эта функциональность), многим разработчикам приходится искать альтернативу инструменту.

Нас эта проблема волнует не только как разработчиков Amplicode, но и как участников проекта OpenIDE. Мы считаем очень важным предоставить российским разработчикам максимально удобное и мощное решение.


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

@a_cup_of_java | Другие наши каналы
🤨3👍2
Генерация случайных чисел


Картинка Benzoix, Freepik

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

Рассмотрим наиболее известные применения случайных чисел и способы их получения как программным способом, так и комбинированным (программно-физическим).

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

@a_cup_of_java | Другие наши каналы
JavaOne 2025: Новое из мира Java

Первый день JavaOne 2025 открылся в Калифорнии с выпуском JDK 24. На ключевой презентации обсуждалось развитие Java и роль Oracle в ее сохранении и инновациях. Участники узнали решения 11 проблем разработчиков, а также об анонсе нового образовательного ресурса Learn.java.

Подробности: https://www.infoq.com/news/2025/03/day-one-java-one-2025/

#en

@a_cup_of_java | Другие наши каналы
Ученые из Гарварда оценили все open-source проекты в $8,8 трлн

Гарвард оценил ценность open-source в $8,8 трлн: 96% IT-продуктов используют свободный код, но создают его лишь 5% разработчиков

Читать: «Ученые из Гарварда оценили все open-source проекты в $8,8 трлн»

@a_cup_of_java | Другие наши каналы
Концерт для Java с ИИ — разработка готовых к продакшен LLM приложений (часть 2)

Команда Spring АйО перевела и адаптировала доклад Томаса Витале “Concerto for Java and AI — Building Production-Ready LLM Applications”, в котором рассказывается по шагам, как усовершенствовать интерфейс приложения с помощью больших языковых моделей (LLM). В качестве примера автор доклада на глазах слушателей разрабатывает приложение-ассистент для композитора, пишущего музыку для фильмов.

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


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

@a_cup_of_java | Другие наши каналы
Что такое хэш-таблицы и как их использовать

Что такое хэш-таблицы. Показываем основные преимущества хэш-таблиц в программировании. Рассматриваем пошаговую инструкцию и основные нюансы Tproger

Читать: «Что такое хэш-таблицы и как их использовать»

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