Чашечка 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
Что такое хэш-таблицы и как их использовать

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

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

@a_cup_of_java | Другие наши каналы
Разработка Java-проекта с Jmix AI Assistant

Эта заметка инспирирована статей на Хабре Разработка Java-проекта с ChatGPT-4: от идеи до реализации [1]. После ее прочтения автор начал экспериментировать в разработке ПО с различными AI ассистентами.

Увидев статью блога Jmix AI Assistant — ваш помощник в освоении Jmix, решил реализовать с помощью Jmix AI Assistant приложение аналогичное приведенному в статье [1].

Главное отличие от указанной статьи в том, что вся разработка будет вестись с помощью одного инструмента Jmix AI Assistant без использования сторонних генераторов кода.


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

@a_cup_of_java | Другие наши каналы
Курсы по чат-ботам: лучшее онлайн-обучение для специалистов по разработке чат-ботов

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

Читать: «Курсы по чат-ботам: лучшее онлайн-обучение для специалистов по разработке чат-ботов»

@a_cup_of_java | Другие наши каналы
Понимание различий: наблюдаемость против мониторинга против APM против профилирования

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


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

@a_cup_of_java | Другие наши каналы
Allurium — java framework для автотестов. Мультиязычные, близкие к bdd репорты, без bdd структуры

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

Работа в автоматизации тестирования стала моей оффициальной профессией несколько лет назад. За это время мне довелось позаниматься очень широким спектром задач, в зависимости от компаний, где я работал. Начиная с тестирования пользовательских интерфейсов различных сайтов, web и мобильных приложений, обязанности заводили меня глубоко в тестирование сложных API сервисов и даже автоматизацию десктопных программ.

Первые годы я плотно занимался тестированием Web приложений на Java, хотя начинал не с неё. Разумеется, перепробовав много подходов, я нашёл для себя любимый stack, который применял при наличии свободы выбора. Для меня это сложилось в TestNg + Selenium + Allure. Естественно, мне приходилось работать со знаменитым Cucumber, а потом и вообще с чудовищьным (на мой взгляд) Serenity и ещё многими другими решениями, включая кастомные разработки разных людей.

Моё расположение никогда не лежало в сторону BDD, так как чаще всего я сам читал отчёты и проверял тесты, и в 100% случаев сам составлял сценарии с Gherkin (иногда по предоставленным сценариям, чаще нет). Так называемое удобство, дающее BDD пользователю, сводилось к минимуму, а вот взамен требовало многое — небоскрёбы из обёрток классов, сложности с наследованием, необходимость создавать кучу дубликатов мизерных действий, абсолютное неудобство передачи данных между шагами и процессами и прочие трудности.


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

@a_cup_of_java | Другие наши каналы
👍32
Жизненный цикл бина в Spring

Разобраться в жизненном цикле бина в Spring бывает непросто: информация разбросана, а объяснения часто сложные и перегруженные деталями. Эта статья — простой и понятный "чек-лист", где все этапы разобраны на живых примерах


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

@a_cup_of_java | Другие наши каналы
👍9
Новое в Spring: обновления и релизы

Весной 2025 года в экосистеме Spring произошло множество значимых обновлений. Обновления коснулись таких компонентов, как Spring Boot, Security, Auth Server, GraphQL и многих других. Среди новшеств — улучшения в поддержке OpenTelemetry и новые свойства для Spring Batch. Эти обновления делают инструменты ещё более мощными и удобными для разработчиков.

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

#en

@a_cup_of_java | Другие наши каналы
3
Загляните в будущее Java: Quarkus и JBang

В мире Java новый подход Quarkus обеспечивает высокий уровень производительности, упрощая жизнь разработчиков. Платформа JBang предлагает лёгкий способ работы без сложных настроек, помогая как новичкам, так и профессионалам. Инновации делают Java-девелопмент проще и быстрее!

Подробности: https://www.infoq.com/podcasts/simplify-system-learning-ecosystems/

#en

@a_cup_of_java | Другие наши каналы
Новости Java: Выпуск JDK 24 и многое другое

Oracle представила JDK 24 с 24 JEPами, обновлён GraalVM для JDK 24 с новыми функциями GNN и SkipFlow. Apache Kafka 4.0 и обновление Spring прошли с учётом исправлений CVE. Также состоится JavaOne 2025. Следите за обновлениями, чтобы узнать больше!

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

#en

@a_cup_of_java | Другие наши каналы
RabbitMQ и Kotlin: делаем свою event-driven Jira на Spring

В этой статье мы рассмотрим, как можно в один клик развернуть RabbitMQ в облаке. Также напишем простое приложение на Spring Boot и Kotlin, которое будет взаимодействовать с этим брокером сообщений.


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

@a_cup_of_java | Другие наши каналы
3
Автоматизация тестирования, которая не ломается при первом редизайне

