Чашечка 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
Пишем свой Config Provider для Kafka Connect с поддержкой значений по умолчанию

Для инжекции значений из различных источников в конфигурации тасок Kafka Connect используются различные реализации интерфейса org.apache.kafka.common.config.provider.ConfigProvider. Это специализированный интерфейс, реализации которого отвечают за то, чтобы подставить значения используя различные источники.


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

@a_cup_of_java | Другие наши каналы
Стримы в Java: Как перестать бояться и полюбить filter-map-reduce (Часть 2)

В первой части мы поговорили про основы Stream API и убедились, как элегантно можно обрабатывать данные, используя цепочки операций. Но возможности на этом не ограничиваются. Пришло время подняться на новый уровень и посмотреть, что случается, когда добавляется параллельность. Как работают параллельные стримы под капотом? Чем они отличаются от ручного управления потоками? А как же всемогущий Spring и необычная RxJava? Именно об этом и пойдёт речь во второй части.


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

@a_cup_of_java | Другие наши каналы
❤‍🔥2
Яндекс представил SourceCraft — свой аналог GitHub

Яндекс запустил SourceCraft — аналог GitHub с CI/CD, ИИ-ассистентом и интеграцией с Yandex Cloud. Платформа уже доступна в тестовом режиме

Читать: «Яндекс представил SourceCraft — свой аналог GitHub»

@a_cup_of_java | Другие наши каналы
👍6👎1
Дикая Java

«Безопасный язык» говорили они, «четкая спецификация» говорили они, «Java не даст вам выстрелить себе в ногу» и прочее и прочее. Реальность же оказалась куда веселее официальной документации.

«Ибо JVM темна и полна ужасов». (ц)
Погрузиться

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

@a_cup_of_java | Другие наши каналы
😁2
За кулисами JIT: Секреты HotSpot JVM C2 компилятора (Часть 1)

Новый перевод от команды Spring АйО расскажет вам о разных уровнях JIT (Just in Time) компиляции, о преимуществах такого подхода к компиляции Java приложений по сравнению с традиционным способом, а также покажет на примерах, что происходит при компиляции приложения и какой ассемблерный и машинный код будет сгенерирован при использовании разных опций JIT компиляции.


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

@a_cup_of_java | Другие наши каналы
Поиск утекающих ресурсов в Java приложении

Привет, сообщество! Меня зовут Данила, я ведущий разработчик в БФТ-Холдинге.
Я расскажу вам о нашем опыте борьбы с утечкой памяти в сервисе авторизации. Как наша команда столкнулась с критической проблемой, которая приводила к сбоям сервиса, и нам пришлось провести исследование, чтобы найти и устранить причину утечки ресурсов.

Как все начиналось: из бэклога прилетела задача с формулировкой – при эксплуатации authz-server на контуре PROD наблюдается активная утечка памяти, которая приводит к прекращению работы сервиса по причине достижения лимитов по RAM.

Контур PROD уже звучит грозно, приоритет критический, надо разбираться. После недолгого анализа исходников выяснено: обычный Spring Boot сервис c gRPC библиотекой, который выполняет 2 функции – поход в базу за данными пользователей (ФИО и роли) и проверку наличия доступа к конкретному ресурсу для конкретного пользователя. Первая функция тривиальная – «дай по id такого-то пользователя, если нет, то скажи, что его нет». Вторая функция немного сложнее: нужно вызвать метод сторонней библиотеки и передать в него 5 параметров. И всё, но на PROD график использования heap вот такой:


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

@a_cup_of_java | Другие наши каналы
Как правильно мигрировать БД в продакшене с использованием Liquibase и Flyway

Новый перевод от команды Spring АйО расскажет вам о вызовах, которые ставит перед разработчиками создание скриптов миграций баз данных и их организация, особенно при работе с большими системами.

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


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

@a_cup_of_java | Другие наши каналы
👍2
Лучшие бесплатные курсы по React на Udemy в 2025 году

React — один из самых популярных фреймворков для разработки пользовательских интерфейсов. Если вы планируете изучать React в 2025 году, Udemy предлагает ряд бесплатных курсов, которые помогут вам освоить этот мощный инструмент. Узнайте о преимуществах React и начните путь к созданию современных веб-приложений. Лучшие бесплатные курсы по React для вас!

