Обновить
65.28

Kotlin *

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

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

UUIDv7 в PostgreSQL 18

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

Совсем скоро (в конце сентября) выйдет PostgreSQL 18. Релиз готовит важные обновления — от асинхронного I/O до EXPLAIN с показателями CPU и WAL. 

Довольно громкая новинка — нативная поддержка UUIDv7, нового стандарта уникальных идентификаторов, идеально подходящих для B-tree индексов. 

В новом переводе от команды Spring АйО рассказывается, почему это важно, как работает UUIDv7 и чем он лучше UUIDv4 для современных распределённых систем.

Читать далее

Compose + Koin + Jetpack Navigation: что мы поняли за 2 года

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

Привет, Хабр! Меня зовут Арсений Шпилевой, и я Android-разработчик в core-команде WB Partners, Wildberries & Russ. Сегодня поделюсь нашим опытом развития архитектуры приложения на Jetpack Compose: с какими ограничениями мы столкнулись, как укротили навигацию от Google и какими молитвами всё это подружили с Koin. Главным образом речь пойдёт про навигацию на уровне UI, без data- и domain-слоёв.

Читать далее

Что нового в Maven 4?

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

В новом переводе от команды Spring АйО рассматриваются основные изменения, которые ждут нас в новой версии Maven. Изменения затронули performance, POM, новый тип упаковки, улучшения для подпроектов и много другое. 

Читать далее

95% пилотных проектов в области генеративного ИИ в компаниях проваливаются

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

Несмотря на высокий интерес компаний к генеративному ИИ и его потенциал для роста выручки, подавляющее большинство корпоративных проектов терпит неудачу. Новый отчёт MIT указывает, что только 5% пилотных внедрений приносят ощутимый финансовый эффект. В переводе от команды Spring АйО рассмотрим основные причины, которые кроются не в самих моделях, а в ошибочной интеграции, неправильных приоритетах и нехватке адаптации под бизнес-процессы.

Читать далее

Бесконечные циклы. Всё, что может пойти не так — пойдёт не так

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

Конструкции типа while(true) или for(;;) довольно опасные. Когда люди их пишут, то всегда надеются на то, что сработает условие выхода из цикла. Однако, на самом деле, как бы мы ни были уверены, такие конструкции лучше избегать.

В любом программном продукте есть баги, и те инварианты, на которые идёт расчёт, могут просто не сработать. Решение? Читайте в переводе от команды Spring АйО, где автор указывает примеры того, как с этими конструкциями поступили в Jooq и как с ними работает один из департаментов University of California.

Читать далее

LSP API теперь доступен всем пользователям IntelliJ IDEA и разработчикам плагинов

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

Команда Spring АйО перевела статью от JetBrains, в которой рассказано про избавление одного из главных барьеров на пути к массовому внедрению Language Server Protocol (LSP) в своей экосистеме.

С версии IntelliJ IDEA Ultimate 2025.2 пользователи смогут использовать LSP даже после окончания подписки, а с 2025.3 — LSP станет доступным во всех редакциях IDE благодаря переходу на единый дистрибутив.

Читать далее

Пользователь как сервер или «Request-Based» архитектура на примере Open Source Блокнота

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

Привет, меня зовут Саша и я Android-разработчик :)

Разрабатывая мобильные приложения я обратил внимание что все операции которые делает приложение - это по сути запросы данных от разных источников.

Часто источниками данных являются: человек, сервер и устройство (User, Server, Platform).

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

Подобно тому как вызовы функций вкладываются друг в друга:

Читать далее

Упрощаем NFC: обзор нового SDK для Android разработки

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

Работа с NFC в Android всегда была непростой задачей. Нативный API требует от разработчика понимания низкоуровневых протоколов и механизмов обработки данных. Новый TAO NFC SDK (Android) призван решить эту проблему, предоставляя высокоуровневую абстракцию, которая значительно упрощает взаимодействие с NFC-метками.

Читать далее

Compose Multiplatform простое приложение c MVI

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

Статья об использовании мультиплатформенного Android и iOS решения на Compose с минимальным количеством сторонних beta библиотек. Настройке проекта для iOS и Android, а также тестировании с помощью локального сервера Netty

Из сторонних бета-библиотек используется buildkonfig = "0.17.1"

Room - База данных

Ktor - Network. Также задействован embeddedServer для эмуляции сервера

Koin - Dependency Injection

Coroutine Flow

Compose Navigation

Clean Architecture

Читать далее

Обратная совместимость в Java-мире

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

Это текстовая версия доклада с Java Rock Star Meetup, с которым выступал Владимир Ситников (@vladimirsitnikov) — performance engineer, PgJDBC и JMeter committer, а также член программных комитетов JPoint, Joker, Heisenbug, DevOops и SmartDara. Если вы больше любите смотреть видео, то смотрите запись доклада на YouTube или VK Видео.

От приложения мы хотим стабильности и предсказуемости. Мы хотим, чтобы приложение было одинаковым. Эта предсказуемость и обратная совместимость являются эдакой священной коровой, которая движет Java вперёд, возможно, движет назад и, возможно, по некоторым сведениям, из-за этого Java и умрёт.

Однако 30 лет Java прожила. Давайте посмотрим, как это всё было и что было в начале.

Читать далее

Просто будь ленивым

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

