Чашечка 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
Тестируем интеграцию с очередями сообщений правильно

Наверняка в вашем проекте используется очередь сообщений (не важно kafka, pulsar или какой-нибудь зайчик). Основной проблемой является подробное тестирование работы вашей системы. Рассмотрим варианты решения и посмотрим, что там у автора в рукаве.
Отправлять сообщения

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

@a_cup_of_java | Другие наши каналы
Туториал по Spring Data Envers для начинающих

Команда Spring АйО перевела статью, которая отлично подойдёт тем, кто ещё не знаком со Spring Data Envers. В статье на простых примерах объясняется, как отслеживать изменения данных в приложении, используя этот инструмент.


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

@a_cup_of_java | Другие наши каналы
🔥2
@Volatile: Лёгкий способ синхронизировать потоки… пока не понадобится атомарность

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

Если кто-то сказал вам, что многопоточность в Java — это просто, то этот кто-то явно что-то недоговаривает. Многопоточность может быть настоящим кошмаром, особенно когда речь заходит о синхронизации данных между потоками. Но есть одно хитрое средство — @Volatile, которое, словно волшебная палочка, помогает синхронизировать потоки без всяких блокировок.

@Volatile — это такой бюджетный способ синхронизации. Он не блокирует потоки, как старый добрый synchronized, но делает важное дело: гарантирует, что все изменения переменной моментально видны всем потокам. Без него потоки могут весело жить с устаревшими данными и даже не догадываться, что все вокруг давно изменилось.

Но сразу скажу:@Volatile — это не универсальная таблетка от всех проблем многопоточности. Он хорош для простых задач, где нужна только видимость изменений. Но как только ваши требования начинают включать атомарные операции или сложную логику — вот тут @Volatile сдаёт позиции. И это нормально. Каждый инструмент имеет свои ограничения, и важно понимать, когда его использовать, а когда бежать за чем-то посерьёзнее.

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


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

@a_cup_of_java | Другие наши каналы
Лучший способ создания нескольких окружений для Spring Boot приложения с помощью Docker Compose

В новой статье от команды Amplicode я расскажу, как можно создать несколько Docker Compose файлов для разных нужд. Например, для продакшена и разработки, и при этом не утонуть в копипасте.


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

@a_cup_of_java | Другие наши каналы
221
Принципы SOLID на примерах из жизни и разработки

Задача этой статьи только одна - попробовать уложить принципы SOLID на понятных «бытовых» примерах, а уже потом посмотреть, как оно может работать на практике - в коде.

Итак, SOLID - это 5 принципов, которые используются при разработке приложений. На каждый принцип по букве:

1. S — Single Responsibility Principle (Принцип единственной ответственности)

Определение: Каждый класс должен выполнять только одну задачу.

Пример из жизни:

Например, мы купили шкаф для одежды.


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

@a_cup_of_java | Другие наши каналы
👍1
Вышел Spring AI 1.0.0 M3

Spring выпустил Spring AI 1.0.0 M3, который принес множество значительных улучшений и новых возможностей в разработку AI-приложений.