В статье описаны разнообразные бесплатные курсы по изучению React. Если заинтересованы в платном обучении, стоит обратить внимание на курс "React - The Complete Guide" от Максимиллиана Шварцмюллера, охватывающий новейшие изменения в React. Поделитесь статьей с друзьями! Подготовьтесь к собеседованию с Javarevisited

Javarevisited предлагает обширный список вопросов для подготовки к собеседованиям по Java, SQL, Spring и многим другим темам. Узнайте, как улучшить свои знания и навыки, чтобы успешно пройти собеседование в IT-сфере. Подписка на обновления и курсы поможет быть в курсе новинок.

Подробности: http://www.java67.com/2018/02/5-free-react-courses-for-web-developers.html

#en

@a_cup_of_java | Другие наши каналы
Разработка приложения с авторизацией пользователя Java 17 + SpringBoot 3.4 + Keycloak 26

Столкнулась на проекте с задачей по настройке флоу auth2 для Java приложения с использованием Keycloak в качестве сервера авторизации.
Вроде бы информации много на разных ресурсах и документация есть, но встречаюсь с такими нюансами: версии Keycloak-а меняются так, что утсраевают старые примеры, никто уже не использует их адаптер, на который массу примеров; меняются версии Spring и их примеры тоже быстро устаревают и прошлые варианты реализации всё равно надо по новому переписывать в новых версиях. Плюс для меня это был новый опыт работы с auth2, потому, конечно, множество источников пришлось перелопатить.
Потому решила написать небольшую инструкцию как в общем я реализовывала эту задачу.

Версии на момент разработки:
Java Coretto 17,
SpringBoot 3.4.1,
Keycloak 26.0.7.

Репозиторий:https://github.com/ElenaSpb/keycloak-example
1. Настройка Keycloak для локальной разработки

1.1 Cкачиваем последнюю версию, запускаем.
У меня он скачен в c:\distr\keycloak, перехожу там в папку \bin и запускаю сервер Keycloak командой kc.bat start-dev --http-port 8085 . На порту 8085 в dev профиле делаю.
1.2 При первом запуске он просит создать пользователя temporary admin user, админа сервера то есть, задав логин и пароль, создаю lenas / lenas.
Вот логи:


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

@a_cup_of_java | Другие наши каналы
👍1🔥1
Новые интересные диагностики в PVS-Studio 7.35

С релизом PVS-Studio 7.35 в анализаторе появилось много новых диагностических правил. Вас ждёт: много MISRA для C, новые Unity-диагностики для C# и покрытие OWASP Top 10 для Java и многое другое!
Подробности вы сможете узнать в этой заметке.
>>>

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

@a_cup_of_java | Другие наши каналы
Можно ли спасти LinkedList? Пишем быстрый List на связном списке

Существует мнение, что LinkedList - неудачная коллекция и всегда и везде лучше использовать ArrayList. И так оно и есть =)

Давайте поможем LinkedList и сделаем его лучше и быстрее с помощью простой пластиковой бутылки кеширующего массива.
Вы увидите, как он обгонит ArrayList на 10 миллионах элементов и 100 тыс операциях в тестах, имитирующих реальную работу приложения.


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

@a_cup_of_java | Другие наши каналы
2
За каким чертом нам SpringExtension?

Новый перевод от команды Spring АйО расскажет вам, что такое SpringExtension, как правильно пользоваться этим расширением и когда его надо (или не надо) регистрировать вручную.


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

@a_cup_of_java | Другие наши каналы
👍2
Что на радаре в Java: программа JPoint 2025

Конференцию JPoint мы проводим уже 12 лет. За это время немало оперативки утекло, и актуальные для Java-разработчиков темы ощутимо изменились: например, когда мы всё начинали, ещё толком не было Kotlin. Какие-то понятия можно назвать «вечными» (например, о базах данных говорят из года в год), но и там конкретные темы докладов меняются.

А что будет на новом JPoint в апреле? Какие инструменты и подходы актуальны для разработчиков в 2025-м?

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

А во-вторых, у нас есть просьба. Чтобы делать программу как можно актуальнее, мы затеяли инициативу TechRadar. Если вы Java-разработчик, по возможности пройдите опрос о том, какими технологиями пользуетесь. Так и доклады получатся максимально соответствующими запросам сообщества, и без результатов опроса вас тоже не оставим — сможем позже все их как следует обсудить!


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

