Чашечка 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
Лучший способ создания нескольких окружений для 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 | Другие наши каналы
Обучение Big Data: 5 лучших курсов в 2025 году

Хотите освоить Big Data, Hadoop и Spark? Мы нашли для вас топ-5 курсов, которые помогут изучить эти технологии! Узнайте о лучших платных и бесплатных курсах на таких платформах, как Udemy и Coursera. Начните свой путь в мир высокооплачиваемых IT-вакансий уже сегодня!

Подробности: http://www.java67.com/2022/01/top-5-courses-to-learn-big-data-for.html

#en

@a_cup_of_java | Другие наши каналы
👍2
Опыт разработки приложений java и оформления кода

В этой статье мы обсудим вопросы, с которыми столкнулись разработчики из компании «Наука» при создании Java-приложений и оформлении кода. Эти трудности, «выстраданные» через годы опыта, стали результатом многолетней работы над программным обеспечением для крупных предприятий нефтеперерабатывающей и нефтехимической отрасли.

Наша компания существует уже более 30-ти лет, и на сегодняшний день в ней работает более 100 разработчиков ПО на различных проектах. Одной из основных проблем в нашей компании, и, как мы полагаем, не только в нашей, является большая текучка кадров, в том числе и среди разработчиков. Чтобы упростить и ускорить процесс вхождения вновь пришедших разработчиков в проекты, для программистов, уже работающих в нашей компании, был рекомендован некоторый набор правил по разработке Java-приложений. Также был составлен перечень типовых ошибок при оформлении кода, подробно разобранный на примерах.

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

Мы надеемся, что данная статья может быть полезна back-end разработчикам enterprise-систем, работающим в других IT-компаниях.


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

@a_cup_of_java | Другие наши каналы
👍3😁2
Переход со Spring Boot 2 на Spring Boot 3 в контексте Hibernate, или как не сойти с ума при миграции entity в монолите

Миграция на новые версии фреймворков всегда сопровождается сложностями, особенно если в них произошли значительные изменения. В этой статье мы рассмотрим, с какими проблемами я столкнулся при переходе со Spring Boot 2.x.x на Spring Boot 3.3.1 и Hibernate 6.4+, а также предложим решения, которые могут помочь другим разработчикам избежать аналогичных трудностей при обновлении своих приложений.

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

С выходом Spring Boot 3.3.1 разработчики столкнулись с необходимостью перехода на более новые версии Hibernate (6.2+). Это обновление связано с изменениями в Hibernate, обеспечивающими совместимость с новыми версиями Spring Boot и использование новых возможностей фреймворка.


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

@a_cup_of_java | Другие наши каналы
Kafka Streams ч1: Привет мир

Привет сообщество HABR ! =)

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

Несмотря на обилие ресурсов по Kafka Streams и отличные статьи на Хабре [ноль, один, два], мне не хватало пошаговых руководств, которые детально раскрывают изъяны и преимущества этой технологии. Поэтому решил создать такой материал, чтобы помочь другим разобраться структурно и последовательно.


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

@a_cup_of_java | Другие наши каналы
❤‍🔥6