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

Kotlin *

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

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

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

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

Понимание размера объектов в 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 мин
Количество просмотров3.6K

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

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

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

Читать далее

Разработка плагина для интеграции Яндекс-Календаря с IntelliJ IDEA

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

Последние 10 лет я занимаюсь java разработкой и на протяжении всего этого времени Intellij Idea является неотъемлемой частью моей(да и многих других джавистов) работы. К сожалению некоторых вещей, которые были бы удобны лично мне, в ней нет, но к счастью есть возможность расширять IDE с помощью плагинов. На моём ноутбуке установлен linux и нет какой-то удобной нотификации событий из корпоративного календаря, а IDE практически всегда открыта на главном мониторе. По этой причине(а ещё из-за внезапно появившегося окна свободного времени и простого интереса) я решил, почему бы не интегрировать календарь прямо в IDE, чтобы получать нотификации и точно не пропустить ничего важного?
Об этом и пойдёт речь в статье.

Читать далее

Как синтаксический сахар Kotlin может сломать вам логику работы приложения

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

Как использование object и data class сломало работу моего приложения и какие уроки я вынес про синтаксический сахар Kotlin и IDEA, которая так сладко предлагает замены.

Подробности

Погружение в мир Lint'a в Android-проекте (часть 2)

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

Продолжим рассматривать различные нюансы статического анализа с помощью Lint. Опираться будем на предыдущую статью. С момента её публикации прошло много времени, за которое вышло несколько значимых обновлений Android Gradle Plugin (а с ним и всех артефактов линтера), а также вторая версия Kotlin с новым компилятором. Вкратце рассмотрим наиболее заметные для нас изменения с небольшими примерами. Кроме того, удалось найти что-то похожее на полноценную документацию по lint (правда, редко обновляющуюся), наиболее интересные моменты оттуда тоже рассмотрим.

Читать далее

Нужна ли асинхронщина на проектах: пара наблюдений про Spring и неблокирующее API для самых маленьких

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

Всем привет! Я работаю на собственном проекте Максилекта. Это высоконагруженная AdTech платформа, включающая Ad Exchange сервер и сопутствующие компоненты. Но в этой статье речь пойдет не совсем о проекте. Я бы хотел поговорить об асинхронщине в задачах подобного масштаба. Просто на примеры из проекта мне будет удобно ссылаться. 

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

Читать далее

Заговор разработчиков против корпораций

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

Речь пойдет о тайной, сугубо анонимной организации, следы которой начал замечать еще в 2018-ом, работая в Яндексе. О целях и мотивах организации можно только догадываться: некоторые считают это кибер-луддизмом, другие — техно-анархизмом. Ясно одно: организация существует, ее члены уничтожают кодовые базы десятилетиями, и говорить об этом не принято.

Читать далее на свой страх и риск

Event-driven микросервисы с использованием Spring Boot и Kafka

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

Event-driven архитектура - один из видов архитектур, который подходит для обеспечения независимости, масштабируемости и устойчивости микросервисов. 

В новом переводе от команды Spring АйО вы в легкодоступной форме узнаете, как построить такую архитектуру, используя Apache Kafka и Spring Boot, а также ознакомитесь с пошаговой настройкой продюсеров, консумеров, решеним задач надежности и управлением схемами.

Читать далее

Explyt Spring Plugin — наша версия HTTP-клиента для IntelliJ IDEA

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

Всем привет! Как следует из названия статьи, речь пойдет о HTTP-клиентах для IntelliJ IDEA, да, опять). В последнее время было несколько публикаций на эту тему, и мы бы хотели подробно рассказать о нашем взгляде на эту проблему и нашей реализации. А также поговорить о плюсах и минусах текущих решений для IDEA. Ранее мы уже рассказывали о нашем плагине для Spring - о том как у нас реализована поддержка Dependency Injection в частности, теперь настала очередь HTTP client'а.

Читать далее

Экспорт и импорт File Templates в IDE от Intellij

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

Всем привет! На связи Дима Котиков, и это заключительная статья цикла про File Templates. В предыдущих частях мы познакомились с инструментом File Templates, разобрали синтаксис написания шаблонов и написали шаблоны для кода типового экрана SomeFeature мобильного приложения.

В заключительной части разберем, как можно экспортировать и импортировать File Templates в Intellij-IDE, а также подведем общие итоги по циклу статей.

Читать далее

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

Стала доступна первая EAP-версия IntelliJ IDEA 2025.1

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

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

Среди нововведений поддержка Java 24, улучшения отладчика и инструментов сборки.

Читать далее

Управление настройками с помощью Jetpack DataStore: Простой подход к сохранению данных разных типов

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

Всем здравствуйте. Это моя первая статья на такую публику, поэтому просьба не судить строго! :-)

При разработке Android-приложений часто возникает необходимость сохранять пользовательские настройки, такие как выбор темы, язык или другие данные пользователя. Jetpack DataStore — это современное решение для хранения таких данных, которое заменяет устаревший SharedPreferences. В этой статье мы рассмотрим, как использовать DataStore для хранения различных типов данных (Boolean, Integer, Float и String) и как интегрировать его с архитектурой MVVM, используя StateFlow для обновления UI.

Что такое DataStore?

Jetpack DataStore — это библиотека для хранения данных, поддерживающая асинхронное и безопасное чтение и запись данных. Она предоставляет два типа хранилищ:

1. Preferences DataStore: Используется для хранения пар "ключ-значение" (похож на SharedPreferences).

2. Proto DataStore: Используется для хранения структурированных данных на основе протокольных буферов.

В этой статье мы сосредоточимся на Preferences DataStore, которое идеально подходит для хранения настроек приложения.

Читать далее

Amplicode становится платным (и остается бесплатным)

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

Практически год с момента публичного релиза в апреле все возможности Amplicode были доступны любому разработчику абсолютно бесплатно.

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

В новой статье мы рассказали, какая часть возможностей Amplicode останется бесплатной, что войдет в состав платной версии, сколько будет стоить подписка и кто может рассчитывать на скидки до 100%.

Читать далее

Постквантовая криптография в Java

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

Команда Spring АйО перевела статью про новые возможности грядущей версии Java 24, в которой появятся два JEP — 496 и 497, посвященные алгоритмам, устойчивым к квантовым атакам. 

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

Читать далее

Примеры использования File Templates для типовых сценариев, где требуется шаблонный код

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

Всем привет! На связи Дима Котиков, и это вторая статья из цикла про File Templates. В предыдущей части мы описали проблему с необходимостью написания шаблонного кода и вариантами решения, познакомились с инструментом шаблонов File Templates и разобрали синтаксис написания шаблонов.

В этой статье перейдем к практике — напишем шаблоны для кода типового экрана SomeFeature мобильного приложения.

Читать далее

Jakarta Data и Persistence: Инструменты, которые меняют подход к работе с данными

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

Команда Spring АйО перевела и адаптировала доклад "Jakarta Data and Jakarta Persistence by Gavin King" Гевина Кинга с последнего Devoxx.

В своем выступлении Гевин Кинг рассказал о преимуществах и нововведениях Jakarta Data и Jakarta Persistence.

Читать далее

Kotlin Coroutines под капотом: отмена корутин

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

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

Читать далее