Все потоки
Поиск
Написать публикацию
Обновить
49.3

Kotlin *

Статически типизированный язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

Spring AI научился видеть! Показываю, как заставить GPT находить бананы на картинках

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров3.4K

Новый перевод от команды Spring АйО расскажет вам о работе с мультимодальностью при работе со Spring AI и о различных вариантах работы с графическими изображениями с использованием искусственного интеллекта.

Читать далее

Как мы готовим российскую Java

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров2.3K

Подготовка JDK — это не просто запустить скрипт и получить готовый бинарник. Это сложный процесс, включающий тестирование, поддержку, оптимизацию и обеспечение безопасности. 

Подготовка дистрибутива состоит не только из одноразовой сборки, что само по себе является нетривиальной задачей, если приходится поддерживать множество платформ и конфигураций. 

JDK можно собрать вручную, но делать это в проде — так себе идея. Вот почему:

Читать далее

Немодальное окно коммита в IntelliJ IDEA: шаг вперёд или спорное нововведение?

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров8.7K

В свежих обновлениях IntelliJ IDEA разработчики JetBrains внедрили немодальное окно коммита, отказавшись от классического модального диалога. Команда Spring АйО не обошла стороной активное обсуждение среди пользователей, которые разделились на два лагеря: одни приветствуют нововведение, другие считают его неудобным. Разберёмся, какие плюсы и минусы выявили пользователи и что по этому поводу думают представители JetBrains.

Читать далее

Вышла IntelliJ IDEA 2025.1 Beta

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров5.7K

Новый перевод от команды Spring АйО анонсирует выход IntelliJ IDEA 2025.1 Beta и рассказывает о том, какие изменения присутствуют в новой версии IDE.

Читать далее

Шпаргалка: Kotlin suspend функции

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров2.4K

Suspend-функции — это специальные функции в Kotlin, предназначенные для работы с корутинами. Они позволяют приостанавливать выполнение кода без блокировки потока, что делает их идеальными для асинхронных операций (например, сетевых запросов, работы с базой данных или долгих вычислений). Ключевое слово suspend указывает компилятору, что функция может быть «приостановлена» и позже возобновлена, не занимая поток исполнения.

Мы можем вызвать suspend функцию только из корутины или из другой suspend функции и это гарантирует нам, что мы будем иметь доступ к Continuation и соответственно сможем написать правильную suspend функцию, которая сможет передать результат своей работы через объект Continuation.

Пока звучит путанно, но на примерах всё встанет на свои места.

Пример объявления:

Читать далее

За кулисами JIT: Секреты HotSpot JVM C2 компилятора (Часть 2)

Уровень сложностиСредний
Время на прочтение23 мин
Количество просмотров1.9K

Новый перевод от команды Spring АйО является продолжением разговора о JIT (Just in Time) компиляции, а также дает представление о различных инструментах, позволяющих работать со скомпилированным кодом, визуализировать его и отлаживать в интерактивной форме. Перед прочтением рекомендуем ознакомиться с первой статьей из цикла статей про JIT.

Во второй части мы рассмотрим:

— Инлайнинг GVN (global value numbering) во время синтаксического анализа (parsing).
— Использование IGV (Ideal Graph Visualizer) и rr (отладчик), чтобы посмотреть на IR и его трансформации.
— Простая “идеализация” 101 * a + 202 * a в 303 * a.
— Упражнения для читателя: несколько дополнительных трансформаций, которые читатель сможет проанализировать.

Читать далее

Заезжаем в Kotlin Multiplatform. Но какой ценой?

Время на прочтение14 мин
Количество просмотров7.3K

Привет! Меня зовут Денис, я занимаюсь коммерческим программированием уже более 15 лет, управляю командами с 2017 года, работал в Яндексе, TradingView, Skillbox, Arcadia. В статье вы узнаете историю, как написать целый проект на Kotlin Multiplatform, сколько это стоит и сколько обойдется интеграция с точки зрения цифр.

Этот доклад - текстовая версия моего выступления с осеннего Мобиуса 2024 года. Обязательно приложу видео с выступлением после выхода.

Что в статье?

Coil и Yandex MapKit KMP: рисуем аватарки на карте. Часть 3

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров795

В этой статье я рассказываю, как интегрировать библиотеку Coil для загрузки и отображения изображений на картах, используя Yandex MapKit KMP Compose. Вы узнаете, как настроить API ключ, использовать экспериментальный API imageProvider и разобраться с особенностями работы на Android и iOS.

Читать далее

Delight SQL Viewer: отладка SQLDelight-базы прямо в приложении

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров1K

Привет! Хочу поделиться инструментом, который значительно упростит жизнь тем, кто использует SQLDelight для работы с базами данных в Kotlin Multiplatform-проектах. Этот инструмент называется Delight SQL Viewer.

Читать далее

Spring Now 2025 – Главная конференция про Spring на русском языке

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров3.3K

6 марта 2025 года состоится бесплатная онлайн-конференция Spring Now 2025

В ней примут участие не только эксперты сообщества Spring АйО, но и приглашенные лидеры индустрии.

Предлагаем более подробно ознакомиться с программой мероприятия и спикеров конференции. Зарегистрироваться на мероприятие можно по ссылке.

Читать далее

Что на радаре в Java: программа JPoint 2025

Время на прочтение12 мин
Количество просмотров2.8K

