Что нового в Spring Boot 3.4

Недавно состоялся релиз Spring Framework 6.2, вслед за ним последовал релиз Spring Boot 3.4.
Команда Spring АйО подготовила перевод статьи Josh Long об основных изменениях и улучшениях, которые вошли в последний релиз.

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

Недавно состоялся релиз Spring Framework 6.2, вслед за ним последовал релиз Spring Boot 3.4.
Команда Spring АйО подготовила перевод статьи Josh Long об основных изменениях и улучшениях, которые вошли в последний релиз.
Рассказываю про то, про что нельзя говорить (по мнению JB) — Compose HTML. О том, как эта библиотека была Compose Web, как стала Compose HTML, что и как там можно делать и про основные проблемы — всё по‑возможности кратко (надеюсь :) )

Всем привет! Меня зовут Иван Чечиков. В этой статье я расскажу о своем пет-проекте - Android приложении, которое может идентифицировать нежелательные входящие звонки.
Подробности – под катом.

Совсем недавно вышла IntelliJ IDEA 2024.3 – последний мажорный релиз IDE в этом году. И одним из самых важных нововведений этой версии стала улучшенная панель Structure.
Команда Spring АйО перевела статью Siva Katamreddy (Developer Advocate в JetBrains), в которой Siva рассказывает, как улучшенная панель помогает решать задачи, и делится историей создания этой функциональности.

Привет, Хабр! Сегодня рассмотрим, как реализовать паттерн Composite в Kotlin с помощью sealed-классов и корутин. Если у вас есть сложная система с кучей объектов — простых и составных — и вы хотите управлять ими, не теряя асинхронности, то этот гайд для вас.

Команда Spring АйО перевела и адаптировала доклад "Endpoint versioning made simple" Бауке Найхаус (Bouke Nijhuis) с последнего Devoxx Belgium.
В докладе автор объясняет, зачем нужно версионировать API, и подробно сравнивает различные подходы к реализации этой задачи.
Паттерны проектирования на языке Kotlin
Это вторая часть статьи. Первая её часть здесь.
Поведенческие паттерны

Небольшой туториал на тему «Как уменьшить количество Android-модулей в проекте при помощи оберток над Android-классами»
На решение, которое будет описано ниже, меня натолкнула статья Оптимизация Gradle: избавляемся от Android-модулей. В ней приведен синтетический бенчмарк, из которого видно, что количество gradle-модулей с Android-плагином негативно влияет на скорость конфигурации проекта, а также на количество необходимой памяти. Мы, как инженеры, должны воспользоваться каждой возможностью ускорить сборку проекта. Однако в статье приведено несколько недостатков описанного подхода, и на момент написания статьи они были критичными и не давали возможности использовать его в нашем проекте.
Итак, теперь сначала..

Приветствую тебя, уважаемый читатель! Меня зовут Пятаков Никита, я Android-инженер в команде MT&S Авито. Здесь я делюсь опытом реализации двух версий шапки на главном экране приложения Avito. Эта статья будет особенно полезна разработчикам, которые хотят познакомиться с CoordinatorLayout и научиться делать похожие задачки с нетривиальным взаимодействием view между собой.

Привет, друзья!
Я Илья Попов, действующий senior android разработчик, ментор начинающих андроид-разработчиков и автор телеграм-канала Android Dev Notes.
Итак, вы приняли решение стать андроид-разработчиком. Как найти дорогу в этом океане неизвестного впереди?
Раз наша цель – работа в андроид-разработке, то первое, что нужно сделать – изучить рынок вакансий и понять, а что от вас вообще нужно работодателям?
Идём на основные сайты для поиска работы (hh, superjob, career.habr, geekjob, getmatch и тд) и анализируем пару десятков вакансий джуниоров и то, какие требования в них фигурируют чаще всего. Составляем себе список навыков, библиотек, фреймворков, инструментов для освоения.
Следующее, с чем надо определиться: к какому из пунктов приступать первым? Здесь два варианта:
– самостоятельно изучаем программы существующих курсов в интернете и на этой основе пытаемся понять, в какой последовательности что обычно учат
– просим помощи в составлении программы у компетентного разработчика, который занимается обучением начинающих
Эта программа не будет высечена на камне – нам может потребоваться её изменять, а часто придётся импровизировать и отходить от неё. Но мы теперь не плывём в океане наудачу – у нас есть маяк. А дальше дело за малым – поднимаем якорь, надуваем паруса и вступаем на тернистый, но интересный путь разработчика!
Другие статьи из серии:
1. Почему MVx архитектуры всегда получаются плохо
2. Как поправить 3 проблемы MVx архитектур
3. Кроссплатформенная архитектура ядра приложения. Простая. Линейная. Масштабируемая
4. Т-функция: подключаем логику к UI как к БД
Я — андроид разработчик. Обычно ко мне приходят с фразой вроде “вот мы тут придумали фичу, сделаешь?” и с макетом дизайна, вроде такого.

