Чашечка 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
Стандартизация без боли: как строгий синтаксис экономит время и нервы

Когда проект начинается, разработчику хочется только одного — свободы творчества. Писать код быстро и так же быстро получать результат. Но со временем появляются баги, регрессии, архитектура, миграции... И вот тогда свобода оборачивается болью: оказывается, что один и тот же результат в коде можно выразить десятком способов — и все они несовместимы друг с другом.

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


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

@a_cup_of_java | Другие наши каналы
Java 25 представил Stable Values API — новый способ ленивой и безопасной инициализации неизменяемых объектов. Это ускоряет запуск приложений, позволяя откладывать создание тяжелых компонентов до момента реальной необходимости. Особенность в поддержке JVM-оптимизаций для стабильных значений.

Подробности: https://www.infoq.com/news/2025/06/java25-stable-values-api-startup/

#en

@a_cup_of_java | Другие наши каналы
Обновления Java и экосистемы: вышел двенадцатый релиз GlassFish 8.0, четыре JEP для JDK 25, представлен GPU-ускоренный GPULlama3.java на базе TornadoVM, а также новые версии Hibernate Reactive, Spring Cloud и других популярных инструментов.

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

#en

@a_cup_of_java | Другие наши каналы
MultiDirectory: российская альтернатива Active Directory с 2FA, SSO и совместимостью с AD

MultiDirectory от компании МУЛЬТИФАКТОР — современная служба каталогов для централизованного хранения данных и управления информацией о пользователях, группах и сетевых ресурсах. Она помогает российским компаниям администрировать инфраструктуру с помощью удобных инструментов и гибких механизмов для поиска и фильтрации данных. Рассказываем об особенностях и функционале MultiDirectory.

Читать: «MultiDirectory: российская альтернатива Active Directory с 2FA, SSO и совместимостью с AD»

@a_cup_of_java | Другие наши каналы
3
Архитектурные принципы Spring Security. Часть третья

Команда Spring АйО перевела и адаптировала доклад Даниэля Гарнье-Муару “Spring Security Architecture Principles”, в котором на наглядных примерах рассказывается, как пользоваться возможностями Spring Security, не запутываясь на каждом шагу и не зарабатывая себе головную боль.

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


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

@a_cup_of_java | Другие наши каналы
3
Семантический поиск по статьям Хабра в PostgreSQL + индексация текстов LLM в Ollama

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


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

@a_cup_of_java | Другие наши каналы
2👍1😁1
Эволюция Java в 2025 году: ключевые тренды и успешные кейсы

В 2025 году Java продолжает развиваться благодаря таким технологиям, как GraalVM и Project Loom. Язык становится более быстрым и эффективным инструментом для создания решений в сфере искусственного интеллекта, облачных нативных приложений, систем Интернета вещей и масштабируемых микросервисов. В этой статье рассмотрим ключевые тренды, поддерживающие актуальность Java в современной разработке программного обеспечения.


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

@a_cup_of_java | Другие наши каналы
3👍1
AI-ассистенты для кодинга в 2025: сравниваем GigaChat, Claude, GPT-4o и DeepSeek на реальных задачах

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

Внутри команды у нас 14 Java-разработчиков — от мидлов до уверенных сеньоров. Все мы работаем в боевом проекте, и стало интересно: может ли AI реально помочь в повседневной разработке, или это всё больше про хайп?


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

@a_cup_of_java | Другие наши каналы
Как я учил жёлтый ИИ торговать и обманывать друг друга

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

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

@a_cup_of_java | Другие наши каналы
Как NASA ошиблись в исходном коде планеты

Баги в коде — явление нередкое, но сегодня мы исследуем не просто ошибки, а настоящие космические баги! Что скрывает проект, созданный в недрах NASA? Готовьте свои шапочки из фольги!
Поехали!

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

@a_cup_of_java | Другие наши каналы
Циклическая зависимость, не надо бороться, надо дизайнить

Разберемся откуда берутся циклические зависимости и что с этим делать на примере эволюции простенького сервиса.


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

@a_cup_of_java | Другие наши каналы
Покерная лаборатория закрывается, ловите исходники

Я делал этот проект более полутора лет, сейчас отказываюсь от него. И, чтобы эти полтора года не были прожиты зря) открываю исходники. Java+Spring.

Принимайте проект «как есть», со всеми ad-hoc костылями, незаконченными исследованиями, TODOs, а также всевозможными KISS, DRY, и, как их… SOLID с GoF.

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


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

@a_cup_of_java | Другие наши каналы
Как ускорить Java-приложения с помощью GPU и CUDA

Пост: Статья рассказывает, как интеграция CUDA с Java позволяет повысить производительность задач в 10–100 раз. Использование JNI открывает возможности GPU-ускорения для шифрования, аналитики и других вычислительно сложных процессов в корпоративной среде. Ускорение Java-приложений с помощью CUDA: интеграция через JNI позволяет поднять производительность шифрования и хэширования данных до миллионов операций в секунду. В статье разбирают реализацию, советы по памяти, безопасности и развёртыванию GPU-ускоренного кода.

Подробности: https://www.infoq.com/articles/cuda-integration-for-java/

#en