@a_cup_of_java | Другие наши каналы
Как не сломать прод: настройка CORS и заголовков безопасности в ASP.NET

Настраиваем CORS и заголовки безопасности в ASP.NET: защищаем API от несанкционированных запросов, XSS-атак и утечек данных. Разбираем ключевые настройки без лишней головной боли.

Читать: «Как не сломать прод: настройка CORS и заголовков безопасности в ASP.NET»

@a_cup_of_java | Другие наши каналы
👍2
История о том, как мы в ОК упрощали процесс создания API

Представьте ситуацию: у вас есть большой «зрелый» ИТ-продукт, но специалистов, способных его поддерживать, крайне мало. Что делать, в такой ситуации — продолжать «тянуть чемодан без ручки» или искать способ перехода на понятные и распространенные технологии?

Не так давно команда ОК столкнулась с подобной дилеммой: исторически для отображения страниц мы использовали server-side рендеринг на базе GWT (Google Web Toolkit) и RDK (наша внутренняя разработка), так как разработка первой версии ОК началась более 20 лет назад. Такой набор технологий «под капотом» был оптимален в те времена, но сейчас он, мягко говоря, не самый желательный. Поэтому нам было важно перейти на более распространенную библиотеку, а точнее — на React. Это мы и начали делать итеративно, шаг за шагом для каждого раздела сайта.

Меня зовут Александр Косницкий, я разработчик в компании ОК. В этой статье я расскажу, как мы переводили на React раздел «Обсуждения»: с чего начинали, с чем сталкивались и как в результате смогли получить то, что поможет не только нам, но и остальным командам с переводом на новую библиотеку их собственных разделов.


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

@a_cup_of_java | Другие наши каналы
Лучшие курсы Udemy для изучения AWS S3 и DynamoDB в 2025 году.

Ищете качественные курсы для изучения AWS S3 и DynamoDB? В статье представлены лучшие программы от Udemy, Coursera и Pluralsight для всех уровней подготовки. Эти курсы помогут не только освоить ключевые сервисы AWS, но и подготовиться к сертификациям AWS.

Подробности: http://www.java67.com/2020/08/top-5-courses-to-learn-aws-s3-and-dynamoDB-in-depth.html

#en

@a_cup_of_java | Другие наши каналы
Исследуем возможности ИИ писать код. Часть 1

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


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

@a_cup_of_java | Другие наши каналы
Утренний рефакторинг с Дженной Ортегой*

На относительно простом примере показываю как можно сделать программу «снова великой». Ключевые стадии рефакторинга, Java, эмулятор и Jenna Ortega в нейросетевом исполнении.


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

@a_cup_of_java | Другие наши каналы
Подготовка к экзамену GCP Data Engineer: бесплатные курсы

Текст поста: Если вы планируете сдачу экзамена на Google Cloud Professional Data Engineer в 2025 году, обратите внимание на 5 бесплатных курсов на Udemy. Эти курсы помогут вам овладеть необходимыми навыками и успешно пройти сертификацию, открыв двери к профессиональному росту.

Подробности: http://www.java67.com/2020/10/5-free-courses-to-pass-google-cloud-professional-data-engineer-certification-exam.html

#en

@a_cup_of_java | Другие наши каналы
👍2
Реализация постквантовых алгоритмов на Java и Go

В последнее время в СМИ много публикаций о новых квантовых компьютерах, которые представляют угрозу для современной криптографии. Например, недавно Google сообщила о разработке квантового процессора Willow, который в специально сформулированной задаче превышает производительность самого мощного суперкомпьютера в септиллион раз (септиллион = 1025).

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


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

@a_cup_of_java | Другие наши каналы
3200% нагрузки на процессор

Совсем недавно моя машина была в таком запущенном состоянии, что я едва мог подключиться к ней через ssh. 3200% нагрузки на CPU — полностью использовались все 32 ядра хоста! Сравните это с моим последним багом, когда использовалось всего одно ядро, то есть 100%

К счастью, я использовал среду выполнения Java 17, у которой были дампы потоков с указанием времени CPU!


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

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