Обновить
68.47

Kotlin *

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

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

Глубокое погружение в процедуру запуска JVM

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

Новый перевод от команды Spring АйО расскажет вам, что происходит при запуске самого простого приложения на Java, какие шаги выполняет JVM, сколько классов ей необходимо загрузить, чтобы просто написать «Hello World!» и как все это выглядит на уровне byte code.

Читать далее

Итоги года вместе с Amplicode

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

Первые публичные демо, ажиотаж на конференциях, поддержка Spring Data JDBC, разработка собственного HTTP-клиент (Connekt), интеграция с Kubernetes, тысячи активных пользователей, сотни тысяч просмотров на YouTube и участие в создании OpenIDE — так можно охарактеризовать 2024 год одним предложением с точки зрения команды Amplicode.

Читать далее

Детские ошибки при сборке Gradle-приложений

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

Привет! Я Никита, сейчас разрабатываю мобильный банк под Android, много работаю с Gradle, и мне это нравится.

Сборка приложений для меня уже рутина — на пет-проектах и на работе. Но однажды я задумался, а можно ли ускорить сборку? Если да, то как и насколько: на доли секунд или это будет ощутимо? Как именно ускорять, ведь есть куча версий Gradle, плагины, бинарный интерфейс и всё такое?

А потом я просто взял и попробовал все известные мне варианты, замерил скорость сборок и сделал выводы. Заглядывайте под кат, расскажу, что именно сработало и надо ли вам подкручивать параметры своей сборки или срочно обновлять Gradle.

Читать далее

Flyway Baseline миграция без лишних слов: Что это и зачем нужно

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

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

Читать далее

Облегчаем разработку Flutter-приложений: Создание плагинов с помощью Kotlin Multiplatform

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

Будучи Flutter-разработчиками, мы часто сталкиваемся с необходимостью написания кода, ориентированного на конкретную платформу. Хоть Flutter и предоставляет полноценный фреймворк для создания кроссплатформенных приложений, интеграция нативного функционала иногда может быть весьма обременительной. Именно здесь на помощь приходит Kotlin Multiplatform (KMP). На мой взгляд, KMP — это не просто инструмент, который конкурирует с Flutter, скорее, он предлагает мощный способ рационализировать разработку плагинов, позволяя разработчикам экономить время, беречь силы и писать эффективный, легко сопровождаемый код.

В этой статье я поделюсь своим опытом использования KMP для создания библиотеки общих настроек (Shared Preferences) для Flutter под названием SharedPrefsKMP. Эта библиотека упрощает управление общими настройками в Android и iOS, демонстрируя, как KMP может улучшить процесс разработки на Flutter.

Читать далее

Безопасное обновления состояния в ViewModel

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

Это краткая заметка о подходе, который я выработал для себя, чтобы обновлять состояние экрана при использовании MVI-like паттерна в ViewModel.

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

Читать далее

Как создать плагин для IntelliJ IDEA на примере генератора директорий для проекта

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

Меня зовут Александр Мамонов, и в KODE я занимаюсь разработкой на Flutter. Я столкнулся с бойлерплейтом композиции фич в наших проектах, поэтому решил написать универсальный плагин для создания файловой структуры фич в проекте.

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

Хмм, посмотрим, что за плагин

Spring Security: разберём по полочкам токены, фильтры и авторизацию (с диаграммами!)

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

Команда Spring АйО перевела статью, в которой подробно рассматривается процесс регистрации и аутентификации пользователей с использованием Spring Security.

Читать далее

Valhalla — эпичный рефакторинг Java. Часть 1: История проекта, сложности реализации и цели

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

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

Читать далее

Заговор разработчиков против корпораций: архитектура и принципы

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

С момента написания предыдущей статьи я находился под пристальным вниманием. Попытка опубликовать материалы на англоязычных платформах обернулась фиаско — в первые же минуты легионы последователей тайного братства обрушились с критикой:

— Нет никакой организации! — вопили они.

