
Команда Spring АйО перевела статью одного из создателей Hibernate, в которой он объясняет, почему ему часто приходится отвергать новые и хорошие идеи, и почему это на самом деле не означает, что он является врагом всего нового.
Статически типизированный язык программирования
Команда Spring АйО перевела статью одного из создателей Hibernate, в которой он объясняет, почему ему часто приходится отвергать новые и хорошие идеи, и почему это на самом деле не означает, что он является врагом всего нового.
Команда Spring АйО перевела и адаптировала доклад Томаса Витале “Concerto for Java and AI — Building Production-Ready LLM Applications”, в котором рассказывается по шагам, как усовершенствовать интерфейс приложения с помощью больших языковых моделей (LLM). В качестве примера автор доклада на глазах слушателей разрабатывает приложение-ассистент для композитора, пишущего музыку для фильмов.
Доклад будет опубликован двумя частями. В первой части рассказывается о том, как возникла проблема, какие подходы автор доклада применил к ее решению и как реализовать автоматическую классификацию персональных заметок композитора по типам, используя ИИ.
Новый перевод от команды Spring АйО расскажет о проблемах, вызываемых неожиданным появлением NullPointerException
в продакшен, о способах борьбы с этой проблемой, над которыми работает команда Java и о скором выходе новых решений, которые помогут разработчикам навсегда избавиться от этого кошмара.
В этой статье мне хотелось бы разобрать вопрос, которым часто задаются начинающие и молодые разработчики мобильных приложений под Android. Многие мобильные разработчики слышали о таких широко известных инструментах внедрения зависимостей (DI), как Koin и Dagger. Они решают одну задачу — управление зависимостями, но делают это по-разному. Но в чём же их принципиальная разница, в чём их отличия, их плюсы и минусы, и какой из этих инструментов выбрать при разработке нового проекта (и в зависимости от его сложности и требований)? Обо всём об этом постараюсь кратко изложить далее и дам рекомендации по выбору для новых проектов.
Новый перевод от команды Spring АйО расскажет вам о работе с мультимодальностью при работе со Spring AI и о различных вариантах работы с графическими изображениями с использованием искусственного интеллекта.
Подготовка JDK — это не просто запустить скрипт и получить готовый бинарник. Это сложный процесс, включающий тестирование, поддержку, оптимизацию и обеспечение безопасности.
Подготовка дистрибутива состоит не только из одноразовой сборки, что само по себе является нетривиальной задачей, если приходится поддерживать множество платформ и конфигураций.
JDK можно собрать вручную, но делать это в проде — так себе идея. Вот почему:
В свежих обновлениях IntelliJ IDEA разработчики JetBrains внедрили немодальное окно коммита, отказавшись от классического модального диалога. Команда Spring АйО не обошла стороной активное обсуждение среди пользователей, которые разделились на два лагеря: одни приветствуют нововведение, другие считают его неудобным. Разберёмся, какие плюсы и минусы выявили пользователи и что по этому поводу думают представители JetBrains.
Новый перевод от команды Spring АйО анонсирует выход IntelliJ IDEA 2025.1 Beta и рассказывает о том, какие изменения присутствуют в новой версии IDE.
Suspend-функции — это специальные функции в Kotlin, предназначенные для работы с корутинами. Они позволяют приостанавливать выполнение кода без блокировки потока, что делает их идеальными для асинхронных операций (например, сетевых запросов, работы с базой данных или долгих вычислений). Ключевое слово suspend указывает компилятору, что функция может быть «приостановлена» и позже возобновлена, не занимая поток исполнения.
Мы можем вызвать suspend функцию только из корутины или из другой suspend функции и это гарантирует нам, что мы будем иметь доступ к Continuation и соответственно сможем написать правильную suspend функцию, которая сможет передать результат своей работы через объект Continuation.
Пока звучит путанно, но на примерах всё встанет на свои места.
Пример объявления:
Новый перевод от команды Spring АйО является продолжением разговора о JIT (Just in Time) компиляции, а также дает представление о различных инструментах, позволяющих работать со скомпилированным кодом, визуализировать его и отлаживать в интерактивной форме. Перед прочтением рекомендуем ознакомиться с первой статьей из цикла статей про JIT.
Во второй части мы рассмотрим:
— Инлайнинг GVN (global value numbering) во время синтаксического анализа (parsing).
— Использование IGV (Ideal Graph Visualizer) и rr (отладчик), чтобы посмотреть на IR и его трансформации.
— Простая “идеализация” 101 * a + 202 * a
в 303 * a
.
— Упражнения для читателя: несколько дополнительных трансформаций, которые читатель сможет проанализировать.
Привет! Меня зовут Денис, я занимаюсь коммерческим программированием уже более 15 лет, управляю командами с 2017 года, работал в Яндексе, TradingView, Skillbox, Arcadia. В статье вы узнаете историю, как написать целый проект на Kotlin Multiplatform, сколько это стоит и сколько обойдется интеграция с точки зрения цифр.
Этот доклад - текстовая версия моего выступления с осеннего Мобиуса 2024 года. Обязательно приложу видео с выступлением после выхода.
В этой статье я рассказываю, как интегрировать библиотеку Coil для загрузки и отображения изображений на картах, используя Yandex MapKit KMP Compose. Вы узнаете, как настроить API ключ, использовать экспериментальный API imageProvider и разобраться с особенностями работы на Android и iOS.
Привет! Хочу поделиться инструментом, который значительно упростит жизнь тем, кто использует SQLDelight для работы с базами данных в Kotlin Multiplatform-проектах. Этот инструмент называется Delight SQL Viewer.
6 марта 2025 года состоится бесплатная онлайн-конференция Spring Now 2025!
В ней примут участие не только эксперты сообщества Spring АйО, но и приглашенные лидеры индустрии.
Предлагаем более подробно ознакомиться с программой мероприятия и спикеров конференции. Зарегистрироваться на мероприятие можно по ссылке.
Конференцию JPoint мы проводим уже 12 лет. За это время немало оперативки утекло, и актуальные для Java-разработчиков темы ощутимо изменились: например, когда мы всё начинали, ещё толком не было Kotlin. Какие-то понятия можно назвать «вечными» (например, о базах данных говорят из года в год), но и там конкретные темы докладов меняются.
А что будет на новом JPoint в апреле? Какие инструменты и подходы актуальны для разработчиков в 2025-м?
Во-первых, представляем вам программу. Можете изучить краткие описания докладов и понять, интересны ли они вам.
А во-вторых, у нас есть просьба. Чтобы делать программу как можно актуальнее, мы затеяли инициативу TechRadar. Если вы Java-разработчик, по возможности пройдите опрос о том, какими технологиями пользуетесь. Так и доклады получатся максимально соответствующими запросам сообщества, и без результатов опроса вас тоже не оставим — сможем позже все их как следует обсудить!
Новый перевод от команды Spring АйО расскажет вам, что такое SpringExtension
, как правильно пользоваться этим расширением и когда его надо (или не надо) регистрировать вручную.
Новый перевод от команды Spring АйО расскажет вам о вызовах, которые ставит перед разработчиками создание скриптов миграций баз данных и их организация, особенно при работе с большими системами.
Статья также содержит полезные советы о преодолении этих вызовов и о приемах, которые могут облегчить жизнь команде программистов, работающих с миграциями баз данных.
Новый перевод от команды Spring АйО расскажет вам о разных уровнях JIT (Just in Time) компиляции, о преимуществах такого подхода к компиляции Java приложений по сравнению с традиционным способом, а также покажет на примерах, что происходит при компиляции приложения и какой ассемблерный и машинный код будет сгенерирован при использовании разных опций JIT компиляции.
Для инжекции значений из различных источников в конфигурации тасок Kafka Connect используются различные реализации интерфейса org.apache.kafka.common.config.provider.ConfigProvider. Это специализированный интерфейс, реализации которого отвечают за то, чтобы подставить значения используя различные источники.
Новый перевод от команды Spring АйО расскажет вам, что такое Model Context Protocol (MCP) и как его внедрение в экосистему Java упрощает жизнь разработчикам систем, в работе которых используется искусственный интеллект и LLM, а также передача большого количества данных между различными компонентами.