В новом переводе от команды Spring АйО рассматривается JEP 502, который вносит в Java 25 StableValue. StableValue позволяет легко и эффективно реализовывать производительные ленивые конструкции. Новое API позволяет компилятору JIT заранее сворачивать вычисления (constant folding), повышая производительность. Искали Lazy, но нашли золото: StableValue вычисляется один раз и может быть подготовлен Ahead Of Time.

Читать далее

Поддержка Spring 7, Reactive Debugger, работа с БД и HTTP прямо в IDE: это и много другое в Amplicode 2025.2

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

Amplicode 2025.2 — это релиз, в котором мы закрыли десятки мелких раздражающих моментов, и усилили поддержку ключевых технологий — от Spring и Spring Data JDBC до Docker, Kubernetes и Terraform. А также сделали интеграцию с базами и HTTP-сервисами ещё более бесшовной.

Читать далее

Единый дистрибутив, JSpecify, Java 25 и новый Spring Debugger: это и многое другое в IntelliJ IDEA 2025.2

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

IntelliJ IDEA 2025.2 — это релиз, который уже вызывает горячие обсуждения в комьюнити. JetBrains сделали первые шаги в сторону единого дистрибутива, добавили поддержку свежих технологий вроде JSpecify и Java 25, а ещё представили инструмент, который может изменить подход к отладке Spring-приложений.

Читать далее

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

Spring Boot 4 и Spring Framework 7: Ключевые фичи и изменения

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

Уже в ноябре 2025 выходит Spring Boot 4 — масштабный релиз, построенный на фундаменте Spring Framework 7.0.0 и Jakarta EE 11. Это не просто очередное обновление, а важный этап в развитии всей Java-платформы: новые возможности для REST и безопасности, улучшенная работа с Kotlin и GraalVM, мощная поддержка облаков и нативных образов, а также инструменты для создания отказоустойчивых приложений.

🧠 Эта статья — больше, чем просто перевод: в ней собрано большое кол-во комментариев от экспертов Spring АйО.

Читать далее

Хватит терять время! Ускоряем сборку с помощью Spring Test Profiler

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

Интеграционные тесты на Spring Boot могут тормозить разработку. Причина часто кроется в неэффективной работе с кэшем контекста Spring. 

Spring Test Profiler — это инструмент, который поможет выявить узкие места и оптимизировать конфигурацию тестов. В новом переводе от команды Spring АйО мы рассмотрим, какие тесты вызывают повторную загрузку контекста, где конфигурации расходятся и как можно унифицировать окружение для значительного ускорения тестов.

Читать далее

ArchUnit против хаоса

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

Привет! Я Масгутов Руслан, архитектор в Т-Банке. Одна из моих задач — вести архитектурный надзор по техническим решениям. Проверка структуры проектов при ревью довольно быстро становится скучной рутиной, и появляется желание автоматизировать эту деятельность, чтобы освободить время для более интересных задач.  

Расскажу, как мы используем ArchUnit для автоматизации архитектурного контроля. Покажу, как мы обернули правила в Gradle-плагин, встроили их в CI/CD, боремся с архитектурными отклонениями до того, как они попадают в pull request, и расскажу о возможности сбора архитектурных метрик.  

Читать далее

Spring Modulith: проверяем границы модулей в монолите и события домена

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

Привет, Хабр!

Еще в C++20 появилась явная поддержка модулей в языке. Интересно, но в Java тоже давно искали похожее решение для упорядочивания больших монолитных проектов. Spring предлагает свой ответ – проект Spring Modulith, цель которого дать разработчику инструмент для построения модульного монолита. Он не делает всю работу, но помогает структурировать код по модулям, проверять архитектурные правила и организовывать взаимодействие между этими модулями.

Читать далее

Тренажер французских числительных на Jetpack Compose

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

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

И хотя программиста не запугаешь даже 16-ричной, все-таки метаться между системами счисления в уме, когда ты уже стоишь у кассы и должен расплатиться, причем, по нынешним временам, наличными, - тот еще квест. Поэтому давайте доведем знание числительных до автоматизма.

Читать далее

Что можно узнать о Max из AndroidManifest

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

Привет, Хабр!

Сегодня в сети есть много дискуссий о мессенджере Макс. Недавно я наткнулся на один пост в гитхабе с анализом Android-приложения, где приводятся страшные выводы о слежке за пользователями. Поскольку интерес к этому вопросу лично у меня велик, я решил разобрать важный файл приложения — его AndroidManifest.xml — и проверить факты. 

Сам по себе AndroidManifest.xml — это своеобразный декларативный контракт приложения с Android: в нем зашиты его идентичность, модель доступа, поверхность атаки, аппаратные и сетевые зависимости, а также внешние взаимодействия. По одному этому файлу уже видно, к каким данным приложение может проситься, что оно имеет право делать в фоне, какие входные точки открыты наружу и под какие правила безопасности платформы оно подпадает. Манифест задает границы возможностей и рисков, а код и выданные пользователем разрешения решают, воспользуется ли приложение этими возможностями.

Читать далее

Bitnami Secure Images: Прощание с Бесплатным Продом

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

Команда Spring АйО перевела статью про то, что не так давно, компания Broadcom, которая на данный момент в силу различных M&A сделок косвенно управляет компанией Bitnami, внесла существуенные изменения в политику поддержки docker образов.

Теперь не бесплатно!

Читать далее