Автоматизация тестирования, которая не ломается при первом редизайне

Как мы проектировали, внедряли и поддерживаем живую систему автотестов


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

@a_cup_of_java | Другие наши каналы
Forwarded from Типичный программист
Разбираемся с System Design: всё, что нужно знать в одном репо с наглядными примерами

— Архитектура сервисов: монолит, микросервисы, API-шлюзы, балансировка нагрузки, БД.
— Протоколы: REST, gRPC, WebSockets, проектирование API, оптимизация нагрузки.
— DevOps: CI/CD, мониторинг, Kubernetes, контейнеризация, облака.
— Разбор архитектуры крупных компаний: Netflix, Twitter, Discord, Amazon Prime Video.

Погружаемся в системный дизайн — здесь.

#архитектура
👍43
Как мы перестроили комментарии в ОК: от линейного хаоса к веточной гармонии

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

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


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

@a_cup_of_java | Другие наши каналы
Context Collapse: как микросервисы могут сойти с ума

Даже самая идеальная микросервисная архитектура может упасть. В статье обсудим зарубежный материал, где автор рассказывает о проблеме Context Collapse.

Читать: «Context Collapse: как микросервисы могут сойти с ума»

@a_cup_of_java | Другие наши каналы
Подводный камень в docker env и java

Столкнулся с небольшим с интересным моментом: внедрение переменных окружения (а ля environment variables) в стандартный микросервис написанный на Java (классика жанра – Spring Boot).
(Тема не сложная)

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

@a_cup_of_java | Другие наши каналы
Создаем Spring Boot Starter для Kafka с Avro: пошаговое руководство

Интеграция Apache Kafka в проекты на Spring Boot часто требует много boilerplate-кода.

В этой статье я делюсь опытом создания кастомного стартера kafka-spring-boot-starter, который упрощает настройку продюсера и консюмера Kafka с поддержкой Avro-сериализации.

Рассказываю, как решал проблемы с тестами (например, auto.offset.reset=latest) и адаптировал стартер для гибкой работы со схемами.

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

Бонус в конце — удобный обзор ключевых настроек Kafka для продюсера и консюмера.


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

@a_cup_of_java | Другие наши каналы
👍4
15 вопросов с собеседований по фронтенду для мидлов

Пов: вы пришли на собес на мидла. В статье — ищите вопросы и пытайтесь ответить сначала сами. Если не получается — ответы и решения тоже есть.

Читать: «15 вопросов с собеседований по фронтенду для мидлов»

@a_cup_of_java | Другие наши каналы
1❤‍🔥1💊1
JavaOne 2025: второй день конференции!

На второй день JavaOne 2025 внимание было сосредоточено на FFM API, виртуальных потоках и развитии Jakarta EE. Обсуждали, как FFM API решает проблемы JNI, использование виртуальных потоков для улучшения микросервисов с Helidon и модернизацию Java с помощью Kubernetes.

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

#en

@a_cup_of_java | Другие наши каналы
Сравнение SpringRunner со SpringExtension и @SpringBootTest

Команда Spring АйО перевела статью о том, как и когда использовать SpringRunner, SpringExtension и @SpringBootTest, когда их целесообразно комбинировать и как правильное понимание этих компонентов может помочь сделать тесты проще, быстрее и более узконаправленными.


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

@a_cup_of_java | Другие наши каналы
Инъекция блокнотом или история о том, как мы новые диагностики делали

В этой статье я немного расскажу о том, как в Java осуществляется вызов команд уровня операционной системы. Также поговорим про OS Command и Argument Injections и про то, как мы делали диагностики, которые могут помочь в их обнаружении.


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

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

Всем привет! Долгое время был читателем, настало время стать пейсателем :-)

За долгие годы работы в области программирования на java, накопилась кое какая информация, которая, я думаю, поможет новичкам, в продвижении в этом направлении. Буду периодически постить, по мере наличия времени, так что на некоторую нерегулярность постов — не серчайте:-)

Кроме того, хотел сразу открыто сказать, что буду юзать для этого нейросеть, чтобы упростить сбор информации. Но — «под строгим родительским контролем»! :-B
Что впрочем не исключает того, что она (или я) — будем галлюцинировать и всячески бредить :-))).

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

Ещё хотел сказать что будет и чего не будет: будет — теория, примеры. Не будет — медленной раскачки, плавных переходов между абзацами. То есть: всё сухо, чётко, конкретно. «Пускай безобразно — зато однообразно: всё прямоугольно и параллельно» :-))))

Двигаться в обучении мы будем не фрагментарно, а прямо с самого начала, поступательно, рассматривая весь необходимый круг вопросов.

Если у вас есть что сказать по теме — дать плюшек или кинуть ботинком — всегда велком, т.к. для конечного результата все эти уточнения — только на пользу…

Итак…


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

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