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

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

Джо Аберкромби писал: «Чем больше ты узнаешь — тем больше понимаешь, как мало знаешь. Однако усилие само по себе стоит того». Надеемся, наш дайджест поможет вам на этом пути. Stay tuned! ????

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

Начался релизный цикл Java 21. Список JEP-ов, которые войдут в финальную версию, утвержден и больше не будет меняться. По расписанию релиза в общий доступ Java 21 выйдет 19 сентября. Напомним, что это LTS- релиз, а значит, пора планировать миграцию ????

В Intellij IDEA появится AI-ассистент. Он уже доступен в IntelliJ IDEA 2023.2 EAP 6. Заявлено, что AI может генерировать документацию, а также помогать с неймингом и сообщениями коммитов. Кроме того, прямо в среду разработки будет интегрирован чат для общения с ним. Полный перечень нововведений — в блоге IntelliJ IDEA 2023.2 EAP 6. 

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

Опубликованы доклады со Spring I/O 2023 в Барселоне. Рекомендуем к просмотру:

Spring I/O 2023 — Keynote:

Juergen Hoeller подробно рассказывает о том, какие изменения во фреймворке будут доступны и как они соотносятся с последними фичами JDK:

Kotlin goes WebAssembly. В Kotlin 1.8.20 представили новый таргет для компиляции Kotlin-кода — WebAssembly. На видео Себастьян показывает, как написать приложение под запуск в браузере и на node.js, который также поддерживает WebAssembly. Пока фича сыровата и требует полировки, но уже сейчас можно с нею поиграть:

Владимир Ситников — B-tree-индексы в базах данных на примере PostgreSQL. Простой, но информативный доклад, раскрывающий тему B-tree-индексов. Большой плюс — прекрасная визуализация и наглядные примеры. Автор разбирает основные кейсы, которые могут встретиться в повседневной работе:

Иван Пономарев — Презентация как код. Asciidoctor, RevealJs, IntelliJ IDEA + Asciidoctor plugin, Maven + AsciiDoctorJ — это стек для создания презентаций ???? Иван демонстрирует технику Presentation As A Code, подразумевающую, что весь контент презентации ОПИСАН декларативно на Asciidoctor, а потом собран в удобный формат. Основной плюс этой техники — гибкость, причем это касается как представления контента, так и работы с изменениями через систему контроля версий:

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

Spring Boot Application Testing and Development with Testcontainers — подробно о поддержке Testcontainers в Spring Boot 3.1.0. Теперь конфигурировать Postgres или Kafka контейнеры получается буквально по щелчку, просто добавив соответствующие контейнеры в контекст и навесив аннотацию @ServiceConnection. 

Никаких дополнительных пропертей прописывать не нужно, все работает из коробки. А еще ту же конфигурацию контейнеров можно использовать, чтобы поднять сервис локально. Spring сконфигурирует и поднимет все контейнеры при запуске приложения. И как будто этого мало — можно пометить бины контейнеров аннотацией @RestartScope из DevTools и тогда между запусками приложения контейнеры даже не будут переподниматься. Это действительно крутые фичи, которые заставят по-другому взглянуть на разработку и тестирование java-приложений ????

Подробнее обо всем — в новом выпуске Spring Tips.

Использование оконных функций с Hibernate 5 и 6. Рассматриваются мощные возможности языка SQL — оконные функции и их работа в Hibernate. Оконные функции позволяют выполнять вычисления над определенными подмножествами строк таблицы, связанными с текущей строкой. Они подобны агрегатным функциям, но не сокращают строки до одной на выходе, сохраняя уникальность каждой строки.

Лучшие практики скриптования в Jira Server/Data Center — как написать автоматизацию на Groovy с использованием API Jira Java. Автор статьи — Сергей Трошин, администратор Atlassian в компании VKCO. Он заметил, что в интернете недостаточно сосредоточенной информации на эту тему, хотя она важна для компаний, использующих сложные средства автоматизации бизнес-процессов. В большинстве случаев таким средством является плагин Scriptrunner от Adaptavist.


