Чашечка 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 AI: Model Context Protocol

Model Context Protocol (MCP) — это унифицированный протокол взаимодействия между большими языковыми моделями (LLM) и внешними источниками данных и инструментами. Spring AI предоставляет очень простой декларативный подход для добавления любых инструментов в контекст LLM с помощью MCP. Мы рассмотрим несколько простых примеров по созданию MCP-клиента и MCP-сервера.


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

@a_cup_of_java | Другие наши каналы
Тест-кейсы на автопилоте: как Spring AI и Atlassian MCP упрощают жизнь тестировщика

Тест-кейсы перестанут быть твоей головной болью и болью твоей команды. Нужно просто перестать их писать. Путь от спецификации до коллекции в тест-менеджере может быть пройден за минуту. Достаточно принимать по одной чайной ложке...

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

Пишу о своих изысканиях в области автоматизации рутинных процессов с помощью Spring AI, Atlassian MCP, Qdrant, OpenAI, Allure TestOps.


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

@a_cup_of_java | Другие наши каналы
Spring Data JPA и Hibernate: ориентируемся на производительность. Часть 3

Команда Spring АйО перевела и адаптировала доклад Мацея Валковяка “Performance oriented Spring Data JPA & Hibernate”, в котором на наглядных примерах рассказывается, как существенно нарастить производительность приложения, оптимизировав его взаимодействие с БД.

Доклад будет опубликован тремя частями. В первой части было рассказано об оптимизации управления соединениями с базой данных. Во второй части мы посмотрели на то, как оптимизировать код и настройки Spring Data и Hibernate, чтобы минимизировать количество отправляемых в базу данных SQL запросов. Третья часть посвящена обзору инструментов, которые могут помочь разработчику правильно организовать работу по регулярной оптимизации производительности приложений, в том числе при работе командой.


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

@a_cup_of_java | Другие наши каналы
Разница между int и Integer в Java

В Java int — примитивный тип данных, а Integer — его оболочка (wrapper-класс). Автоупаковка скрывает различия, но Integer может быть null, что приводит к NullPointerException. Знание этой разницы важно для эффективной разработки и избегания ошибок. Топовые технологии и навыки для программистов в 2024 году

В статье собраны ключевые инструменты и темы, важные для развития IT-специалистов: от Next.js и Python до Spring Framework и NLP. Обзор поможет ориентироваться в современных трендах и подготовиться к собеседованиям.

Подробности: http://www.java67.com/2018/02/what-is-difference-between-int-and-integer-in-Java.html

#en

@a_cup_of_java | Другие наши каналы
Как сортировать объекты в Java: разбор Comparable и Comparator
В статье рассказывается, как правильно упорядочить объекты в Java с помощью интерфейсов Comparable и Comparator. Приведены примеры сортировки по разным критериям и объяснены важные нюансы реализации. Полезно для тех, кто изучает Java.

Подробности: http://www.java67.com/2012/10/how-to-sort-object-in-java-comparator-comparable-example.html

#en

@a_cup_of_java | Другие наши каналы
Генерация случайных строк в Java с SecureRandom
В статье рассказывается, как с помощью класса SecureRandom создавать случайные алфавитные и буквенно-цифровые строки заданной длины. Этот способ безопаснее стандартного java.util.Random и подходит для ключей и идентификаторов. Топовые темы IT и программирования в одном месте. В статье собраны материалы по сертификациям AWS и Azure, backend-разработке, Java, облачным технологиям, data science, DevOps и многому другому — всё для развития навыков и карьерного роста. Архивы публикаций: динамика по годам и месяцам

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

Подробности: http://www.java67.com/2018/01/how-to-create-random-alphabetic-or-alphanumeric-string-java.html

#en

@a_cup_of_java | Другие наши каналы
Forwarded from Типичный программист
15 основ проектирования систем + полезные материалы

Балансировщик нагрузки (Load Balancer) — Распределяет входящий трафик между несколькими серверами, чтобы ни один из них не был перегружен. Повышает отказоустойчивость, доступность и уменьшает время отклика.

