JEP 525: таймауты и улучшенные Joiner в структурной конкуренции Java
В статье InfoQ: в preview 6 JEP 525 ввёл onTimeout для Joiner, scope.join() может вернуть частичные результаты как List<t, а также мелкие API‑уточнения. Это облегчает обработку таймаутов и частичных результатов.
Подробности: https://www.infoq.com/news/2026/01/timeout-joiner-refinements/
#en @a_cup_of_java | Другие наши каналы
В статье InfoQ: в preview 6 JEP 525 ввёл onTimeout для Joiner, scope.join() может вернуть частичные результаты как List<t, а также мелкие API‑уточнения. Это облегчает обработку таймаутов и частичных результатов.
Подробности: https://www.infoq.com/news/2026/01/timeout-joiner-refinements/
#en @a_cup_of_java | Другие наши каналы
InfoQ
JEP 525 Brings Timeout Handling and Joiner Refinements to Java’s Structured Concurrency
JEP 525, a highlight in the upcoming JDK 26, refines structured concurrency for clearer, safer task management. This iteration introduces a timeout callback for custom joiners, enhancing flexibility and error handling. With streamlined APIs and focus on practical…
Java Digest — Новогодний спецвыпуск
Всем привет! 👋👋👋👋👋 Мы Java-разработчики Т-Банка: Андрей, Арсений, Роман, Константин и Константин. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки и делимся этим со всем сообществом.
Читать: https://habr.com/ru/companies/tbank/articles/983164/?utm_campaign=983164
@a_cup_of_java | Другие наши каналы
Всем привет! 👋👋👋👋👋 Мы Java-разработчики Т-Банка: Андрей, Арсений, Роман, Константин и Константин. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки и делимся этим со всем сообществом.
Читать: https://habr.com/ru/companies/tbank/articles/983164/?utm_campaign=983164
@a_cup_of_java | Другие наши каналы
👍2
Ограничь меня полностью! Или история одной ма-а-а-аленькой фичи
Бывало ли у вас так что задача на час максимум в результате занимает целый рабочий день или даже больше?
Почему так происходит? Нужно ли тестировать сторонние библиотеки? Есть ли польза от типичных задач для собеседований? Когда "костыль" вполне рабочее решение?
Частные ответы на все эти, казалось бы не связанные, вопросы попытаемся найти в непридуманной истории фичи, которая изначально казалась на 5 минут, а вышло...
Читать: https://habr.com/ru/articles/983196/?utm_campaign=983196
@a_cup_of_java | Другие наши каналы
Бывало ли у вас так что задача на час максимум в результате занимает целый рабочий день или даже больше?
Почему так происходит? Нужно ли тестировать сторонние библиотеки? Есть ли польза от типичных задач для собеседований? Когда "костыль" вполне рабочее решение?
Частные ответы на все эти, казалось бы не связанные, вопросы попытаемся найти в непридуманной истории фичи, которая изначально казалась на 5 минут, а вышло...
Читать: https://habr.com/ru/articles/983196/?utm_campaign=983196
@a_cup_of_java | Другие наши каналы
Field vs Constructor Injection в Java: ошибка объектного дизайна или вопрос синтаксиса?
Знаю, знаю... Прочитав заголовок, хочется голосом волка из мультфильма "Жил был пёс" сказать - "Шо, опять?" . Ведь битва этих подходов давно закончилась и разработчики Spring уже поставили точку.
Но недавняя публикация в одном довольно крупном Telegram-канале заставила меня вернуться к этому вопросу. В качестве главных аргументов против field injection там приводились лишь сложность изоляции в тестах и неудобство создания экземпляров для unit-тестов.
И хотя с этими пунктами не поспоришь, у многих разработчиков и не только начинающих, остаются вопросы: каковы реальные последствия для самого объекта? Можно ли считать его полноценным сразу после создания
Поиск ответов показал мне, что аргумент о тестах лишь верхушка айсберга. В глубине, куда я Вас сегодня приглашаю заглянуть, скрываются куда более фундаментальные вопросы принципов объектно-ориентированного дизайна, гарантий Java Memory Model и уважения к жизненному циклу объекта.
Читать: https://habr.com/ru/articles/983340/?utm_campaign=983340
@a_cup_of_java | Другие наши каналы
Знаю, знаю... Прочитав заголовок, хочется голосом волка из мультфильма "Жил был пёс" сказать - "Шо, опять?" . Ведь битва этих подходов давно закончилась и разработчики Spring уже поставили точку.
Но недавняя публикация в одном довольно крупном Telegram-канале заставила меня вернуться к этому вопросу. В качестве главных аргументов против field injection там приводились лишь сложность изоляции в тестах и неудобство создания экземпляров для unit-тестов.
И хотя с этими пунктами не поспоришь, у многих разработчиков и не только начинающих, остаются вопросы: каковы реальные последствия для самого объекта? Можно ли считать его полноценным сразу после создания
new? И почему все современные рекомендации так настаивают на конструкторах?Поиск ответов показал мне, что аргумент о тестах лишь верхушка айсберга. В глубине, куда я Вас сегодня приглашаю заглянуть, скрываются куда более фундаментальные вопросы принципов объектно-ориентированного дизайна, гарантий Java Memory Model и уважения к жизненному циклу объекта.
Читать: https://habr.com/ru/articles/983340/?utm_campaign=983340
@a_cup_of_java | Другие наши каналы
⚡1
Field vs Constructor Injection в Java: ошибка объектного дизайна или вопрос синтаксиса?
Знаю, знаю... Прочитав заголовок, хочется голосом волка из мультфильма "Жил был пёс" сказать - "Шо, опять?" . Ведь битва этих подходов давно закончилась и разработчики Spring уже поставили точку.
Но недавняя публикация в одном довольно крупном Telegram-канале заставила меня вернуться к этому вопросу. В качестве главных аргументов против field injection там приводились лишь сложность изоляции в тестах и неудобство создания экземпляров для unit-тестов.
И хотя с этими пунктами не поспоришь, у многих разработчиков и не только начинающих, остаются вопросы: каковы реальные последствия для самого объекта? Можно ли считать его полноценным сразу после создания
Поиск ответов показал мне, что аргумент о тестах лишь верхушка айсберга. В глубине, куда я Вас сегодня приглашаю заглянуть, скрываются куда более фундаментальные вопросы принципов объектно-ориентированного дизайна, гарантий Java Memory Model и уважения к жизненному циклу объекта.
Читать: https://habr.com/ru/articles/983344/?utm_campaign=983344
@a_cup_of_java | Другие наши каналы
Знаю, знаю... Прочитав заголовок, хочется голосом волка из мультфильма "Жил был пёс" сказать - "Шо, опять?" . Ведь битва этих подходов давно закончилась и разработчики Spring уже поставили точку.
Но недавняя публикация в одном довольно крупном Telegram-канале заставила меня вернуться к этому вопросу. В качестве главных аргументов против field injection там приводились лишь сложность изоляции в тестах и неудобство создания экземпляров для unit-тестов.
И хотя с этими пунктами не поспоришь, у многих разработчиков и не только начинающих, остаются вопросы: каковы реальные последствия для самого объекта? Можно ли считать его полноценным сразу после создания
new? И почему все современные рекомендации так настаивают на конструкторах?Поиск ответов показал мне, что аргумент о тестах лишь верхушка айсберга. В глубине, куда я Вас сегодня приглашаю заглянуть, скрываются куда более фундаментальные вопросы принципов объектно-ориентированного дизайна, гарантий Java Memory Model и уважения к жизненному циклу объекта.
Читать: https://habr.com/ru/articles/983344/?utm_campaign=983344
@a_cup_of_java | Другие наши каналы
Корпоративный RAG как MCP-сервис: подключаем кодовую базу к IDE
В компаниях с несколькими продуктами знания о коде и архитектуре почти неизбежно расползаются. Часть живёт в репозиториях, часть — в статьях с архитектурными решениями, часть — в корпоративной базе знаний (в нашем случае — Confluence). На небольшом масштабе это выглядит как порядок. Но по мере роста начинают проявляться системные эффекты.
Появляется дублирование функционала с разными подходами. Сложнее становится погружаться в новый продукт при кросс-командных переходах. Поиск по каждому репозиторию и каждому пространству документации по отдельности — медленный и утомительный. В итоге вопросы уходят к «знающим людям», которые постепенно превращаются в узкое горлышко.
Мы столкнулись с этим в явном виде и сформулировали задачу так: дать разработчикам и системным аналитикам быстрый и актуальный поиск по всей кодовой базе компании с возможностью диалога через универсального агента.
В этой статье я расскажу, как мы построили локальный RAG-сервис, оформили его как MCP-сервер и подключили к IDE. Подход будет полезен командам с большим количеством репозиториев, внутренней документацией и требованиями к безопасности.
Читать: https://habr.com/ru/articles/983424/?utm_campaign=983424
@a_cup_of_java | Другие наши каналы
В компаниях с несколькими продуктами знания о коде и архитектуре почти неизбежно расползаются. Часть живёт в репозиториях, часть — в статьях с архитектурными решениями, часть — в корпоративной базе знаний (в нашем случае — Confluence). На небольшом масштабе это выглядит как порядок. Но по мере роста начинают проявляться системные эффекты.
Появляется дублирование функционала с разными подходами. Сложнее становится погружаться в новый продукт при кросс-командных переходах. Поиск по каждому репозиторию и каждому пространству документации по отдельности — медленный и утомительный. В итоге вопросы уходят к «знающим людям», которые постепенно превращаются в узкое горлышко.
Мы столкнулись с этим в явном виде и сформулировали задачу так: дать разработчикам и системным аналитикам быстрый и актуальный поиск по всей кодовой базе компании с возможностью диалога через универсального агента.
В этой статье я расскажу, как мы построили локальный RAG-сервис, оформили его как MCP-сервер и подключили к IDE. Подход будет полезен командам с большим количеством репозиториев, внутренней документацией и требованиями к безопасности.
Читать: https://habr.com/ru/articles/983424/?utm_campaign=983424
@a_cup_of_java | Другие наши каналы
InfoQ Trends Reports 2025 — что важно разработчикам
InfoQ собрал серию отчетов по архитектуре, культуре, AI/ML, облакам и Java. Главные идеи: эволюция технологий, AI как соавтор в доставке ПО, роль человеческого суждения, рост платформенной инженерии и практические тренды на 1–5 лет.
Подробности: https://www.infoq.com/minibooks/2025-infoq-trends-reports-emag/
#en
@a_cup_of_java | Другие наши каналы
InfoQ собрал серию отчетов по архитектуре, культуре, AI/ML, облакам и Java. Главные идеи: эволюция технологий, AI как соавтор в доставке ПО, роль человеческого суждения, рост платформенной инженерии и практические тренды на 1–5 лет.
Подробности: https://www.infoq.com/minibooks/2025-infoq-trends-reports-emag/
#en
@a_cup_of_java | Другие наши каналы
DeepSeek в Intellij Idea через плагин Continue
Может кому пригодится, на просторах интернета не нашел, как запустить модель deepseek в idea, потому сам вместе с deepseek допиливал конфиг и обучал модель работе через инструменты плагина. Ну и попутно решил проблему с зависаниями, плагин очень любил зависнуть, приходилось ide перезапускать.
Сразу оговорюсь, решение не элегантно, я не убирал лишний код, строки и текст, я просто добился рабочего состояния и более ничего не тестировал и не трогал. Годами работы приучен "работает - не трож". Потому решение as is выкладываю. Можете сами эксперименты проводить и допиливать, мне был просто нужен рабочий инструмент, на тюнинг не осталось желания, накрыла лень и я продолжил заниматься изначальным своим проектом =)
Читать: https://habr.com/ru/articles/983430/?utm_campaign=983430
@a_cup_of_java | Другие наши каналы
Может кому пригодится, на просторах интернета не нашел, как запустить модель deepseek в idea, потому сам вместе с deepseek допиливал конфиг и обучал модель работе через инструменты плагина. Ну и попутно решил проблему с зависаниями, плагин очень любил зависнуть, приходилось ide перезапускать.
Сразу оговорюсь, решение не элегантно, я не убирал лишний код, строки и текст, я просто добился рабочего состояния и более ничего не тестировал и не трогал. Годами работы приучен "работает - не трож". Потому решение as is выкладываю. Можете сами эксперименты проводить и допиливать, мне был просто нужен рабочий инструмент, на тюнинг не осталось желания, накрыла лень и я продолжил заниматься изначальным своим проектом =)
Читать: https://habr.com/ru/articles/983430/?utm_campaign=983430
@a_cup_of_java | Другие наши каналы
Как я поучаствовал в разработке Camunda 8 или пример типичной ошибки в многопоточном коде
Зимой 2024 года мне довелось поучаствовать в разработке проекта на Camunda 8. Сразу оговорюсь: проект в итоге реализовали на другом движке. Тем не менее, команда успела сделать стенд, прогнать тесты и замерить производительность.
В этой статье я расскажу об одном эпизоде, когда мне пришлось исправить библиотеку spring-zeebe из Camunda 8, отвечающую за обвязку Job Worker на Spring.
Одной из моих задач было отладить процесс, используя локальные интеграционные тесты с Docker и библиотекой Testcontainers. Мы создали простой процесс, вызывающий наш Job Worker, подлежавший отладке. Сразу столкнулись с плавающей ошибкой: иногда тест проходил успешно, иногда — нет. Несколько тасков работали корректно, однако первый периодически игнорировался без видимых ошибок. Изначально подозревали проблему в собственном коде, проверяли конфигурацию Job Worker, благодаря чему узнали много нового о Camunda 8.
Читать: https://habr.com/ru/articles/983902/?utm_campaign=983902
@a_cup_of_java | Другие наши каналы
Зимой 2024 года мне довелось поучаствовать в разработке проекта на Camunda 8. Сразу оговорюсь: проект в итоге реализовали на другом движке. Тем не менее, команда успела сделать стенд, прогнать тесты и замерить производительность.
В этой статье я расскажу об одном эпизоде, когда мне пришлось исправить библиотеку spring-zeebe из Camunda 8, отвечающую за обвязку Job Worker на Spring.
Одной из моих задач было отладить процесс, используя локальные интеграционные тесты с Docker и библиотекой Testcontainers. Мы создали простой процесс, вызывающий наш Job Worker, подлежавший отладке. Сразу столкнулись с плавающей ошибкой: иногда тест проходил успешно, иногда — нет. Несколько тасков работали корректно, однако первый периодически игнорировался без видимых ошибок. Изначально подозревали проблему в собственном коде, проверяли конфигурацию Job Worker, благодаря чему узнали много нового о Camunda 8.
Читать: https://habr.com/ru/articles/983902/?utm_campaign=983902
@a_cup_of_java | Другие наши каналы
LLM + 1C: Почему чат-бот для учета — это плохая идея, и как реализовать AI-шлюз через OData
LLM + 1C = ? Почему чат-бот для учета — это плохая идея, и как я сделал из него «умный шлюз».
Изначально идея казалась кристально чистой: пользователь отправляет текстовый или голосовой запрос (например: «Выведи топ должников по Тверской области на текущую дату и суммы задолженности»).
Читать: https://habr.com/ru/articles/984008/?utm_campaign=984008
@a_cup_of_java | Другие наши каналы
LLM + 1C = ? Почему чат-бот для учета — это плохая идея, и как я сделал из него «умный шлюз».
Изначально идея казалась кристально чистой: пользователь отправляет текстовый или голосовой запрос (например: «Выведи топ должников по Тверской области на текущую дату и суммы задолженности»).
Читать: https://habr.com/ru/articles/984008/?utm_campaign=984008
@a_cup_of_java | Другие наши каналы
Как жёсткие правила сборки релизов упростили жизнь инженерам финтеха
Перевели инфраструктуру Java-разработки высоконагруженного финтеха с SLA 99,99% на доверенный репозиторий компонентов. Это отечественные продукт из экосистемы Axiom JDK. Делимся инженерными деталями этого перехода.
Читать: https://habr.com/ru/companies/axiomjdk/articles/983938/?utm_campaign=983938
@a_cup_of_java | Другие наши каналы
Перевели инфраструктуру Java-разработки высоконагруженного финтеха с SLA 99,99% на доверенный репозиторий компонентов. Это отечественные продукт из экосистемы Axiom JDK. Делимся инженерными деталями этого перехода.
Читать: https://habr.com/ru/companies/axiomjdk/articles/983938/?utm_campaign=983938
@a_cup_of_java | Другие наши каналы
Доступ к ChatGPT за 5 минут без VPN
Примерно год назад я написал статью ChatGPT без VPN за 10 минут (и установка нативного приложения). Хотя она актуальна до сих пор, сегодня я хочу вам рассказать про еще один способ.
Суть: мы делаем свой DNS-профиль в NextDNS или Cloudflare и автоматически актуализируем его раз в сутки.
Для этого я написал небольшую программу. Самое приятное: для ее работы вам не придется ничего устанавливать вообще.
Читать: https://habr.com/ru/articles/984224/?utm_campaign=984224
@a_cup_of_java | Другие наши каналы
Примерно год назад я написал статью ChatGPT без VPN за 10 минут (и установка нативного приложения). Хотя она актуальна до сих пор, сегодня я хочу вам рассказать про еще один способ.
Суть: мы делаем свой DNS-профиль в NextDNS или Cloudflare и автоматически актуализируем его раз в сутки.
Для этого я написал небольшую программу. Самое приятное: для ее работы вам не придется ничего устанавливать вообще.
Читать: https://habr.com/ru/articles/984224/?utm_campaign=984224
@a_cup_of_java | Другие наши каналы
Java-дайджест: январь 2026
По данным InfoQ: вышли обновления — maintenance/point-релизы для Spring gRPC, Quarkus, Gatherers4j, Keycloak, Grails и Java Operator SDK; также доступны сборки JDK 26 и 27 с исправлениями и улучшениями.
Подробности: https://www.infoq.com/news/2026/01/java-news-roundup-jan05-2026/
#en
@a_cup_of_java | Другие наши каналы
По данным InfoQ: вышли обновления — maintenance/point-релизы для Spring gRPC, Quarkus, Gatherers4j, Keycloak, Grails и Java Operator SDK; также доступны сборки JDK 26 и 27 с исправлениями и улучшениями.
Подробности: https://www.infoq.com/news/2026/01/java-news-roundup-jan05-2026/
#en
@a_cup_of_java | Другие наши каналы
❤1
Параллельные стримы и CompletableFuture: ошибки и решения
Кратко о ловушках параллелизации в Java (вложенные parallel, flatMap, потеря контекста в ForkJoinPool, OOM с CompletableFuture) и практических решениях: точечная параллелизация, разделение executors, семафоры, thenApply vs thenApplyAsync. Кейс Hugo Marques (JDK24).
Подробности: https://www.infoq.com/presentations/java-grpc-workload/
#en
@a_cup_of_java | Другие наши каналы
Кратко о ловушках параллелизации в Java (вложенные parallel, flatMap, потеря контекста в ForkJoinPool, OOM с CompletableFuture) и практических решениях: точечная параллелизация, разделение executors, семафоры, thenApply vs thenApplyAsync. Кейс Hugo Marques (JDK24).
Подробности: https://www.infoq.com/presentations/java-grpc-workload/
#en
@a_cup_of_java | Другие наши каналы
Как затащить AI в Java/Kotlin проект
Мир Enterprise-разработки на Java/Kotlin и мир нейронных сетей кажутся параллельными вселенными. С одной стороны - статическая типизация, многопоточность, Spring-контейнеры, а с другой - Python-скрипты, тензорные операции и эксперименты в Jupyter Notebook. Между ними - пропасть, через которую многие команды не решаются перешагнуть.
Однако необходимость строить этот мост возникает всё чаще. Заказчик хочет «искусственный интеллект» в новом фиче, аналитики мечтают о реализации чат-бота с преферансом и барышнями, а менеджеры слышали, что конкуренты уже всё автоматизировали. Как же совместить надежность и структуру JVM-проекта с гибкостью и мощью AI? В этой статье постараемся разобраться какие инструменты для этого есть на данный момент и как с ними работать.
Читать: https://habr.com/ru/articles/984544/?utm_campaign=984544
@a_cup_of_java | Другие наши каналы
Мир Enterprise-разработки на Java/Kotlin и мир нейронных сетей кажутся параллельными вселенными. С одной стороны - статическая типизация, многопоточность, Spring-контейнеры, а с другой - Python-скрипты, тензорные операции и эксперименты в Jupyter Notebook. Между ними - пропасть, через которую многие команды не решаются перешагнуть.
Однако необходимость строить этот мост возникает всё чаще. Заказчик хочет «искусственный интеллект» в новом фиче, аналитики мечтают о реализации чат-бота с преферансом и барышнями, а менеджеры слышали, что конкуренты уже всё автоматизировали. Как же совместить надежность и структуру JVM-проекта с гибкостью и мощью AI? В этой статье постараемся разобраться какие инструменты для этого есть на данный момент и как с ними работать.
Читать: https://habr.com/ru/articles/984544/?utm_campaign=984544
@a_cup_of_java | Другие наши каналы
❤1
От Redis к Kafka Streams: как мы проверяем сетевую доступность 200к устройств
В инфраструктуре банка мы ежедневно работаем с ~200 000 физических устройств: это IP-камеры, сетевые видеорегистраторы и другая периферия. Каждое из них должно быть проверено на доступность — не реже чем раз в 10 минут.
Требования к системе:
- не создавать бессмысленную нагрузку на инфраструктуру;
- решение должно быть горизонтально масштабируемым;
- система должна выдерживать падение pod, rebalance, сетевые сбои.
Читать: https://habr.com/ru/companies/sberbank/articles/974926/?utm_campaign=974926
@a_cup_of_java | Другие наши каналы
В инфраструктуре банка мы ежедневно работаем с ~200 000 физических устройств: это IP-камеры, сетевые видеорегистраторы и другая периферия. Каждое из них должно быть проверено на доступность — не реже чем раз в 10 минут.
Требования к системе:
- не создавать бессмысленную нагрузку на инфраструктуру;
- решение должно быть горизонтально масштабируемым;
- система должна выдерживать падение pod, rebalance, сетевые сбои.
Читать: https://habr.com/ru/companies/sberbank/articles/974926/?utm_campaign=974926
@a_cup_of_java | Другие наши каналы
Миграция проекта с Node.js на Java-стек с помощью ИИ
Один из наших проектов нужно было перенести на Kotlin, чтобы включить его в общую экосистему клиента и упростить поддержку. Мы должны были курировать процесс и следить за итоговой реализацией, в которой заказчик решил использовать ИИ.
В этой статье рассказываем о реальных возможностях нейронки для миграции бэкенда и про то, с чем лучше к ней не обращаться — чтобы не тратить ни время, ни нервы.
Читать: https://habr.com/ru/companies/dalee_group/articles/984702/?utm_campaign=984702
@a_cup_of_java | Другие наши каналы
Один из наших проектов нужно было перенести на Kotlin, чтобы включить его в общую экосистему клиента и упростить поддержку. Мы должны были курировать процесс и следить за итоговой реализацией, в которой заказчик решил использовать ИИ.
В этой статье рассказываем о реальных возможностях нейронки для миграции бэкенда и про то, с чем лучше к ней не обращаться — чтобы не тратить ни время, ни нервы.
Читать: https://habr.com/ru/companies/dalee_group/articles/984702/?utm_campaign=984702
@a_cup_of_java | Другие наши каналы
😐1
Kafka для начинающих: работа с Kafka транзакциями на практике — когда они нужны, а когда когда только вредят?
Как работать с Kafka транзакциями из Spring Boot? Когда они нужны, а когда бесполезны или даже вредны?
Простым языком и с примерами кода о Kafka транзакциях.
Читать: https://habr.com/ru/articles/981188/?utm_campaign=981188
@a_cup_of_java | Другие наши каналы
Как работать с Kafka транзакциями из Spring Boot? Когда они нужны, а когда бесполезны или даже вредны?
Простым языком и с примерами кода о Kafka транзакциях.
Читать: https://habr.com/ru/articles/981188/?utm_campaign=981188
@a_cup_of_java | Другие наши каналы
И снова про алгоритмы и структуры данных…
За годы разработки приходит понимание, что происходит в тех или иных сервисах, когда они тормозят, лагают, выдают «неожидаемое» поведение. В данной статье хочу рассмотреть проблему неправильного использования алгоритмов и архитектурных решений с бытовой, общечеловеческой стороны.
Читать: https://habr.com/ru/articles/984792/?utm_campaign=984792
@a_cup_of_java | Другие наши каналы
За годы разработки приходит понимание, что происходит в тех или иных сервисах, когда они тормозят, лагают, выдают «неожидаемое» поведение. В данной статье хочу рассмотреть проблему неправильного использования алгоритмов и архитектурных решений с бытовой, общечеловеческой стороны.
Читать: https://habr.com/ru/articles/984792/?utm_campaign=984792
@a_cup_of_java | Другие наши каналы
Реализация гексагональной архитектуры на Java
В данной статье рассматривается архитектура проекта, позволяющая модульным образом интегрировать инфраструктурные фреймворки, такие как Spring, Quarkus и Micronaut, без необходимости модификации ядра предметной области (domain) или внешних API.
Читать: https://habr.com/ru/articles/985156/?utm_campaign=985156
@a_cup_of_java | Другие наши каналы
В данной статье рассматривается архитектура проекта, позволяющая модульным образом интегрировать инфраструктурные фреймворки, такие как Spring, Quarkus и Micronaut, без необходимости модификации ядра предметной области (domain) или внешних API.
Читать: https://habr.com/ru/articles/985156/?utm_campaign=985156
@a_cup_of_java | Другие наши каналы
Project Panama: как Java научилась говорить на C! (Часть 1)
Как безопасно и эффективно вызывать C-функции из Java? Благодаря Project Panama — новому API из OpenJDK — это стало возможно без использования JNI.
В новом переводе от команды Spring АйО познакомимся с основами FFM API, посмотрим на запуск Hello World на C, роль jextract, и на то, как управлять памятью вне кучи JVM.
Читать: https://habr.com/ru/companies/spring_aio/articles/985144/?utm_campaign=985144
@a_cup_of_java | Другие наши каналы
Как безопасно и эффективно вызывать C-функции из Java? Благодаря Project Panama — новому API из OpenJDK — это стало возможно без использования JNI.
В новом переводе от команды Spring АйО познакомимся с основами FFM API, посмотрим на запуск Hello World на C, роль jextract, и на то, как управлять памятью вне кучи JVM.
Читать: https://habr.com/ru/companies/spring_aio/articles/985144/?utm_campaign=985144
@a_cup_of_java | Другие наши каналы
❤1👌1