Пожалуй, это релиз, после которого Spring AI становится все ближе к тому, чтобы стать production-инструментом.
Что в нём особенно важно:
— Упростили работу с tools
Теперь Spring AI лучше работает со сценариями, где модель должна вызывать внешние функции и инструменты.
Плюс появился механизм, который помогает не отправлять модели сразу все доступные инструменты, а подбирать только нужные. Это полезно, когда инструментов много и не хочется засорять контекст.
— Сильнее прокачали MCP
Spring AI обновился до MCP SDK 2.0 и в целом стал лучше встроен в историю с MCP.
Для тех, кто смотрит в сторону AI-приложений с внешними инструментами и сервисами, это важный шаг.
— Обновили интеграцию с OpenAI
Под капотом Spring AI теперь использует официальный Java SDK от OpenAI. Для разработчиков это обычно хороший знак: меньше самодельных решений, больше стабильности и предсказуемости.
— Привели в порядок память чата
Проще говоря, Spring AI стал аккуратнее хранить историю сообщений. Это значит, что в реальных приложениях меньше шансов получить путаницу в сообщениях, неправильный порядок ответов и странное поведение модели.
— Сделали настройки более понятными
Меньше неявной магии, больше прозрачности.
Некоторые настройки теперь работают предсказуемее, и поведение модели проще контролировать явно.
В общем стало больше предсказуемости, лучше интеграция со Spring-стеком, меньше неявного поведения в чувствительных местах вроде tool calling, memory и MCP.
Помним, что это major release. Переход с 1.1.x потребует внимательного апгрейда: breaking changes есть в tool calling, memory, MCP и конфигурации.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍24❤10🔥8
Forwarded from Axiom JDK
#вебинар
🛠 От BPMN до контейнера: собираем Java-приложение с OpenBPM и AxiomJDK
Готовим вебинар о том, как создать Java-приложение с рабочим BPM-процессом и пройти весь путь на практике: от выстраивания бизнес-логики до релиза в безопасном enterprise-контуре.
Возьмем понятный пример: заявки, согласования, проверки. Покажем, как описать процесс в BPMN, связать его с Java, запустить на Axiom JDK и упаковать в контейнер.
Отдельно разберем, где может помочь ИИ: не вместо команды, а вместе с ней — чтобы быстрее проходить рутину, но сохранять управляемость, контроль и зоны ответственности.
Обсудим:
— как создать Spring Boot-приложение в OpenIDE с плагином OpenBPM;
— как выстроить BPMN-процесс и реализовать бизнес-логику на Java;
— где ИИ помогает ускорить подготовку структуры приложения, кода, правил и тестов;
— как Amplicode MCP и ИИ-плагины для OpenIDE снимают часть ручной рутины;
— как запустить приложение на AxiomJDK и упаковать его в защищенный контейнер Axiom Containers;
— зачем enterprise Java-приложениям безопасный runtime и как готовиться к рискам после завершения open-source поддержки Spring Boot 3.5.
👥 Будет интересно тимлидам, DevOps, ИБ, BPM-командам и компаниям, которые присматриваются к ИИ-инструментам для разработки.
Спикеры:
— Никита Щиенко, Tech Lead, OpenBPM
— Максим Сафронов, Технологический консультант Axiom JDK
📅 16 июня, онлайн, 11:00
Как и всегда, для участия нужно только зарегистрироваться. Вперед!
🛠 От BPMN до контейнера: собираем Java-приложение с OpenBPM и AxiomJDK
Готовим вебинар о том, как создать Java-приложение с рабочим BPM-процессом и пройти весь путь на практике: от выстраивания бизнес-логики до релиза в безопасном enterprise-контуре.
Возьмем понятный пример: заявки, согласования, проверки. Покажем, как описать процесс в BPMN, связать его с Java, запустить на Axiom JDK и упаковать в контейнер.
Отдельно разберем, где может помочь ИИ: не вместо команды, а вместе с ней — чтобы быстрее проходить рутину, но сохранять управляемость, контроль и зоны ответственности.
Обсудим:
— как создать Spring Boot-приложение в OpenIDE с плагином OpenBPM;
— как выстроить BPMN-процесс и реализовать бизнес-логику на Java;
— где ИИ помогает ускорить подготовку структуры приложения, кода, правил и тестов;
— как Amplicode MCP и ИИ-плагины для OpenIDE снимают часть ручной рутины;
— как запустить приложение на AxiomJDK и упаковать его в защищенный контейнер Axiom Containers;
— зачем enterprise Java-приложениям безопасный runtime и как готовиться к рискам после завершения open-source поддержки Spring Boot 3.5.
👥 Будет интересно тимлидам, DevOps, ИБ, BPM-командам и компаниям, которые присматриваются к ИИ-инструментам для разработки.
Спикеры:
— Никита Щиенко, Tech Lead, OpenBPM
— Максим Сафронов, Технологический консультант Axiom JDK
📅 16 июня, онлайн, 11:00
Как и всегда, для участия нужно только зарегистрироваться. Вперед!
👍12🔥8❤4🤔2🤩1
Hibernate 7.4, наконец, исправляет старую проблему с пагинацией и fetch join.
Раньше запрос на первые 10
Order вместе с OrderItem не мог безопасно ограничиться на уровне SQL. Из-за join один заказ мог превратиться в несколько строк, и limit мог обрезать коллекцию. Поэтому Hibernate загружал все подходящие строки, а страницу выбирал уже в памяти. На больших данных это, конечно же, било по памяти и могло закончиться OutOfMemoryException. Да и в целом не очень перформансно это, согласитесь.Дождались, и теперь Hibernate сначала выбирает нужные
id родительских сущностей во вложенном запросе, а затем загружает для них полные дочерние коллекции. Пагинация остается в БД, данные не режутся. Еще в 7.4 появились history и audit tables.
@Temporal хранит версии строк и позволяет читать сущность на конкретный момент времени. @Audited пишет изменения ADD/MOD/DEL в audit-таблицу без Envers.Please open Telegram to view this post
VIEW IN TELEGRAM
👍30🔥20❤11⚡1🤯1
☄️ Друзья, мы на пороге больших изменений в Java ☄️
Спустя более 10 лет разработки, Project Valhalla получит preview в JDK 28.
Напоминаю, что на данный момент актуальная версия Java платформы - 26. Версия 27 будет в сентябре 2026 года, а версия 28 будет в марте 2027 года, скорее всего к Java One в Bay Area.
Ранее Project Valhalla уже был доступен в early access сборках, и ряд JEP-ов, которые нужны были для Project Valhalla, уже попали в mainline, но сами value classes - ещё нет. В JDK 28 это произойдёт!
⚠️ Есть важное уточнение:
В mainline попадет JEP 401, это не весь Project Valhalla в общем понимании, но это очень значимая его часть. Как говорил Brian Goetz (Java Language Architect) на Inside Java:
Это, вероятно, один из самых важных и больших JEP-ов, которые попадут в mainline JDK. Там PR на 200+ тысяч строк кода, я не шучу.
Тем не менее, такие вещи, как:
- Null-Restricted типы, наподобие
- Примитивы в качестве Generic типов, т.е. вещи, наподобие
и ряд других - они попадут в mainline в качестве preview позже.
Тем не менее, это крайне значимый шаг. Будем держать Вас в курсе!
Спустя более 10 лет разработки, Project Valhalla получит preview в JDK 28.
Напоминаю, что на данный момент актуальная версия Java платформы - 26. Версия 27 будет в сентябре 2026 года, а версия 28 будет в марте 2027 года, скорее всего к Java One в Bay Area.
Ранее Project Valhalla уже был доступен в early access сборках, и ряд JEP-ов, которые нужны были для Project Valhalla, уже попали в mainline, но сами value classes - ещё нет. В JDK 28 это произойдёт!
В mainline попадет JEP 401, это не весь Project Valhalla в общем понимании, но это очень значимая его часть. Как говорил Brian Goetz (Java Language Architect) на Inside Java:
JEP 401 is the smallest piece of Valhalla that we can ship on its own
Это, вероятно, один из самых важных и больших JEP-ов, которые попадут в mainline JDK. Там PR на 200+ тысяч строк кода, я не шучу.
Тем не менее, такие вещи, как:
- Null-Restricted типы, наподобие
String! (Ссылка, типа String! не может указывать на null)- Примитивы в качестве Generic типов, т.е. вещи, наподобие
List<int> (не List<Integer>) и ряд других - они попадут в mainline в качестве preview позже.
Тем не менее, это крайне значимый шаг. Будем держать Вас в курсе!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍81🔥47❤8⚡6🤩1
Forwarded from Amplicode – ускоряем разработку на Spring
⚡️ Skill of the Week: Spring Data JPA
Продолжаем рубрику Skill of the Week: каждую неделю разбираем скилл, который помогает вам и AI-агентам в реальной работе.
Skills, которые объясняют агенту особенности фреймворка, значительно поднимают качество кода у моделей среднего класса. На отдельных задачах такие скиллы подтягивают Haiku почти до уровня Opus!
Этому и посвящён скилл недели.
📚 Какие ошибки агенты чаще допускают с JPA и как их избежать, разобрали в статье на Хабре.
Продолжаем рубрику Skill of the Week: каждую неделю разбираем скилл, который помогает вам и AI-агентам в реальной работе.
Знать Spring Data JPA должен любой Spring-разработчик. Ждём того же от AI-агента.
Справляются ли с этим современные модели?Смотря какие.
Opus 4.8 ошибается реже остальных, но и он не идеален: вчера агент настроил связь между сущностями правильно, а сегодня на той же задаче добавилCascadeType.ALL🤦♂️.
Skills, которые объясняют агенту особенности фреймворка, значительно поднимают качество кода у моделей среднего класса. На отдельных задачах такие скиллы подтягивают Haiku почти до уровня Opus!
Этому и посвящён скилл недели.
📚 Какие ошибки агенты чаще допускают с JPA и как их избежать, разобрали в статье на Хабре.
1👍23🔥14❤11🤩1
👩💻 Spring Boot 4.1 дает новую опцию управления JDBC Соединениями!
По умолчанию Spring забирает connection в момент открытия транзакции, а не в момент первого SQL-запроса.
Проблема в том, что иногда запросов может не быть вообще.
Типичный сценарий в Enterprise:
— cache hit;
— ранний return;
— не прошла валидация;
— проверка прав завернула вызов;
— сначала сходили в медленный внешний API, а до БД еще даже не дошли.
Но connection уже вынули из пула. Он просто лежит занятым, пока метод делает что угодно, кроме работы с базой.
Конечно, открывать транзакцию там, где она может не понадобиться - далеко не самый оптимальный вариант. В идеале такого не допускать вообще.
Тем не менее, стоит признать, что такое часто встречается. В Spring Boot 4.1 эта проблема чинится одной property:
Смысл такой, что нет SQL — нет connection. То есть раньше приложение брало connection на всякий случай. А теперь только когда он реально нужен.
⚠️ Обратите внимание, что данная настройка работает не только с Hibernate. Более того, вообще любая блокирующая технология доступа к БД в экосистеме Spring (
Происходит это потому, что под капотом используется
В итоге, где это реально имеет смысл:
— широкие
— early-return без похода в БД;
— нагрузка, где каждый idle connection уже начинает стоить дорого.
Флаг довольно удобный. Имейте в виду!
По умолчанию Spring забирает connection в момент открытия транзакции, а не в момент первого SQL-запроса.
Проблема в том, что иногда запросов может не быть вообще.
Типичный сценарий в Enterprise:
— cache hit;
— ранний return;
— не прошла валидация;
— проверка прав завернула вызов;
— сначала сходили в медленный внешний API, а до БД еще даже не дошли.
Но connection уже вынули из пула. Он просто лежит занятым, пока метод делает что угодно, кроме работы с базой.
Конечно, открывать транзакцию там, где она может не понадобиться - далеко не самый оптимальный вариант. В идеале такого не допускать вообще.
Тем не менее, стоит признать, что такое часто встречается. В Spring Boot 4.1 эта проблема чинится одной property:
spring.datasource.connection-fetch=lazy
Смысл такой, что нет SQL — нет connection. То есть раньше приложение брало connection на всякий случай. А теперь только когда он реально нужен.
JdbcClient, Spring Data JDBC и т.д.) может работать с этой фичей.Происходит это потому, что под капотом используется
LazyConnectionDataSourceProxy, который, на самом деле, существует давно. Просто раньше надо было знать о нем, лезть в конфиг и руками оборачивать DataSource.В итоге, где это реально имеет смысл:
— широкие
@Transactional границы;— early-return без похода в БД;
— нагрузка, где каждый idle connection уже начинает стоить дорого.
Флаг довольно удобный. Имейте в виду!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥98👍40❤18
Привет, Друзья!
Эксперт нашего сообщества, Евгений Сулейманов, проводит опрос зрелости Production систем. Опрос довольно небольшой, и Spring АйО просит Вас пройти его с целью того, чтобы понять, как эксплуатируются современные системы.
Опрос довольно небольшой, агрегированные и обезличенные результаты потом опубликуем.
Евгений Сулейманов:
Пройти опрос:
State of Production Engineering 2026
Эксперт нашего сообщества, Евгений Сулейманов, проводит опрос зрелости Production систем. Опрос довольно небольшой, и Spring АйО просит Вас пройти его с целью того, чтобы понять, как эксплуатируются современные системы.
Опрос довольно небольшой, агрегированные и обезличенные результаты потом опубликуем.
Евгений Сулейманов:
Запускаю State of Production Engineering 2026 - исследование о том, как команды разработки живут в ПРОДе.
Это не опрос про Java.
Не опрос про Kubernetes.
Не опрос про DevOps.
И не "какой инструмент observability вы используете".
Смотрим шире:
- архитектура и владение
- поставка и безопасность релизов
- управление инцидентами
- observability как способность расследовать, а не просто смотреть графики
- resilience
- данные
- рантайм и работа с платформой
- AI в процессе SDLC
- инженерная культура
- стоимость инцидентов, даунтаймы и надежность.
Основная идея проста: зрелость production engineering - это не наличие инструментов, а способность команды управляемо проводить изменение от идеи до стабильной эксплуатации в ПРОДе.
Нужны ответы людей, которые действительно связаны с ПРОДом:
CTO, Head of Engineering, тимлиды, архитекторы, разработчики, SRE, DevOps, QA лиды, delivery/product менеджеры - все, кто участвует в релизах, инцидентах, эксплуатации, архитектурных решениях и инженерных процессах.
Анкета занимает примерно 10–15 минут.
Можно отвечать без имени и компании.
По итогам подготовлю публичный отчет и бенчмарки по зрелости production engineering.
Ваш опыт очень важен.
Пройти опрос:
State of Production Engineering 2026
👍10❤8😁5👌1
Media is too big
VIEW IN TELEGRAM
💬 Аудио версию подкаста можно найти в комментариях
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17❤8👍7😁4
Вы аккуратно расставили
FetchType.LAZY на всех *ToOne связях, уверены, что лишних запросов в БД нет — и тут в логах всплывает необъяснимый SELECT, который вы не просили. Особенно обидно, когда это
@OneToOne: на @ManyToOne ровно тот же LAZY работает железно и всегда, а здесь Hibernate вдруг идёт в базу eagerly, будто вашей аннотации и не было. А самое неприятное — большинство объяснений в сети сводятся к тому, что просто так уж устроено, но главный вопрос "Почему?" остается без ответа. Почему один и тот же
LAZY в одном случае работает, а в другом молча игнорируется?
В новой статье Михаил Поливаха, разбирает по полочкам:
FetchType.LAZY и почему это всего лишь hint, а не приказ;@OneToOne иногда невозможно сделать lazy именно в Java; @ManyToOne при этом ленив всегда — и при чём тут владение связью и foreign key;optional = false, дизайн схемы, @MapsId и другое.Please open Telegram to view this post
VIEW IN TELEGRAM
🔥30👍17❤5🤩1
🛡 Project Valhalla: 10 спустя
В Java наконец появляется ответ на старую проблему: полноценные классы часто слишком дорогие для памяти и процессора.
Пример - массив из миллиона, например, точек
Project Valhalla добавляет value class. Это обычный на вид класс с полями, конструктором и методами, но без идентичности объекта. JVM сможет хранить такие данные плотнее: например, прямо внутри массива, без отдельного объекта для каждого значения.
JEP 401 планируют включить в JDK 28 как preview. Это еще не финал: value class пока может быть null, а полная поддержка быстрых generics и плотных коллекций появится позже. Но первый рабочий шаг Valhalla уже близко.
📎 Статья целиком: https://habr.com/ru/companies/spring_aio/articles/1050938/
В Java наконец появляется ответ на старую проблему: полноценные классы часто слишком дорогие для памяти и процессора.
Пример - массив из миллиона, например, точек
Point. Сейчас это обычно не миллион точек подряд, а миллион ссылок на объекты в куче. У каждого объекта есть служебные данные, его нужно создать, потом убрать сборщиком мусора. Плюс процессор постоянно прыгает по памяти, а это медленно.Project Valhalla добавляет value class. Это обычный на вид класс с полями, конструктором и методами, но без идентичности объекта. JVM сможет хранить такие данные плотнее: например, прямо внутри массива, без отдельного объекта для каждого значения.
JEP 401 планируют включить в JDK 28 как preview. Это еще не финал: value class пока может быть null, а полная поддержка быстрых generics и плотных коллекций появится позже. Но первый рабочий шаг Valhalla уже близко.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍35🔥27❤11
Наши друзья из Axiom проводят вебинар для тех, кто сталкивается с Java, Kubernetes и всем, что связано с защищённым контуром.
Ребята обещают показать самый что ни на есть практический сценарий: Java-сервисы внутри Kubernetes, mTLS, ГОСТ TLS, Axiom JDK Certified и КриптоПро/JTLS. В общем самая жиза.
Будет разбор:
• зачем сервисам сертификаты;
• как работает mTLS;
• где в этой схеме Axiom JDK Certified и КриптоПро;
• почему не надо хранить ключи в container image;
• как network policies помогают не превращать кластер в проходной двор.
👆 Спикер — Дмитрий Сапожников.
❓ 30 июня в 11:00
Если тема вам близка, регаться тут
Ребята обещают показать самый что ни на есть практический сценарий: Java-сервисы внутри Kubernetes, mTLS, ГОСТ TLS, Axiom JDK Certified и КриптоПро/JTLS. В общем самая жиза.
Будет разбор:
• зачем сервисам сертификаты;
• как работает mTLS;
• где в этой схеме Axiom JDK Certified и КриптоПро;
• почему не надо хранить ключи в container image;
• как network policies помогают не превращать кластер в проходной двор.
Если тема вам близка, регаться тут
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤4🔥3
Эра AI-агентов изменила разработку до неузнаваемости: кода стало больше, а скорость, с которой он попадает в репозиторий, выросла кратно. Вместе с этим встаёт честный вопрос — как не дать этой скорости размыть качество кодовой базы? Ведь сгенерировать тысячу строк сегодня проще, чем когда-либо, а вот удержать архитектурную целостность — нет.
И тут обнаруживается узкое место, о котором редко говорят вслух. Финальное решение о том, как изменение вписывается в проект, по-прежнему принимает человек на code review — и именно это ревью становится той точкой, где качество либо сохраняется, либо незаметно утекает. Проблема в том, что у человеческого внимания есть предел, и большие изменения пробивают его слишком легко.
В этой статье я расскажу, как мы в Axelix подошли к этой проблеме на уровне процесса и CI, какие возражения от команды при этом неизбежно всплывают и почему они не выдерживают проверки практикой. А ещё разберём угловые случаи, которые ломают любое красивое правило в реальной жизни, — и что мы с ними делаем.
https://habr.com/ru/companies/spring_aio/articles/1051808/
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤13👍7🔥4🤩4😁1
Spring Batch - проект в рамках экосистемы Spring Framework, который, как правило не получает должного внимания. Тем не менее, это хорошее решение для Enterprise Batch Processing.
Долгое время Spring Batch требовал SQL-базу для хранения общего состояния, шагов перехода, статусов выполнения и время запусков. Даже если проект жил на MongoDB, рядом часто приходилось держать Postgres или MySQL только ради метаданных.
В Spring Boot 4.1 стало проще: появился
spring-boot-starter-batch-data-mongodb. Теперь Spring Batch научился работать с MongoDB.В статье Josh Long рассказывает про новинки в рамках Spring Batch, в том числе и новую интеграцию с MongoDB, а также работу с GraalVM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤10🔥7
Друзья, всем привет!
Недавно эксперт сообщества, Михаил Поливаха, выступил на подкасте "Тысяча Фичей" Александра Пахомова, спикера Jpoint.
Парни поговорили о наболевшем:
1. Почему Java до сих пор плотно держит Enterprise и на цифрах не сдает позиции.
2. Почему Oracle отказался от своего Enterprise Edition для Java.
3. Когда Spring Framework придёт конец и придёт ли вообще.
4. Когда нужно и не нужно использовать AI.
5. Как сохранить экспертизу и глубокое понимание в эру искусственного интелекта.
Подкаст довольно длинный, и все темы удалось разобрать довольно глубоко.
Слушать в Apple Podcasts | Spotify | Яндекс | браузер
Ссылка на канал Александра
Надеемся, Вам будет интересно! 🫡
Недавно эксперт сообщества, Михаил Поливаха, выступил на подкасте "Тысяча Фичей" Александра Пахомова, спикера Jpoint.
Парни поговорили о наболевшем:
1. Почему Java до сих пор плотно держит Enterprise и на цифрах не сдает позиции.
2. Почему Oracle отказался от своего Enterprise Edition для Java.
3. Когда Spring Framework придёт конец и придёт ли вообще.
4. Когда нужно и не нужно использовать AI.
5. Как сохранить экспертизу и глубокое понимание в эру искусственного интелекта.
Подкаст довольно длинный, и все темы удалось разобрать довольно глубоко.
Слушать в Apple Podcasts | Spotify | Яндекс | браузер
Ссылка на канал Александра
Надеемся, Вам будет интересно! 🫡
1🔥31❤6👍5
Forwarded from Amplicode – ускоряем разработку на Spring
⚡ Skill of the Week: Spring Data JDBC
Продолжаем рубрику Skill of the Week: каждую неделю разбираем скилл, который помогает вам и AI-агентам в реальной работе.
Spring Data JDBC — сознательно простой стек: агрегаты в духе DDD, загрузил корень целиком, изменил, сохранил. Казалось бы, чем проще технология, тем легче с ней агенту.
Так ли это на практике?Скорее наоборот.
Skill объясняет агенту, как Spring Data JDBC устроен на самом деле: что такое агрегат, где проходит его граница и почему репозиторий бывает только у корня. Для моделей среднего класса это критично (на отдельных задачах скилл подтягивает Haiku почти до уровня Opus!).
Этому и посвящён скилл недели.
📚 Как научить агента мыслить агрегатами разобрали в статье на Хабре
Продолжаем рубрику Skill of the Week: каждую неделю разбираем скилл, который помогает вам и AI-агентам в реальной работе.
Spring Data JDBC — сознательно простой стек: агрегаты в духе DDD, загрузил корень целиком, изменил, сохранил. Казалось бы, чем проще технология, тем легче с ней агенту.
Так ли это на практике?
Кода с Spring Data JDBC в открытом доступе мало, и модели приходится достраивать поведение фреймворка по своим общим представлениям. Итог: агент ссылается на внутренний компонент чужого агрегата, заводит репозиторий для владеемой сущности и нарушает границы там, где этого делать нельзя 🫠.
Skill объясняет агенту, как Spring Data JDBC устроен на самом деле: что такое агрегат, где проходит его граница и почему репозиторий бывает только у корня. Для моделей среднего класса это критично (на отдельных задачах скилл подтягивает Haiku почти до уровня Opus!).
Этому и посвящён скилл недели.
📚 Как научить агента мыслить агрегатами разобрали в статье на Хабре
👍20❤13🔥10⚡2
🤑 В Java нет универсального типа для денег
double быстрый, но хранит десятичные числа как двоичные приближения:
Выбор зависит от задачи: для метрик и ML хватит
Ошибка не в
🔗 Полный текст: https://habr.com/ru/companies/spring_aio/articles/1054074/
double быстрый, но хранит десятичные числа как двоичные приближения:
0.1 + 0.2 дает 0.30000000000000004. BigDecimal точен в десятичной арифметике, но дороже по памяти и CPU.Выбор зависит от задачи: для метрик и ML хватит
double с допуском, для налогов и счетов нужен BigDecimal с явным RoundingMode, для низкой latency - fixed-point на long.Ошибка не в
double или BigDecimal, а в выборе без понимания точности, округления и нагрузки.Please open Telegram to view this post
VIEW IN TELEGRAM
👍23😁13❤4🔥1
Media is too big
VIEW IN TELEGRAM
💬 Аудио версию подкаста можно найти в комментариях
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥5❤3