В новом переводе от команды Spring АйО рассказывается про улучшения, связанные с observability, совершенствование системы advisor`ов и оптимизацию работы с функциями и embedding моделями.


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

@a_cup_of_java | Другие наши каналы
👍73🔥3
Spring Patterns. Часть 2. Spring + ThreadLocal. AOP. Transaction cache

Всем привет. Я разрабатываю приложения с использованием Java, Spring Boot, Hibernate.
В прошлой статье я показал реализацию паттерна Spring Fluent Interface. При помощи которого можно инкапсулировать похожие действия внутри приложения в модуль, предоставлять клиентскому коду удобный декларативный API, и при этом “кишки” модуля могут использовать “магию” Spring. https://habr.com/ru/articles/846864/
В этой статье я хочу поделиться опытом работы с Spring + ThreadLocal.
Два слова о ThreadLocal.
Это потокобезопасная переменная. Под капотом у которой ConcurrentHashMap. Ключ - текущий поток (там чутка сложнее, но для понимания будет достаточно). Значение может быть любым типом, ThreadLocal типизирована <t. При этом можно инициализировать значение null, или сразу чем-то, например пустым списком.


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

@a_cup_of_java | Другие наши каналы
😁3
InfoQ Dev Summit Munich: How to Optimize Java for the 1BRC

Java applications passed the 1 Billion Row Challenge (1BRC) in 1.5 seconds. 1BRC creator Gunnar Morling detailed their optimizations at the InfoQ Dev Summit Munich 2024. General optimizations applicable to all Java applications cut the runtime from 290 seconds to 20 seconds. Getting to 1.5 seconds required niche optimizations that most Java applications should forego, except for possibly GraalVM.
By Karsten Silz

Read: https://www.infoq.com/news/2024/10/optimize-java-1brc/

@a_cup_of_java | Другие наши каналы
Используем Buildpacks вместо Dockerfile

Привет! На связи Александр Бархатов — DevOps-инженер в крупнейшем продуктовом холдинге и автор статей в медиа вАЙТИ.. Самое популярное средство для сборки контейнеризированного приложения — это Dockerfile, текстовый файл, в котором прописаны специальные инструкции для готовых Docker-образов. Несмотря на всеобщую популярность Docker, в 2011 году вышел инструмент под названием Buildpacks, принцип работы которого мы рассмотрим в этой статье.


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

@a_cup_of_java | Другие наши каналы
Сага об агенте или как LLM может помочь в разработке на Jmix

Всем привет! В последние годы большие языковые модели (LLM) стали набирать огромную популярность в решении множества задач, начиная от классического поиска по документам и заканчивая анализом финансовых новостей для принятия решений. В этой статье мы расскажем, как применили эти технологии для создания интеллектуального помощника, готового ответить на ваши вопросы по Jmix и помочь в написании кода.


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

@a_cup_of_java | Другие наши каналы
2👍1
Лучшие инструменты для Java-разработчиков в 2024 году

Если вы программист Java и не знаете, что изучать в 2024 году, эта статья для вас. В ней описаны ключевые инструменты, которые помогут стать лучше: Docker для автоматизации развертывания, Kubernetes для управления облаком и Git для контроля версий. Также упоминаются Maven, Jenkins и JIRA для управления проектами и тестирования.

Подробности: http://www.java67.com/2018/04/10-tools-java-developers-should-learn.html

#en

@a_cup_of_java | Другие наши каналы
🎓 Бесплатные курсы Git на 2024 год!

Git — незаменимый инструмент для программистов и DevOps. Узнайте о 10 лучших бесплатных курсах на Udemy, которые помогут освоить все его возможности. Курсами можно воспользоваться бесплатно, но поторопитесь — доступ может стать платным в любой момент!

Подробности: http://www.java67.com/2022/07/10-best-free-git-courses-and-tutorials.html

#en

@a_cup_of_java | Другие наши каналы
4
📚 Лучшие бесплатные курсы SQL на Coursera в 2024 году

Интересуетесь SQL и базами данных, но не хотите тратиться на обучение? Coursera предлагает уникальную возможность изучать SQL бесплатно через опцию free-to-audit. Узнайте о топ-5 курсах от лучших университетов и компаний, чтобы начать свой путь в мир данных!

Подробности: http://www.java67.com/2022/07/best-free-sql-and-database-courses-on.html

#en

@a_cup_of_java | Другие наши каналы
🔥2
Топ-10 Курсов по Веб-разработке на Coursera в 2024

Ищете лучшие курсы и проекты по веб-разработке для начинающих? Статья Java67 собрала топ-10 предложений на Coursera. Здесь можно изучить React.js, Angular, основы веб-дизайна и многое другое. Подписка Coursera Plus позволяет получить доступ ко всем курсам сразу.

Подробности: http://www.java67.com/2021/12/best-coursera-plus-courses-for-web-development.html

#en

@a_cup_of_java | Другие наши каналы
Java News Roundup: JDK 24, Tomcat 11.0, Cassandra 5.0, EclipseStore 2.0, Payara Platform, Ktor 3.0

This week's Java roundup for October 7th, 2024 features news highlighting: JEP 489, Vector API (Ninth Incubator), and JEP 484, Class-File API, targeted for JDK 24; the release of Apache projects, Tomcat 11.0.0 and Cassandra 5.0.0; the release of EclipseStore 2.0.0; the October 2024 Payara Platform release; and the release of Ktor 3.0.0.
By Michael Redlich

Read: https://www.infoq.com/news/2024/10/java-news-roundup-oct07-2024/

@a_cup_of_java | Другие наши каналы
HMAC-SHA256 и Telegram Mini App

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

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

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


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

@a_cup_of_java | Другие наши каналы
👎1
ThreadLocal и проблемы с памятью: что вы должны знать

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

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


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

@a_cup_of_java | Другие наши каналы
👍4
Улучшаем процесс ревью в команде

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

Что же можно сделать в каждой из трех ролей, чтобы все остались довольны (и целы)?


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

@a_cup_of_java | Другие наши каналы
Начните свой путь в облачных данных с сертификацией DP-900

Сертификация DP-900, известная как Microsoft Azure Data Fundamentals, подходит для новичков в облачных технологиях. Она помогает освоить основные навыки работы с данными в облаке и оценить знания в контексте сервисов Microsoft Azure.

Подробности: http://www.java67.com/2022/03/5-best-dp-900-certification-courses-and-practice-tests-azure-data-fundamental.html

#en

@a_cup_of_java | Другие наши каналы
👏2
🚀 Выбираем лучшее: ТОП-5 курсов по Angular для веб-разработки в 2025 году

Хотите освоить Angular в 2025 году? Узнайте, какие курсы считаются лучшими для изучения этой мощной платформы для создания динамичных веб-приложений. Список охватывает курсы как для новичков, так и для опытных разработчиков. Время прокачать свои навыки!

Подробности: http://www.java67.com/2021/12/5-best-online-courses-to-learn-angular.html

#en

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