Чашечка 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
Стримы в Java: Как перестать бояться и полюбить filter-map-reduce

Когда-то я считал, что священный грааль итераций — это старый добрый цикл for. Да, тот самый, с индексами, который шагал по массивам как бравый солдат по полю. Я обожал мои циклы и охотно избегал всего, что могло их заменить. Но потом появился он — Stream API. Новомодный, загадочный, пугающий, словно неведомый зверь из функционального леса. И вот я, стоя по колено в коде, задумался: "Как перестать бояться и полюбить filter-map-reduce?"


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

@a_cup_of_java | Другие наши каналы
👍42
📝 Бесплатные курсы для AWS Developer Associate

Если вы планируете сдачу экзамена AWS Developer Associate в 2025 году, воспользуйтесь бесплатными курсами на Udemy и других платформах. Эти курсы помогут вам выиграть в подготовке, предоставляя актуальные знания о AWS и практические навыки, необходимые для успешного прохождения экзамена.

Подробности: http://www.java67.com/2020/08/top-5-free-courses-to-pass-aws-developer-associate-certification.html

#en

@a_cup_of_java | Другие наши каналы
🔥5👍1
Обучение Maven и Jenkins бесплатно: лучшие курсы Udemy

Хотите освоить Maven и Jenkins без затрат? Ознакомьтесь с подборкой бесплатных курсов на Udemy! Эти инструменты необходимы для автоматизации и управления проектами на Java. Узнайте, как установить зависимости и создать пайплайны для непрерывной интеграции и доставки. Начните обучение сегодня, чтобы повысить конкурентоспособность на рынке труда. Обзор лучших онлайн-курсов и книг

Ищете, где изучить программирование, веб-разработку или DevOps? В статье собраны подборки лучших курсов на Udemy и книг для повышения ваших навыков в 2025 году. Подбор включает материалы по различным языкам программирования, тестированию и современным технологиям. Подготовка к собеседованию по Spring: важные вопросы и курсы

На блоге Javarevisited представлены ключевые вопросы для собеседований по Spring, включая Spring Boot, Cloud и MVC. Вы также найдете полезные курсы по Spring Framework. Узнайте, как получить скидки и обновления, подписавшись на рассылку.

Подробности: http://www.java67.com/2018/02/6-free-maven-and-jenkins-online-courses-for-java-developers.html

#en

@a_cup_of_java | Другие наши каналы
SpringBoot Starter Telegram Mapping для вашего бота

В этой статье рассмотрим создание простого SpringBoot стартера для маппинга Телеграм запросов в стиле Spring MVC.


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

@a_cup_of_java | Другие наши каналы
👍1
Как сделать Telegram-бота умнее: пошаговый гайд на Spring AI и Kotlin

Перед вами ещё один гайд о том, как написать свой telegram-бот, который взаимодействует с нейросетью. Мы напишем его таким образом, чтобы с нейросетью можно было вести диалог, т.е. рассмотрим, как сохранять контекст между сообщениями. Но таких гайдов, особенно для Python, уже написано немало. Поэтому напишем его на новом фреймворке Spring AI из эксосистемы Spring. А чтобы совсем было интересно - писать будем на Kotlin)


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

@a_cup_of_java | Другие наши каналы
👍211
Поиск потенциальных уязвимостей в коде, часть 2: практика

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


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

@a_cup_of_java | Другие наши каналы
Рейтинги языков программирования: что за ними скрывается?

Написать эту статью меня побудил один забавный случай. Он хорошо демонстрирует, что не стоит слепо доверять одному источнику, каким бы авторитетным он ни был. Впрочем, обо всём по порядку.

Когда только начинаешь карьеру разработчика, часто гложет сомнение: верно ли я выбрал язык программирования? Может, он уже устарел, или наоборот — слишком новый и не факт, что перспективный? Легко ли будет найти по нему актуальные книги и уроки? Много ли таких неофитов будет вместе со мной обивать пороги ИТ-компаний через год-два?

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

Помочь с выбором языка программирования призваны рейтинги их популярности. Однако тут легко обмануться. Каждый рейтинг составляется по своей методике и даёт разные результаты (порой — весьма неожиданные). В этой статье я постарался сделать более взвешенную оценку популярности языков программирования (далее — ЯП) по нескольким источникам. Подробнее о них и почему это важно — рассказываю ниже.

Индексы популярности

Всё началось с того, что мне попался на глаза свежий рейтинг актуальности ЯП, где в TOP 10 внезапно ворвался Delphi. Пытаясь разобраться в причинах его внезапной популярности в 2025 году, я стал искать методики составления таких списков и нашёл много любопытного. Как обычно, дьявол кроется в деталях.

Индекс TIOBE — известный инструмент мониторинга, показывающий динамику интереса к разным ЯП. Он учитывает частоту поисковых запросов, связанных с ЯП. Для этого каждый месяц в Google, Bing, Yahoo! и Baidu отправляются запросы по определённому шаблону, чтобы отсеивать из выдачи мусор и корректно сравнивать статистические данные. Дополнительно в рейтинге учитывается число образовательных материалов о ЯП: количество видеоуроков на YouTube, книг на Amazon и упоминаний на Wikipedia.


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

@a_cup_of_java | Другие наши каналы
2
Model Context Protocol от Spring AI в Java SDK – новый стандарт для интеграции ИИ в экосистеме Java

Новый перевод от команды Spring АйО расскажет вам, что такое Model Context Protocol (MCP) и как его внедрение в экосистему Java упрощает жизнь разработчикам систем, в работе которых используется искусственный интеллект и LLM, а также передача большого количества данных между различными компонентами.


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

@a_cup_of_java | Другие наши каналы
2
Алгоритм одноразового блокнота на Java

В этой статье будет показан пример реализации алгоритма одноразового блокнота на чистой Java, без сторонних библиотек. В конце статьи есть ссылка на исходный код проекта.
Ознакомиться

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

@a_cup_of_java | Другие наши каналы
1
Лучшие бесплатные курсы Jenkins и CI/CD на Udemy

Ищете бесплатные курсы для изучения Jenkins и CI/CD? В статье собраны 7 лучших курсов Udemy на 2025 год. Узнайте, как автоматизировать процессы разработки, внедряя CI/CD с помощью Jenkins. Эти курсы подойдут как начинающим, так и опытным разработчикам и DevOps-инженерам. Узнайте больше, чтобы начать обучение!

Подробности: http://www.java67.com/2024/06/7-best-free-jenkins-courses-for-java.html

#en

@a_cup_of_java | Другие наши каналы
2
Освойте Docker в 2025 году бесплатно

Хотите изучить Docker и улучшить свои навыки в DevOps? Узнайте о 6 бесплатных курсах на Udemy, подходящих для начинающих и опытных разработчиков. Эти курсы помогут понять основы контейнеризации, автоматизировать разработку и развертывание приложений, а также освоить ключевые концепции Docker. Подробности в статье.

Подробности: http://www.java67.com/2018/02/5-free-docker-courses-for-java-and-DevOps-engineers.html

#en

@a_cup_of_java | Другие наши каналы
Пишем свой 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