Java отмечает 30 лет! Важные обновления: вышли Hibernate ORM 7.0 и Validator 9.0, Open Liberty обновился, появился новый фреймворк Embabel на Kotlin и Azure представил jaz для упрощения запуска Java-приложений в облаке.
Подробности: https://www.infoq.com/news/2025/05/java-news-roundup-may19-2025/
#en
@a_cup_of_java | Другие наши каналы
Подробности: https://www.infoq.com/news/2025/05/java-news-roundup-may19-2025/
#en
@a_cup_of_java | Другие наши каналы
Проектируем архитектуру Camunda Cloud: подключаем движок процессов к вашему миру
Вы начали свой первый проект, используя автоматизацию бизнес-процессов как сервис с Camunda Cloud? Одной из первых задач будет набросать базовую архитектуру вашего решения. Этот блог-пост поможет вам ответить на важные начальные вопросы: как подключить движок выполнения процессов Zeebe к вашему приложению или к внешним системам? Что такое job worker, какую роль он играет и сколько их вообще нужно?
Читать: https://habr.com/ru/articles/913060/?utm_campaign=913060
@a_cup_of_java | Другие наши каналы
Вы начали свой первый проект, используя автоматизацию бизнес-процессов как сервис с Camunda Cloud? Одной из первых задач будет набросать базовую архитектуру вашего решения. Этот блог-пост поможет вам ответить на важные начальные вопросы: как подключить движок выполнения процессов Zeebe к вашему приложению или к внешним системам? Что такое job worker, какую роль он играет и сколько их вообще нужно?
Читать: https://habr.com/ru/articles/913060/?utm_campaign=913060
@a_cup_of_java | Другие наши каналы
Защита API-ключей: как избежать утечек
Защита API-ключей. Показываем, как избежать утечек в API. Рассматриваем пошаговую инструкцию и инструменты ✔ Tproger
Читать: «Защита API-ключей: как избежать утечек»
@a_cup_of_java | Другие наши каналы
Защита API-ключей. Показываем, как избежать утечек в API. Рассматриваем пошаговую инструкцию и инструменты ✔ Tproger
Читать: «Защита API-ключей: как избежать утечек»
@a_cup_of_java | Другие наши каналы
Иногда приходится¹ копаться² в кишках³ Apache Spark
¹ …просто потому, что другого варианта добиться необходимого результата тупо не существует.
² и да, довольно-таки глубоко.
³ нет, серьёзно!
Давайте рассмотрим следующий бизнесовый кейс.
Дано: реально большие данные. Очень много датасетов по много терабайтов каждый, — в сумме объём тянет на петабайты. Лежат в облаке, но это не важно. Важно, что мы эти данные покупаем в «сыром» виде, каким-то образом «готовим», а потом перепродаём конечному потребителю.
Требуется: при подготовке каждого из датасетов разделить его согласно значениям одного или нескольких полей, составляющих его записи, на несколько. И это одна из особенно часто встречающихся в нашем процессе операций.
Довольно-таки сложный, продвинутый ETL у нас. Поясню на типичном примере.
Читать: https://habr.com/ru/articles/913244/?utm_campaign=913244
@a_cup_of_java | Другие наши каналы
¹ …просто потому, что другого варианта добиться необходимого результата тупо не существует.
² и да, довольно-таки глубоко.
³ нет, серьёзно!
Давайте рассмотрим следующий бизнесовый кейс.
Дано: реально большие данные. Очень много датасетов по много терабайтов каждый, — в сумме объём тянет на петабайты. Лежат в облаке, но это не важно. Важно, что мы эти данные покупаем в «сыром» виде, каким-то образом «готовим», а потом перепродаём конечному потребителю.
Требуется: при подготовке каждого из датасетов разделить его согласно значениям одного или нескольких полей, составляющих его записи, на несколько. И это одна из особенно часто встречающихся в нашем процессе операций.
Довольно-таки сложный, продвинутый 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 | Другие наши каналы
Джордан Миллер рассказывает, как язык 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 | Другие наши каналы
Команда 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 | Другие наши каналы
В первой части статьи с помощью инструмента 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 и как это обойти
Привет, Хабр!
Когда
Читать: https://habr.com/ru/companies/otus/articles/911992/?utm_campaign=911992
@a_cup_of_java | Другие наши каналы
Привет, Хабр!
Когда
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 | Другие наши каналы
Когда 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 | Другие наши каналы
Подробности: 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 | Другие наши каналы
Команда 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 | Другие наши каналы
Пошагово объясняем, как встроить быстрое и безопасное распознавание паспорта РФ в 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 | Другие наши каналы
Как развернуть сайт на 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 | Другие наши каналы
Сегодня в любой более-менее серьезной компании, где настроен 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 | Другие наши каналы
Константин Евтеев @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 | Другие наши каналы
Современные 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 | Другие наши каналы
Когда проект начинается, разработчику хочется только одного — свободы творчества. Писать код быстро и так же быстро получать результат. Но со временем появляются баги, регрессии, архитектура, миграции... И вот тогда свобода оборачивается болью: оказывается, что один и тот же результат в коде можно выразить десятком способов — и все они несовместимы друг с другом.
В этой статье я сравню несколько популярных языков программирования с точки зрения их синтаксической однозначности, гибкости и способности масштабироваться в командной разработке. Мы посмотрим, как строгие ограничения формируют культуру качества, а чрезмерная выразительность часто мешает команде работать как единое целое.
Читать: 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 | Другие наши каналы
Подробности: 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 | Другие наши каналы
Подробности: 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 | Другие наши каналы
MultiDirectory от компании МУЛЬТИФАКТОР — современная служба каталогов для централизованного хранения данных и управления информацией о пользователях, группах и сетевых ресурсах. Она помогает российским компаниям администрировать инфраструктуру с помощью удобных инструментов и гибких механизмов для поиска и фильтрации данных. Рассказываем об особенностях и функционале MultiDirectory.
Читать: «MultiDirectory: российская альтернатива Active Directory с 2FA, SSO и совместимостью с AD»
@a_cup_of_java | Другие наши каналы
❤3
Архитектурные принципы Spring Security. Часть третья
Команда Spring АйО перевела и адаптировала доклад Даниэля Гарнье-Муару “Spring Security Architecture Principles”, в котором на наглядных примерах рассказывается, как пользоваться возможностями Spring Security, не запутываясь на каждом шагу и не зарабатывая себе головную боль.
Доклад публикуется тремя частями. В первой части было рассказано об основных подходах к созданию цепочек фильтров, а также разработан простейший фильтр. Во второй части мы рассказали об
Читать: https://habr.com/ru/companies/spring_aio/articles/915158/?utm_campaign=915158
@a_cup_of_java | Другие наши каналы
Команда 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