Всем привет! ? ? ? ?

Мы Java-разработчики Т-Банка: Андрей, Арсений, Константин и Константин. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки и делимся этим со всем сообществом.

В этом выпуске у нас много материалов, посвященных развитию Java. Коснемся и Leyden, и Valhalla, и Loom, и GC в JDK 23. За прошедший месяц вышло много интересных докладов с последнего JPoint, некоторые из них мы осветили в этом выпуске. А в разделе со статьями собрали много туториалов и обзоров. Dev-контейнеры от JetBrains, реализация Transactional Outbox с использованием Spring Boot, отслеживание вызова Deprecated-методов, история сбоя в Netflix, связанного с виртуальными тредами, — вот далеко не полный список. И на сладкое — пара свежих выпусков подкастов JavaHut и javaswag. Приятного чтения ?

Главные новости

JDK 23 G1/Parallel/Serial GC change. В JDK 23 внесено около 230 изменений в подкомпонент Hotspot GC. В статье рассказывается, какие изменения будут в G1/Parallel/Serial GC: 

  • G1 GC — решение проблемы JDK-8280087, улучшение производительности. 

  • Parallel — замена алгоритма Parallel GC Full GC на параллельный алгоритм Mark-Sweep-Compact.

  • Serial GC — очистка и рефакторинг последовательного кода GC.

Project Leyden Announces Early Access Build. Стал доступен Early Access Build доработок из Project Leyden, основанный на незавершенной версии JDK 24. Предварительное тестирование показало улучшение времени старта приложений в 2—3 раза.

Java on Visual Studio Code Update – July 2024. В июльском обновлении Java on Visual Code улучшили интеграцию с Gradle, добавили подсветку и валидацию синтаксиса SpEL и не только. Все подробности — в статье.

Valhalla Early Access Release. Вышел новый EA Release Project Valhalla. Если не терпится попробовать, сделать это можно прямо из браузера. Основное нововведение релиза — Value Classes and Objects.

Apache Fury 0.6.0 Released. Вышла новая версия фреймворка для сериализации Apache Fury. Основным достижением релиза стала оптимизация: скорость сериализации выросла на 50% по сравнению с предыдущим KV-совместимым режимом.

Интересные видео

В Project Loom есть функция структурного параллелизма, которая помогает упростить случаи, когда задача распадается на параллельные подзадачи. Эта концепция хорошо сочетается с виртуальными потоками — дешевыми и легкими по ресурсам. Подробнее о том, как это работает, рассказал Alan Bateman в ролике.

___________________________________________________________________________________

В докладе автор рассказывает о проекте Spring Data JDBC, контрибьютором которого является. Видео может послужить хорошим введением в технологию, а также расскажет о ее проблемах и подводных камнях. 

___________________________________________________________________________________

Доклад посвящен JHipster — платформе для быстрой генерации веб-приложений. Автор рассматривает код, сгенерированный для проекта PetClinic, и ревьюит его, попутно разбираясь, как устроен сгенерированный код и какие у него есть проблемы.

___________________________________________________________________________________

Прекрасный воркшоп, посвященный теме экстеншенов JUnit 5. Дмитрий очень интересно раскрывает потенциал этого механизма. Все приведенные кейсы практичны, а некоторые из них хочется взять и принести на свой проект. Отдельное спасибо за кейс с AllureId у параметризованных тестов ?

Полезные статьи

Deprecated Event. Хотели бы когда-нибудь отслеживать вызовы Deprecated-методов? Нечастая задачка, но в JDK 22 появилось событие для обнаружения устаревших методов в JFR — и теперь вы можете это делать! Примеры работы можно посмотреть в статье.

Converting Data Sources to Streams. Рассматривается преобразование итерации в функциональный стиль с использованием Streams API. Это позволяет удобно обрабатывать файлы в потоке, и такой код намного приятнее читать.

A Guide to CompletableFuture. Автор на примерах подробно рассматривает CompletableFuture, его методы, как обрабатывать ошибки и многое другое. Если еще не изучали или хотите освежить в памяти, как использовать CompletableFuture, статья будет полезна.