@a_cup_of_java | Другие наши каналы
👾1
Новый уровень разработки AI в Java: Embabel — фреймворк от создателя Spring Роджера Джонсона. Он позволяет создавать интеллектуальные агенты с надежным планированием действий и полной типизацией, упрощая интеграцию ИИ в корпоративные приложения на JVM.

Подробности: https://www.infoq.com/news/2025/06/introducing-embabel-ai-agent/

#en

@a_cup_of_java | Другие наши каналы
Как отправлять email из кода: nodemailer, SMTP и HTML-письма

Как отправлять email из кода. Показываем, как отправлять письма через Nodemailer, SMTP и HTML. Рассматриваем пошаговую инструкцию и основные нюансы Tproger

Читать: «Как отправлять email из кода: nodemailer, SMTP и HTML-письма»

@a_cup_of_java | Другие наши каналы
Meta* и Яндекс годами собирали данные о вас через локальные порты Android. Даже в режиме инкогнито

Meta* и Яндекс отслеживали действия пользователей Android даже в режиме инкогнито через соединение с localhost. Использовались скрипты Pixel и Метрики, встроенные на миллионы сайтов. Теперь механизм отключён, но работал с 2017 года.

Читать: «Meta* и Яндекс годами собирали данные о вас через локальные порты Android. Даже в режиме инкогнито»

@a_cup_of_java | Другие наши каналы
🆒4
Нашел, проверил, убедил: как мы организовали генерацию SQL-запросов, проверку сложных данных и при чем здесь Allure

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

Я, Михаил Герасимов, инженер РСХБ-Интех. Уже два года занимаюсь автоматизацией тестирования, и за это время успел написать (и переписать) немало SQL-запросов. Вместе с моим коллегой Михаилом Палыгой мы развиваем инструменты для автоматизированного тестирования, и сегодня расскажем вам о том как мы справляемся с построением сложных SQL-запросов и проверкой объектов в базе данных, на примере нашей библиотеки CheckMateDB для автоматизации тестирования банковской системы ЦФТ-Банк.

В статье опишем проблемы, с которыми сталкивались при ручном написании SQL-запросов и проверке данных: дублирование кода, сложность поддержки, отсутствие единого стиля и низкая информативность тестов. Для решения этих проблем мы разработали инструмент QueryBuilder, который позволяет динамически генерировать SQL-запросы с помощью Java-кода.

Мы создали иерархию классов CriteriaBasic и Table для удобного описания критериев поиска данных в базе, используя паттерн fluent interface. Также мы разработали кастомные классы проверок на базе AssertJ с поддержкой Allure-шагов, которые позволяют проверять сложные многоуровневые объекты с возможностью погружения во вложенные структуры. Для облегчения рутинной работы создали плагин, автоматически генерирующий классы DTO и Table на основе структуры базы данных. Библиотека интегрирована с Hibernate через DaoCommon, что обеспечивает удобное выполнение SQL-запросов и управление сессиями. Результатом стало существенное улучшение читаемости тестов, повышение переиспользуемости кода, стандартизация подхода к тестированию и создание информативных Allure-отчетов.


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

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

Всем привет! 👋👋👋👋👋

Мы Java-разработчики Т-Банка: Андрей, Арсений, Роман, Константин и Константин. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки и делимся этим со всем сообществом.
Читать свежий выпуск

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

@a_cup_of_java | Другие наши каналы
4
От конфигурации к динамике. Новый API по созданию бинов в Spring

В Spring Framework 7 появился новый API — BeanRegistry, который упрощает и расширяет возможности по динамической регистрации бинов. Это особенно актуально, когда невозможно заранее предсказать, сколько компонентов потребуется, как в случае со Spring Data. В новой статье от эксперта сообщества Spring АйО, Михаила Поливахи, вы узнаете:

– Как Spring Data справлялась с динамической регистрацией раньше;

– Почему SingletonBeanRegistry и BeanDefinitionRegistry недостаточны;

– Чем хорош новый BeanRegistry, и как он решает старые проблемы;

– Какие нюансы возникают при попытке работать с Environment в ранних фазах жизненного цикла контекста.


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

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

В пригороде далекого города Нью-Дели жил простой индийский паренек со сложным именем Чандракант. Любил он маму, Кришну и общаться с волшебными говорящими грибами.


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

@a_cup_of_java | Другие наши каналы
😱3👍1
Интеграция API-тестов с Jenkins Pipeline: с чего начать?

Вы написали серию интеграционных API-тестов на Java (с использованием TestNG и RestAssured) и хотите, чтобы они сами запускались при каждом изменении кода? Отличная идея! Настроив Continuous Integration/Continuous Delivery (CI/CD), вы избавитесь от рутины ручного прогона тестов и получите быстрый фидбэк о качестве системы. В этой статье я в живой манере расскажу, как шаг за шагом встроить ваши API-тесты в Jenkins Pipeline на локальном сервере. Вас ждёт установка Jenkins, подключение Maven-проекта, написание Jenkinsfile (Groovy Pipeline скрипта), настройка красивых Allure-отчётов, интеграция с GitHub и даже автоматический деплой при успешном прохождении тестов. Поехали!


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

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