API Gateway
— Единая точка входа для всех клиентских запросов в микросервисной архитектуре. Обеспечивает маршрутизацию, аутентификацию, лимиты по частоте, агрегацию запросов.

DNS (Domain Name System)
— Преобразует человеко-читаемые доменные имена в IP-адреса, необходимые для маршрутизации трафика.

Кэш (Cache) — Хранит часто используемые данные в оперативной памяти для ускорения доступа и уменьшения нагрузки на базу данных.

CDN (Content Delivery Network)
— Доставляет статический контент (картинки, CSS, JavaScript и пр.) с серверов, расположенных ближе к пользователям. Снижает задержки и расход полосы пропускания, особенно при работе по всему миру.

База данных (Database)
— Основное хранилище данных. Может быть SQL или NoSQL, поддерживает структурированные запросы, индексацию, транзакции и долговечность данных.

API — Определяет, как сервисы обмениваются данными (обычно через HTTP или gRPC). Обеспечивает модульность и чистое разделение ответственности.

Микросервисы (Microservices) — Делят монолитное приложение на независимые сервисы. Повышают гибкость, позволяют лучше изолировать ошибки и масштабировать отдельные компоненты.

Ограничение частоты запросов (Rate Limiter) — Контролирует максимальное количество запросов, которые может сделать пользователь или сервис за определённый промежуток времени. Защищает API от злоупотреблений и обеспечивает справедливое распределение ресурсов.

Объектное хранилище (Object Storage) — Сохраняет большие блобы (файлы, видео, резервные копии) с высокой доступностью и долговечностью. Примеры — AWS S3, Google Cloud Storage.

Очередь сообщений (Message Queue)
— Позволяет сервисам асинхронно обмениваться сообщениями через очередь (например, Kafka, RabbitMQ). Помогает "развязать" системы и справляться с пиковыми нагрузками.

Шардирование (Sharding)
— Разделяет большие объёмы данных на части по разным базам или таблицам. Способствует масштабированию и ускоряет выполнение запросов.

Репликация (Replication) — Копирует данные с одного узла БД на другие. Повышает отказоустойчивость и ускоряет выполнение запросов на чтение.

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

Мониторинг (Monitoring System)
— Следит за состоянием системы, собирает логи/метрики, оповещает об авариях и отклонениях. Критически важен для контроля, отладки и поддержания работоспособности.


Сохраняем и не забываем, что у вас есть такое золото 😅
👍21
Обработка исключений в рабочих процессах с использованием Flowable

Исключения являются частью любого процесса. Разработчики, создающие бизнес-процессы, должны уметь обрабатывать исключения в бизнес-кейсе, чтобы гарантировать, что сам процесс устойчив и может продолжаться после возникновения сбоев. Логика обработки исключений различается в зависимости от вашей задачи и инструментов, которые у вас есть в распоряжении. В этой заметке я попытался определить различные методы обработки исключений, используя язык паттернов. Каждый паттерн следует определённой структуре, называемой Контекст (общая ситуация, в которой проблема повторяется), Проблема (формулировка), Условия (условия, при которых можно рекомендовать предложенные решения) и Решение. Итак, давайте приступим.


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

@a_cup_of_java | Другие наши каналы
Как настроить ежедневное разделение логов в Java с Log4j
Статья подробно объясняет, как с помощью класса DailyRollingFileAppender настроить автоматическое создание новых лог-файлов каждый день. Это помогает контролировать размер логов и облегчает анализ ошибок в приложениях на Java. Обширный список тем для IT-специалистов и разработчиков

Пост: В статье представлен большой набор ключевых тем из IT и программирования — от Java, Spring и Kubernetes до машинного обучения, веб-разработки и инструментов для интервью. Полезный ресурс для подготовки и саморазвития. Архивы и важные данные сайта Soma Sharma

В статье представлен обзор архивов публикаций с 2012 по 2018 годы, а также сведения о политике конфиденциальности и условиях использования сайта Soma Sharma. Информация поможет лучше понять структуру и историю ресурса.