Java compareTo method: Natural Order Of Things. Небольшая приятная статья про compareTo. Новичкам обязательно к прочтению, тем, кто уже опытен, также может быть полезно. Я, например, никогда не задумывался, почему при сравнении int-полей этот метод нельзя определять через вычитание.

Using Dev Containers in JetBrains IDEs – Part 1. JetBrains представили концепцию Dev-контейнеров. Это Docker-контейнеры, которые будут содержать среду для разработки конкретного проекта, включая код проекта и даже IDE! А точнее, бэкенд IDE, к которому цепляется специальная фронтовая часть. 

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

Java 21 Virtual Threads - Dude, Where’s My Lock? Интересная статья от Netflix с исследованием причин, по которым их сервисы на стеке Java 21 + Spring Boot 3 + Tomcat в какой-то момент переставали обрабатывать запросы.

Transactional Outbox pattern with Spring Boot. В статье рассматривается один из вариантов реализации паттерна Transactional Outbox, который обеспечивает атомарность и согласованность данных в микросервисной архитектуре. Автор объясняет проблему атомарности и демонстрирует реализацию паттерна с помощью Spring Boot.

Любопытные подкасты

Название, в принципе, отражает суть выпуска. Определенного фокуса у него нет, ребята на чиле беседуют обо всем понемногу. Использование Graal с Python, Extension-методы, AI и его юзкейсы, газереры в Stream API и, конечно, откат String Templates. Слушать легко и ненапряжно.

___________________________________________________________________________________

В интервью Андрей рассказал о платформенной разработке и фреймворке, работающем на основе генерации кода: почему был выбран такой подход и какие решения принимались в процессе разработки. Поговорили об AI-ассистентах для написания кода и о том, как их использовать наиболее эффективно. 

Просто интересное

Тестирование производительности все более активно проникает в жизнь современного разработчика, особенно если он участвует в разработке высоконагруженной системы. Доклад сфокусирован как раз на нагрузочном тестировании — одном из видов тестирования производительности. Вы узнаете, что конкретно проверяет именно этот вид тестирования, как его правильно проводить и на что обращать внимание, какими инструментами пользоваться и как интерпретировать результаты.

___________________________________________________________________________________

Уверены, многие задавались вопросом, как подготовиться к интервью по System Design. Что нужно выучить? В каком формате оно проходит? Как вообще можно меньше чем за час рассказать архитектуру, например, социальной сети? Дмитрий делится своим опытом и детально расписывает структуру интервью и как к нему можно подготовиться. Даже если вы не планируете в ближайшее время проходить соответствующее собеседование, все равно настоятельно рекомендуем посмотреть этот доклад, так как в нем присутствует описание нескольких интересных структур данных и архитектурных приемов, которые полезно иметь в своем арсенале.

Джавовые события

31 августа пройдет первая JVM-конференция от T-Банка в офисе компании Space. Будут доклады по Java- и Scala-стекам, обсуждение общих инженерных практик, много нетворкинга и активностей. Регистрируйтесь, чтобы расширить свои знания и отлично провести время! Будет круто!

Спасибо, что читаете! Ждем обратную связь в комментариях. Присылайте материалы, если встретили что-то интересное, — опубликуем в следующем выпуске! Увидимся через месяц ?

Комментарии (5)


  1. ikwall
    07.08.2024 15:17

    Вы ещё развиваете свой фреймворк ? если не ошибаюсь кора называется


    1. maximovkl Автор
      07.08.2024 15:17

      Да, буквально сегодня вышла новая версия :)

      https://github.com/kora-projects/kora


    1. maximovkl Автор
      07.08.2024 15:17

      Кстати, на нашей конференции 31 августа про кору тоже будут рассказывать


  1. SimSonic
    07.08.2024 15:17

    31 августа пройдет первая JVM-конференция от T-Банка в офисе компании Space. Будут доклады по Java- и Scala-стекам, обсуждение общих инженерных практик, много нетворкинга и активностей.

    А онлайн или запись не планируется?


    1. maximovkl Автор
      07.08.2024 15:17

      Онлайн нет, но записи докладов будут