Как в три раза снизить затраты на отказоустойчивую инфраструктуру, переехав с Hazelcast на Redis, — хорошая статья от команды Alfa, где автор делится опытом выбора распределенного кэша в качестве замены Hazelcast. Читается легко и интересно. Рекомендуется к прочтению тем, кто сейчас стоит перед аналогичным выбором.

Class Loader Hierarchies — небольшая, но интересная статья поможет вспомнить, как работают загрузчики классов в Java. Рассматривается иерархия загрузчиков классов в Java, роль каждого класса загрузчика и порядок запроса загрузки, а еще обсуждаются дополнительные функции загрузчика. 

A New GraalVM Release and New Free License! | by Alina Yurenko
GraalVM EE is Dead, Long Live Oracle GraalVM — JVM Weekly vol. 47
Две интересные и полезные статьи о том, как обстоят дела у Graal VM. Если верить написанному, то изменилась лицензия и стала доступнее. Теперь не будет как таковой Enterprise-версии. К тому же в статьях много внимания уделяется новым фичам. Полезное чтиво про будущее, которое уже наступило.

Securing Spring Boot Applications With SSL — рассказ о нововведении Spring Boot 3.1 — SSL Bundles. Их основная задача — создать более верхнеуровневую абстракцию над SSL и тем самым упростить настройку SSL в Spring Boot приложениях.

Migrating an Application to Native Image With Spring Boot 3 — наш коллега Андрей Сулыз поделился своим опытом в миграции приложений на Spring Boot 3 и Native Image. Цифры, примеры, проблемы — все как мы любим!

Профилирование, ассемблер и все-все-все — хорошая статья про неочевидные особенности работы ключевого слова volatile. Там много ссылок и отсылок. Крайне рекомендуем!

JFR View Command — в JDK21 появилась новая команда JFR.view, позволяющая получить агрегированные JFR-данные работающего приложения прямо в консоли, без выгрузки дампа и открытия его в Mission Control. Может быть полезно.

How to validate the DDL schema with Spring and Hibernate — о том, как использовать инструменты Hibernate для управления и проверки схемы базы данных при работе с объектами JPA. Особое внимание уделяется Hibernate SchemaManagementTool, который позволяет генерировать сценарии DDL и проверять совместимости сопоставлений JPA с базовой схемой базы данных. Еще есть рекомендация использовать инструмент автоматического управления схемой, например Flyway, для полноценного управления схемой базы данных.

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

Podlodka #323 — Языки конфигураций. Выпуск про языки, основная задача которых — представлять данные в определенном формате: yml, json, xml и так далее. В первой половине приводится небольшой исторический экскурс, вторая же сконцентрирована на конкретных языках. Описаны их преимущества, недостатки и кейсы использования.


Javaswag #49 — Владимир Швец — от Джуна до Сеньора, как выжить в IT

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

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

Cognitive Load Developer's Handbook. Принцип KISS — один из основополагающих в современном программировании. Он говорит о том, что писать код нужно максимально просто. Многие разработчики слышали, что не стоит создавать слишком длинные цепочки наследования, бого-классы с большим количеством ответственности, условные выражения с большой вложенностью и подобное. 

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

Также из своей криокамеры вылез Олег Чирухин с новым выпуском своего Java-дайджеста за начало июля. Рекомендуем ????

Спасибо, что читаете! Ждем обратную связь в комментариях ✌️

P.S. Хотим поблагодарить наших коллег, которые помогали собирать материалы. Вы потрясающие! ????

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


  1. Wan-Derer
    07.07.2023 15:21

    В Intellij IDEA появится

    Только где ж ея взять? Ульматнутую в смысле? Ключи не продают, учебки не раздают... М? Али тиньки тайные тропы ведают?


    1. equeim
      07.07.2023 15:21
      +3

      Для разработки опенсорсных проектов жетбрейнс выдают лицензию бесплатно (не только на идею но и на другие платные ide).


    1. SimSonic
      07.07.2023 15:21

      Никто не запрещает попробовать EAP / триалка ;)


    1. daniilshat
      07.07.2023 15:21
      -1

      Мне почему-то кажется, что оплату с не РФ карт пока еще не отключали. Поэтому с личных карт, с карт знакомых или через сервисы-посредники можно ключ раздобыть