Подробности: http://www.java67.com/2020/01/how-to-configure-daily-file-rolling-in-log4j-java.html

#en

@a_cup_of_java | Другие наши каналы
DOM и SAX парсеры в Java: ключевые отличия. DOM загружает весь XML в память, удобен для маленьких файлов и поддерживает XPath. SAX — событийный и экономит память, подходит для больших XML. Выбор зависит от размера данных и доступных ресурсов. Лучшие вопросы для подготовки к интервью по Spring

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

Подробности: http://www.java67.com/2012/09/dom-vs-sax-parser-in-java-xml-parsing.html

#en

@a_cup_of_java | Другие наши каналы
Топ-5 новых возможностей JDK 7 для Java-программистов
Java 7 принесла важные улучшения: поддержку String в switch, обработку нескольких исключений в одном блоке, автоматическое закрытие ресурсов, fork-join фреймворк для многопоточной работы и оператор diamond для упрощения дженериков. Узнайте подробности. Лучшие вопросы и материалы для подготовки к интервью по Spring и Java собраны в одном месте. В статьях освещены ключевые темы, от основ до микросервисов, с примерами и рекомендациями для успешного собеседования. Идеально для программистов любого уровня.

Подробности: http://www.java67.com/2012/09/what-is-new-in-java-7-top-5-jdk-7.html

#en

@a_cup_of_java | Другие наши каналы
👀1
Шедевральный трюк Великого Springhoff-а

Доброго времени, Хабр!

Совсем недавно я уволился из компании, в которой хорошей практикой считалось проведение обучающих/развлекающих презентаций для коллег во время ланчей (уволился не из-за этой практики, если что), и так как нынче я живу и работаю не в России, и все мои коллеги ничего не слышали ни про какие Joker-ы и JPoint-ы, то я решил несколько считерить, взять какую-нибудь классную презентацию из этих конференций, перевести и показать коллегам (с указанием ссылки на первоисточники, разумеется, профессиональная этика мне не чужда). Выбор пал на видео Евгения Борисова и Баруха Садогурского "Приключения Сеньора Холмса и Джуниора Ватсона" (кто не смотрел - бегите и смотрите)

Таким образом я перевел два детективных расследования из того видео, и мне захотелось придумать свое собственное, а не только переводить чужие. Оффтопик: это офигеть как непросто. Надо перелопатить кучу информации, зацепиться за какие-нибудь прикольные баги/неочевидные моменты в работе java/фреймворков/etc., выцепить из них те, которые можно объединить в одно общее дело, затем еще антураж придумать, чтобы это был не просто код, а стилизованный код. Long story short: я сделяль. Я очень горжусь этой презентацией, я показал ее коллегам, я показал ее всем друзьям, и теперь вот решил выложить этот материал и тут


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

@a_cup_of_java | Другие наши каналы
👍21
System Design: Чек-лист по сбору и фиксации требований все случае жизни

Если на собеседовании по System Design не уделить внимание требованиям, это почти гарантированно приведёт к провалу — даже если ваше техническое решение идеально. Игнорирование требований — главная причина провала на собеседовании. Уделите этому 5-10 минут, и ваше решение сразу станет в разы сильнее. Расскажем, как собрать и зафиксировать требования чтобы повысить свои шансы при прохождении собеседования в IT-компанию.


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

@a_cup_of_java | Другие наши каналы
Microsoft выпустил бесплатный курс по Model Context Protocol с практикой на Python, C# и Java

Microsoft запустил бесплатный практический курс по протоколу Model Context Protocol (MCP) с примерами на Python, C#, Java и TypeScript для разработки LLM-приложений и серверов MCP.

Читать: «Microsoft выпустил бесплатный курс по Model Context Protocol с практикой на Python, C# и Java»

@a_cup_of_java | Другие наши каналы
Разбираемся со Spring Boot с помощью Spring Debugger

Команда Spring АйО перевела статью о работе со Spring Debugger и о том, как его применение существенно облегчает отладку приложений, написанных с использованием Spring Boot. На момент написания статьи фича доступна только в Ultimate версии IntelliJ IDEA.


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

