
Команда Spring АйО провела небольшое исследование JEP 520. В Java 25 JFR (Java Flight Recorder) позволит точно отслеживать выполнение конкретных методов — без изменения исходников, без логирования и без сторонних Java-агентов.
Статически типизированный язык программирования
Команда Spring АйО провела небольшое исследование JEP 520. В Java 25 JFR (Java Flight Recorder) позволит точно отслеживать выполнение конкретных методов — без изменения исходников, без логирования и без сторонних Java-агентов.
Рустам Курамшин, эксперт Spring АйО, разобрал свежий отчёт Stack Overflow за 2025 год о результатах ежегодного опроса разработчиков за 2025 год, и это отличный повод взглянуть на экосистему Java через призму статистики и интересов сообщества.
Уже завтра, 31 июля состоится публичный запуск OpenIDE — новой мультиязычной среды разработки, построенной на базе IntelliJ IDEA Platform.
Мероприятие пройдет онлайн на YouTube, VK и RUTUBE каналах Spring АйО. Участие абсолютно бесплатное.
Главное — зарегистрироваться, чтобы получить на почту ссылки на трансляцию и файл .ics для добавления события в календарь.
Команда Spring АйО представляет одну немаловажную фичу Java 25: компактные заголовки объектов (Compact Object Headers). Это позволит JVM экономить память и ускоряться без вмешательства в код.
Совсем недавно статью про ORM-фреймворк Jimmer Михаила Поливахи, эксперта сообщества Spring АйО, опубликовал Baeldung.
Перед вами переработанная и дополненная версия, подготовленная специально для сообщества Spring АйО. В ней Михаил раскрывает ключевые особенности Jimmer: отсутствие JPA-наследия, декларативные DTO и гибкий DSL и потенциальную интеграцию со Spring.
Как загружать большие объемы данных? Часть 1.
Привет, друзья! Наша команда более 10 лет занимается вопросами эффективной передачи данных на мобильные устройства. Мы исследовали разные варианты: одни оказались слишком медленными, другие приводили к переполнению памяти на мобильном устройстве.
Хотим рассказать, как мы в команде «Форсайт. Мобильная платформа» сделали синхронизацию больших объемов данных, чтобы это работало, в том числе, на ТСД (терминал сбора данных). Для экономии батареи ТСД специально снабжают слабыми процессорами. Весь подбор инструментов и алгоритмов мы уже апробировали в продукте «Форсайт. Мобильная платформа» (ФМП).
Специфичные условия для мобильного приложения начнем РАЗБИРАТЬ С КРЫШИ, так будет проще подобраться к существу вопроса. В среднем, отличие общедоступных приложений от бизнес‑приложений — в объеме потребляемых данных. У бизнес‑приложений объем данных значительно больше. Но, как водится, ожидание бизнес‑пользователей от приложения точно такие же, как и у всех: приложение должно работать не просто быстро, а моментально. А это значит, что нужно найти особые техники по ускоренной передаче данных. При подборе технологий для транспорта данных нам хотелось получить:
А) Стабильный механизм передачи данных.
Б) Самый быстрый/производительный протокол из возможных.
Поскольку мы производим спецшину по транспорту данных, для нас это означает, что мобильный пользователь будет обращаться в наш инструмент за «чемоданом» данных, и мы должны как можно быстрее передать ему этот «чемодан» целиком. У разработчиков возникает вопрос — насколько большой может быть «чемодан»? Насколько будет нескромен кейс, который нужно будет тащить? За ориентир мы взяли ½ миллиона записей табличных данных.
Привет, Хабр! Я Борис Шляга, программист в отделе разработки кредитных продуктов для физических лиц. Мы занимаемся продуктом «Кубышка» — это небольшой заем до зарплаты на непредвиденные расходы.
С появлением новых правил регулирования кредитов и займов возникла необходимость в проверке долговой нагрузки клиентов при выдаче продукта. Теперь Кубышка не может быть одобрена клиентам с высоким ПДН.
Сервис расчета ПДН давно работал внутри компании — нам оставалось только реализовать интеграцию с ним. Расскажу, как мы это сделали, как решили проблемы «по дороге» и что в итоге получилось.
Хотите ускорить запуск приложения и сэкономить память? Аннотация @Lazy
в Spring поможет инициализировать бины только тогда, когда они действительно понадобятся. Команда Spring АйО поможет разбобраться, как применять @Lazy
точечно и глобально, в чём плюсы и подводные камни ленивой инициализации, и как избежать неожиданных ошибок на проде.
Команда Spring АйО не могла остаться в стороне и не прокомментировать одну из самых обсуждаемых новинок Kotlin, анонсированную на KotlinConf 2025 — Rich Errors.
Элементы System Design уже прочно вошли в процесс собеседований. Однако в мобильной разработке довольно часто возникает недопонимание что же все-таки необходимо продемонстрировать чтобы получить заветный офер. В этой статье я разберу один из кейсов, который может встретиться на реальном собеседовании и кроме этого покажу примерный сценарий такого интервью. Данная статья будет интересна мобильным разработчикам, как Android, так и iOS. Сам формат System Design Interview я разбирал в предыдущей статье. Здесь же мы сконцентрируемся на практике.
Итак, задача: спроектировать новостную ленту.
API structured concurrency в Java наконец-то обрёл устойчивость. В новом переводе от команды Spring АйО подробно рассматриваются последние изменения, появившиеся с выходом JEP 505: фабричный метод open()
, политики Joiner'ов, улучшенная отмена задач, дедлайны, передача контекста через ScopedValues
и строгая защита от ошибок использования. Всё это делает параллельное программирование в Java более безопасным, читаемым и управляемым.
Интернет завален реализациями на Питоне, но иногда удобнее разбираться с технологиями на своём основном языке. Для мен;я это Kotlin.
Если вы программист, наверняка к вам приходят знакомые и предлагают писать агентов. Реализовав оного самостоятельно, вы поймете, что задача из себя представляет.
Статья обещает соблюдать два принципа, упрощающих восприятие:
‣ Движение от частного к общему, потому что легче воспринимать примеры, чем абстракцию.
‣ Быстрая обратная связь, как с REPL.
Агента реализуем так, чтобы легко было заменить лежащую в основе LLM. Посмотрим, как отличается работа при использовании REST API в сравнении с SDK, пощупаем Гигачат и Anthropic.
Ах да, 🪐 KOSMOS — акроним. Kotlin Open Synthetic Mind Orbiting System.
В одной из прошлых статей было рассказано, как начать разработку собственного плагина для Android Studio (или IntelliJ Idea). В этой статье окунёмся немного глубже и создадим более сложные и, хочется верить, ещё более полезные инструменты для повседневной работы в IDE.
Рассмотрим разработку плагинов для IntelliJ Idea и Android Studio на нескольких нетипичных, но простых и боевых задачах. Будет много полезных ссылок, пояснений и несколько примеров с кодом.
Эксперт Spring АйО и по совместительству Spring Data контрибьютор Михаил Поливаха прокомментировал статью, переведенную командой Spring АйО, про поддержку составных ключей со стороны Spring Data JDBC и R2DBC, начиная с версии 4.0.0-M4 — то, чего так не хватало при работе с моделями, где первичный ключ состоит из нескольких полей.
Теперь достаточно просто описать record
с нужными полями, пометить его как @Id
, и Spring Data сам корректно построит SQL-сущность. В статье наглядно показано, как использовать новую возможность, какие аннотации пригодятся и как обойти ограничение с автоинкрементом через BeforeConvertCallback
.
Привет, Хабр!
Сегодня разберёмся, почему попытка «избавиться от ?
любой ценой» приводит к проблемам, и как жить с этим вообще жить.
Во второй части статьи рассматривается реализация пользовательского интерфейса Android‑приложения Open Tracker для автоматического трекинга коммерческих представителей. Основное внимание уделено минималистичному дизайну, работе с системными разрешениями и механизму передачи данных между фоновым сервисом и UI. Описаны три ключевых экрана (OverView, Log, Settings), а также особенности их взаимодействия с ядром приложения. Статья будет полезна разработчикам, создающим аналогичные решения с использованием Jetpack Compose, StateFlow и современных архитектурных подходов.
Эта статья посвящена созданию Android-приложения для решения практической задачи — отслеживания местоположения коммерческих представителей в полевых условиях. Статья может быть полезна широкому кругу Android-разработчиков как с точки зрения использования готового решения, так и с точки зрения реализации отдельных компонентов приложения для применения в своих проектах.
Команда Spring АйО перевела статью от JetBrains, в которой анонсировано важное обновление: начиная с версии 2025.3, IntelliJ IDEA будет распространяться в виде единого дистрибутива, вместо отдельных версий Community и Ultimate.
Теперь каждый разработчик получит более мощный, гибкий и удобный инструмент «из коробки», независимо от подписки. Open source-компоненты по-прежнему доступны, а новая модель обещает улучшенный user experience, бесплатный доступ к большему числу функций и упрощённый процесс сборки из исходников.
Если вы хоть раз разрабатывали проект на Spring, наверняка сталкивались с циклическими зависимостями. Эта проблема настолько распространена и одновременно болезненна, что о ней можно услышать как от спикеров, так и от участников крупнейших технических конференций.
На недавнем JPoint один из разработчиков рассказал мне, как вручную избавлялся от циклических зависимостей на огромном боевом проекте, изучая гигантскую диаграмму зависимостей.
К счастью, современные инструменты разработчика позволяют решать эту задачу намного быстрее и эффективнее.
В этой статье я рассмотрю причины возникновения циклических зависимостей, продемонстрирую наиболее типичные случаи и расскажу о нескольких способах их решения, используя профессиональные инструменты разработчика.
День рождения Kotlin уже на следующей неделе! Мы не могли обойти это замечательное событие стороной и решили провести прямую трансляцию, посвященную ему.
Мероприятие пройдет онлайн 22 июля, в 17:00 (МСК), на YouTube, VK и RUTUBE каналах Amplicode. Участие абсолютно бесплатное.
Главное – зарегистрироваться, чтобы получить на почту ссылки на трансляцию и файл .ics для добавления события в календарь.