Я смотрю на это всё и вижу: вот экраны, эти данные на них — статические, а вот эти динамические, значит их надо откуда-то взять; вот тут интерактивные компоненты: при взаимодействии с ними надо что-то сделать. Иногда просто открыть другой экран или виджет, иногда выполнить логику. Исходя из этого я проектирую то, как будет выглядеть логика фичи. Описываю ее в компонентах архитектуры, разбиваю на задачи, узнаю где и как взаимодействовать с сервером, и прочее.
Но потом я обнаруживаю, что далеко не все переходы такие простые, как нарисовано на дизайне, например, как в случае с авторизацией. Не все явно присутствуют, как, например, переходы назад. А в некоторых случаях не хватает всевозможных экранов ожидания, экранов “пустых” состояний и экранов ошибок.
Знакомо?
Паттерны проектирования - проверенные временем решения общих задач в программировании. Они разделяются на три категории:

Недавно вышел Spring Framework 6.2, который включил в себя множество улучшений и новых возможностей. К одним из них можно отнести переопределение бинов в тестах.
В новом переводе от команды Spring АйО вы узнаете как можно использовать @TestBean, @MockitoBean и @MockitoSpyBean для переопределения бинов в тестах.

Как и многие, я, как мог, сопротивлялся Test-Driven Development. Я не понимал, почему тесты нужно писать перед реализацией. Почему мы должны выворачивать разработку наизнанку и переворачивать естественный, как мне тогда казалось, процесс, с ног на голову.
Но, так или иначе, разработка через тестирование настигла и меня. Да, до сих пор получается не идеально, но значимость модульных тестов сейчас мне видится неоспоримой.
И об этом мы поговорим в статье ниже.
Мы разберём страхи, останавливающие разработчика перед тем, чтобы начать, наконец, писать тесты. Выявим очевидные преимущества. Обсудим основные правила разработки через тестирование. И подкрепим всё это реальными примерами.

Зовут меня Артемий, я разработчик в компании i-Digital. Еще в начале своего карьерного пути выбрал для себя основным языком Python и развивался по большей части в нем. В какой-то момент начал преподавать его молодому поколению разработчиков в частных студиях, а заодно брать студентов на личное обучение.
Я пришел в коммерческую разработку на определенный проект, который был реализован на Python, но основным стеком для компании являлся Kotlin. Несмотря на переход в разработку, я продолжен преподавать и занимаюсь этим до сих пор. Вот из такой стартовой позиции начнем наше повествование.

Команда Spring АйО перевела и адаптировала доклад "Garbage Collection in Java: The progress since JDK 8" Стефана Йоханссона(Stefan Johansson) с последнего Devoxx Belgium.
Доклад получилось поделить на две статьи:
* В первой мы рассказали про основы работы сборки мусора в Java и различных сборщиках мусора
* Вторая часть посвящена сравнению производительности сборщиков и их прогрессу с момента выхода JDK 8

В этой статье поговорим о Kotlin и его инлайн‑классах. Честно говоря, когда я впервые услышал об этой фиче, подумал: «Опять что‑то выдумали, чтобы жизнь медом не казалась». Но, разобравшись, понял, что это очень даже полезная штука.

Команда Spring АйО перевела статью, в которой Steve Reisenberg рассказал о множестве полезных улучшений для работы с OAuth2 в Security 6.4.
Прочитав статью вы узнаете, как отправлять запросы к защищенным ресурсам без дополнительных зависимостей, а также переопределять параметры в запросах токенов доступа для реализации сложных сценариев.

Всем привет! Меня зовут Женя Мельцайкин, я старший инженер-программист в компании Контур. Большую часть времени в Контуре я работал и работаю Android-программистом, но статья будет не про Android и даже не про мобильную разработку. А про команду мобильной разработки и про наш процесс разработки! Давайте же начнем разбираться, причем тут мобильные разработчики, автоматизация и бэкенд.

Года три назад я захотел сделать для себя небольшой сайт. Лезть в TypeScript или тем более в JavaScript, когда любишь Kotlin, желания не было, равно как и не хотелось создавать какие-то типовые функции с нуля. По этим причинам выбор пал на React в сочетании с Kotlin Wrappers.
Ознакомившись с тем, что предлагается по умолчанию в упомянутой комбинации языка и инструментов для разработки, я понял, что не все стандартные решения из неё мне полностью нравятся.
От первичного плана работ на несколько месяцев процесс затянулся на более чем два года. Сайта в итоге так и нет, но вместо него появился небольшой фреймворк — kjs-box: в этой статье я расскажу о его основных концепциях и функциях.