Подозреваю, что слежка велась через мой телеграм-канал.

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

Узнать тайны, о которых молчали

IntelliJ IDEA 2025.1 EAP 3

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

Команда Spring АйО перевела статью от JetBrains про релиз третей версии EAP для IntelliJ IDEA 2025.1. 

Среди нововведений: обновления режима Kotlin K2, улучшенное логическое представление в панели Structure и автодополнение для несуществующих репозиториев Spring Data.

Читать далее

JDBC Fetch Size: Маленькая настройка, большие последствия

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

В новом переводе от команды Spring АйО Гевин Кинг, создатель Hibernate, объясняет, почему значение fetch size по умолчанию в драйвере Oracle может замедлять запросы — и как его изменение помогает повысить масштабируемость системы.

Читать далее

Java становится надежнее: «Целостность по умолчанию» в действии

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

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

Читать далее

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

Разработка эффективных агентов с помощью Spring AI (Часть 1)

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

Команда Spring АйО перевела статью, в которой рассказывается про разработку эффективных агентов с помощью Spring AI. Исследование Anthropic "Building effective agents" подчеркивает важность простоты и модульности в разработке LLM-агентов.

В статье рассматривается, как эти принципы реализуются в Spring AI через пять ключевых паттернов: Chain Workflow, Parallelization Workflow, Routing Workflow, Orchestrator-Workers и Evaluator-Optimizer.

Читать далее

Использование Drools для конфигурирования приложения

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

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

Читать далее

Демистификация размеров объектов в Java: компактные заголовки, сжатые указатели и многое другое

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

Понимание размера объектов в Java — важный шаг для оптимизации памяти в высоконагруженных системах. 

В новом переводе от команды Spring АйО вы узнаете про использование HotSpot JVM таких механизмов, как сжатые указатели (Compressed Oops) и компактные заголовки объектов (Compact Object Headers), необходимых для минимизации объема занимаемой памяти.

Читать далее

IntelliJ IDEA 2025.1 EAP 2: Поддержка Containerfile и обновления для Dockerfile

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

Команда Spring АйО рада поделиться с новостью от JetBrains: стала доступна вторая версия EAP IntelliJ IDEA 2025.1.

Среди нововведений — поддержка Containerfile и обновления для Dockerfile.

Читать далее

Kotlinx.serialization и работа с JSON

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

Привет, Хабр! Наверное, все мы хотя бы раз сталкивались с задачей сериализации данных, будь то обмен данными с сервером, сохранение состояния объекта в файл или передача данных между различными приложениями. В Kotlin для этих целей удобно использовать библиотеку Kotlinx.serialization, которая позволяет работать с данными, сериализуя и десериализуя их в различные форматы, такие как JSON, CBOR, и Protocol Buffers.

Эта библиотека предоставляет инструменты для сериализации объектов в строки (например, в JSON) и обратно. Главное её преимущество — это полная интеграция с Kotlin.

Читать далее

Маппинг даты и времени в Hibernate и JPA

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

Сегодня любой Java разработчик сходу сможет правильно ответить на вопрос "Как смапить дату и время из колонки таблицы БД на поле в Java классе?". Или нет? 

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

В новом переводе от команды Spring АйО рассказывается про подробности работы с современным API java.time, правильный маппинг данных с учётом часовых поясов, устаревших типов java.util.Date, Calendar и многое другое.

Читать далее

Канареечные релизы на Camunda и Togglz

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

Привет, Хабр! На связи Егор, бэкенд-разработчик из команды Портфолио в Т-Банке. Мы занимаемся актуализацией данных компаний и периодически внедряем новые подходы в наши процессы разработки.

В последнее время мы часто выпускаем новую функциональность, используя метод канареечных релизов. Хочу рассказать о том, как мы это делаем. У себя на проекте мы используем Camunda, поэтому в статье разберем, как более безопасно выпускать новые версии bpmn-схемы на прод, минимизируя влияние багов на пользователей.

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

Читать далее