Конференцию JPoint мы проводим уже 12 лет. За это время немало оперативки утекло, и актуальные для Java-разработчиков темы ощутимо изменились: например, когда мы всё начинали, ещё толком не было Kotlin. Какие-то понятия можно назвать «вечными» (например, о базах данных говорят из года в год), но и там конкретные темы докладов меняются.

А что будет на новом JPoint в апреле? Какие инструменты и подходы актуальны для разработчиков в 2025-м?

Во-первых, представляем вам программу. Можете изучить краткие описания докладов и понять, интересны ли они вам.

А во-вторых, у нас есть просьба. Чтобы делать программу как можно актуальнее, мы затеяли инициативу TechRadar. Если вы Java-разработчик, по возможности пройдите опрос о том, какими технологиями пользуетесь. Так и доклады получатся максимально соответствующими запросам сообщества, и без результатов опроса вас тоже не оставим — сможем позже все их как следует обсудить!

Читать далее

За каким чертом нам SpringExtension?

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров5.1K

Новый перевод от команды Spring АйО расскажет вам, что такое SpringExtension, как правильно пользоваться этим расширением и когда его надо (или не надо) регистрировать вручную.

Читать далее

Как правильно мигрировать БД в продакшене с использованием Liquibase и Flyway

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров3.7K

Новый перевод от команды Spring АйО расскажет вам о вызовах, которые ставит перед разработчиками создание скриптов миграций баз данных и их организация, особенно при работе с большими системами.

Статья также содержит полезные советы о преодолении этих вызовов и о приемах, которые могут облегчить жизнь команде программистов, работающих с миграциями баз данных.

Читать далее

Ближайшие события

За кулисами JIT: Секреты HotSpot JVM C2 компилятора (Часть 1)

Уровень сложностиСложный
Время на прочтение21 мин
Количество просмотров3.6K

Новый перевод от команды Spring АйО расскажет вам о разных уровнях JIT (Just in Time) компиляции, о преимуществах такого подхода к компиляции Java приложений по сравнению с традиционным способом, а также покажет на примерах, что происходит при компиляции приложения и какой ассемблерный и машинный код будет сгенерирован при использовании разных опций JIT компиляции.

Читать далее

Пишем свой Config Provider для Kafka Connect с поддержкой значений по умолчанию

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров795

Для инжекции значений из различных источников в конфигурации тасок Kafka Connect используются различные реализации интерфейса org.apache.kafka.common.config.provider.ConfigProvider. Это специализированный интерфейс, реализации которого отвечают за то, чтобы подставить значения используя различные источники.

Читать далее

Model Context Protocol от Spring AI в Java SDK – новый стандарт для интеграции ИИ в экосистеме Java

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров3.1K

Новый перевод от команды Spring АйО расскажет вам, что такое Model Context Protocol (MCP) и как его внедрение в экосистему Java упрощает жизнь разработчикам систем, в работе которых используется искусственный интеллект и LLM, а также передача большого количества данных между различными компонентами.

Читать далее

Как сделать Telegram-бота умнее: пошаговый гайд на Spring AI и Kotlin

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров6.8K

Перед вами ещё один гайд о том, как написать свой telegram-бот, который взаимодействует с нейросетью. Мы напишем его таким образом, чтобы с нейросетью можно было вести диалог, т.е. рассмотрим, как сохранять контекст между сообщениями. Но таких гайдов, особенно для Python, уже написано немало. Поэтому напишем его на новом фреймворке Spring AI из эксосистемы Spring. А чтобы совсем было интересно - писать будем на Kotlin)

Читать далее

Valhalla — эпичный рефакторинг Java. Часть 3: наши первые результаты

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров5.4K

Команда Spring АйО перевела и адаптировала доклад Брайана Гоетца «Valhalla — эпичный рефакторинг Java», и сегодня мы публикуем третью, финальную, часть.

В первой части серии было рассказано об истории и причинах появления проекта Valhalla.

Во второй части подробно разбирался вопрос о том, с какими фундаментальными сложностями команда столкнулась на пути к решению поставленных задач.

Третья и заключительная часть повествует о первых успехах команды и о том, как скоро мы сможем увидеть первые итоги проекта в действии.

Читать далее

Шпаргалка: как выглядит Kotlin Coroutine без макияжа

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров2K

При создании и запуске корутины компилятор создаст специальный класс

1.      Continuation

Continuation (продолжение) — это объект, который представляет собой состояние выполнения корутины и позволяет возобновить её выполнение после приостановки.

Continuation — это механизм, который позволяет Kotlin Coroutines приостанавливать и возобновлять выполнение. Он является ключевым элементом реализации suspend-функций и асинхронного программирования в Kotlin.

Когда корутина приостанавливается (например, при вызове suspend-функции), её состояние сохраняется в объекте Continuation. Этот объект содержит информацию о том, где именно корутина была приостановлена, и как её можно продолжить после завершения асинхронной операции.

В Kotlin Continuation — это интерфейс, который выглядит следующим образом:

Читать далее

Explyt Spring plugin. Поддержка *.http файлов в IntelliJ IDEA Community

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров1.1K

Всем привет. В предыдущей статье мы рассказывали о нашей версии HTTP клиента, которая основана на генерации OpenAPI файлов по Spring-контроллерам и Swagger UI в качестве готового интерфейса пользователя для работы с запросами. В комментариях к ней писали, что поддержка http файлов весьма актуальна, так как они используются во многих существующих проектах. Мы решили изучить этот вопрос подробнее и вот что из этого вышло…

Читать далее