@a_cup_of_java | Другие наши каналы
Как вывести дату в разных часовых поясах в Java

В статье объясняется, как с помощью SimpleDateFormat и TimeZone отображать дату в разных часовых поясах, например IST и PST. Также даются рекомендации по избеганию ошибок с часовыми поясами и безопасности при работе с многопоточностью. Топ IT-темы 2024: от Java и Spring до машинного обучения и DevOps

В статье собраны самые востребованные направления IT — программирование, облачные технологии, работа с данными и многое другое. Обзор поможет ориентироваться в актуальных трендах и выбрать полезные ресурсы для развития. Архив публикаций с 2012 по 2024 год

В статье представлен подробный архив публикаций по месяцам и годам с 2012 по 2024 год. Данные отражают активность и динамику публикаций за последние годы на платформе блоггера Soma Sharma.

Подробности: http://www.java67.com/2012/12/how-to-display-date-in-multiple-timezone-java.html

#en

@a_cup_of_java | Другие наши каналы
Понимание модификаторов доступа в Java

Статья объясняет четыре вида модификаторов доступа в Java — public, private, protected и package (default). Они регулируют видимость классов, методов и полей, помогая создавать более безопасные и поддерживаемые программы. Глубокий гид по Java и IT: от основ до продвинутых тем и интервью
Статья охватывает ключевые вопросы и темы для программистов, включая Java, Spring, базы данных и многопоточность. Полезно для подготовки к интервью и углублённого изучения технологий. Что скрывается за меню блогов и настройками конфиденциальности?

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

Подробности: http://www.java67.com/2012/12/what-is-public-private-protected-package-default-private-access-modifier-java.html

#en

@a_cup_of_java | Другие наши каналы
Что такое blank final переменная в Java?
Это final-переменная, которую не инициализируют при объявлении, а задают в конструкторе. Если ее не инициализировать во всех конструкторах, компилятор выдаст ошибку. Такой подход удобен для задания неизменяемых значений при создании объекта. Уникальный гид по ключевым темам IT и программирования

Статья представляет обширный список направлений и вопросов для подготовки в IT: от Java и Spring до Python, React и системного дизайна. Полезно для тех, кто хочет углубиться в разные технологии и подготовиться к собеседованиям.

Подробности: http://www.java67.com/2012/09/what-is-blank-final-variable-in-java.html

#en

@a_cup_of_java | Другие наши каналы
System Design: Как бизнес влияет на финальный вид ИТ-Системы и выбор технологий

В System Design нет «правильных» решений — только компромиссы. Бюджет, сроки, команда и законы диктуют, какие технологии выбрать, как масштабироваться и когда идти на жертвы. Разберём, почему определение бизнес-ограничений это важный этап System Design и почему они диктуют Айтишникам как и с чем работать.


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

@a_cup_of_java | Другие наши каналы
HUAWEI откроет исходный код «убийцы» Java и Swift — языка Cangjie

HUAWEI 30 июля откроет исходный код языка Cangjie — альтернативы Java и Swift, созданной для HarmonyOS с упором на ИИ и безопасность

Читать: «HUAWEI откроет исходный код «убийцы» Java и Swift — языка Cangjie»

@a_cup_of_java | Другие наши каналы
😁11
10 важных фактов о потоках в Java для разработчиков

Потоки в Java обеспечивают параллельное выполнение задач, ключевое для производительности и масштабируемости. В статье рассматриваются основные понятия: состояния потока, разница между Runnable и Thread, исполнительные сервисы, методы синхронизации и взаимодействия потоков. Зачем создавать новые потоки в Java, если можно использовать уже существующие? В статье объясняют, как работают thread pool, позволяющие экономить время за счёт повторного использования потоков вместо создания новых. Полезно для оптимизации многопоточности. Советы и хитрости для программирования на Java

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

Подробности: http://www.java67.com/2014/01/10-points-about-thread-and-javalangthread-in-java.html

#en

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