Чашечка 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
Защита API-ключей: как избежать утечек

Защита API-ключей. Показываем, как избежать утечек в API. Рассматриваем пошаговую инструкцию и инструменты Tproger

Читать: «Защита API-ключей: как избежать утечек»

@a_cup_of_java | Другие наши каналы
Иногда приходится¹ копаться² в кишках³ Apache Spark

¹ …просто потому, что другого варианта добиться необходимого результата тупо не существует.
² и да, довольно-таки глубоко.
³ нет, серьёзно!
Давайте рассмотрим следующий бизнесовый кейс.
Дано: реально большие данные. Очень много датасетов по много терабайтов каждый, — в сумме объём тянет на петабайты. Лежат в облаке, но это не важно. Важно, что мы эти данные покупаем в «сыром» виде, каким-то образом «готовим», а потом перепродаём конечному потребителю.
Требуется: при подготовке каждого из датасетов разделить его согласно значениям одного или нескольких полей, составляющих его записи, на несколько. И это одна из особенно часто встречающихся в нашем процессе операций.
Довольно-таки сложный, продвинутый ETL у нас. Поясню на типичном примере.


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

@a_cup_of_java | Другие наши каналы
2😁1
Эволюция Clojure: от идеи к зрелому решению

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

Подробности: https://www.infoq.com/presentations/clojure-2024/

#en

@a_cup_of_java | Другие наши каналы
Spring Data Ahead of Time репозитории

Команда Spring АйО перевела статью про новую версию AOT-репозиториев, которые позволяют генерировать реализацию методов запросов на этапе сборки. Это ускоряет запуск приложений, снижает потребление памяти и делает поведение репозиториев более прозрачным для разработчиков.


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

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

В первой части статьи с помощью инструмента Jmix AI Assistant начато создание системы для проведения онлайн курсов.

Были сгенерированы сценарии использования (use cases), разработана UML-диаграмма в формате PlantUML для этих use cases, разработана доменная модель для системы и ее реализация на JMIX. Далее все классы разбиты по пакетам.

Продолжим эксперименты по разработке кода с помощью Jmix AI Assistant, включая следующие:

- Генерация класса, заполняющего доменную модель тестовыми данными

- Генерация REST API для модели домена, включая создание контроллеров и REST сервисов

- Генерация пользовательского интерфейса


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

@a_cup_of_java | Другие наши каналы
Почему java -jar игнорирует твой -cp и как это обойти

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

Когда java -jar цинично игнорирует ваш -cp, хочется грустить, но спокойствие, сегодня рассмотрим, почему так происходит и как это обойти.


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

@a_cup_of_java | Другие наши каналы
10 техник оптимизации Java, которые выведут вас на новый уровень

Когда Java-приложение внезапно начинает «подвисать», причина почти всегда кроется в прозаичных деталях: неоптимизированных циклах, неудачном выборе коллекций, забытом кэше или агрессивном GC. В этой статье — 10 практических техник, которые помогут выжать максимум из JVM без преждевременной микрооптимизации и шаманства. Только доказавшие свою эффективность подходы, которые реально работают в проде — от финтеха до высоконагруженных API.


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

@a_cup_of_java | Другие наши каналы
Spring команда рассказала о новых подходах к AOT-кэшу, поддержке null safety с JSpecify и обновлённой политике поддержки Spring Boot. Важно для разработчиков: облегчён запуск контейнеров и стандартизация аннотаций null в Java. Полная поддержка теперь длится до 7 лет.

Подробности: https://www.infoq.com/news/2025/05/spring-aot-jspecify-support/

#en

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

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

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


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

@a_cup_of_java | Другие наши каналы
👎1
Как встроить распознавание паспорта РФ в Android: пошаговое руководство

Пошагово объясняем, как встроить быстрое и безопасное распознавание паспорта РФ в Android. Нативное приложение с возможностью распознавания ДУЛ на устройстве.

Читать: «Как встроить распознавание паспорта РФ в Android: пошаговое руководство»

@a_cup_of_java | Другие наши каналы
Как я развернул сайт на Java Spring Boot + Angular SSR с Docker и Nginx: личный опыт

Как развернуть сайт на Spring Boot и Angular с SSR, Docker и Nginx: пошаговый опыт настройки, устранения ошибок, подключения HTTPS и защиты от ботов.

Читать: «Как я развернул сайт на Java Spring Boot + Angular SSR с Docker и Nginx: личный опыт»

@a_cup_of_java | Другие наши каналы
👌5👍2
jpeek – когда SonarQube мало

Сегодня в любой более-менее серьезной компании, где настроен CI/CD, используется SonarQube. Это уже стандарт де-факто — он умеет проверять определять code smells, измерять цикломатическую сложность, определять дублирование, уровень покрытия тестами, распознавать недостижимый код, подсчитывать размеры методов и классов и многое другое. Настроили, подключил к CI — и вроде бы все хорошо.

Но...


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

@a_cup_of_java | Другие наши каналы
«Я слышу свой код»: как работает Java-программист, потерявший зрение

Константин Евтеев @beginner760собирает Java-код с помощью диктора NVDA, редактирует его в Блокноте и передает на Linux по SSH через самописные bash-скрипты. После потери зрения он не потерял интереса к жизни и желания быть полезным и выстроил собственную инженерную экосистему: оглавления по строкам .txt-файлами, навигация по main и маленьким методам, отладка на слух.


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

@a_cup_of_java | Другие наши каналы
👍7😨1
Интеграция MCP-сервера и Cursor для автоматизации мониторинга и тестирования

Современные LLM‑агенты могут обходиться без внешних вызовов — выдавать ответы исключительно на основе prompt’а. Но когда речь идёт о живых данных (трассы вызовов, результаты SQL‑запросов, исходный код из GitLab), нужно динамически обогащать контекст модели и давать ей «функции» для вызова.


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

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

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

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


Читать: 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