- PVSM.RU - https://www.pvsm.ru -
Всем привет!
Мы — Java-разработчики Тинькофф: Константин [1], Андрей [2] и Арсений. [3] Собираем новости, статьи, туториалы и другие интересные материалы из мира Java-разработки. Решили делиться этим не только с коллегами, но и со всем сообществом.
Джо Аберкромби писал: «Чем больше ты узнаешь — тем больше понимаешь, как мало знаешь. Однако усилие само по себе стоит того». Надеемся, наш дайджест поможет вам на этом пути. Stay tuned!
Начался релизный цикл Java 21 [4]. Список JEP-ов, которые войдут в финальную версию, утвержден и больше не будет меняться. По расписанию релиза в общий доступ Java 21 выйдет 19 сентября. Напомним, что это LTS- релиз, а значит, пора планировать миграцию
В Intellij IDEA появится AI-ассистент. Он уже доступен в IntelliJ IDEA 2023.2 EAP 6. Заявлено, что AI может генерировать документацию, а также помогать с неймингом и сообщениями коммитов. Кроме того, прямо в среду разработки будет интегрирован чат для общения с ним. Полный перечень нововведений — в блоге IntelliJ IDEA 2023.2 EAP 6. [5]
Опубликованы доклады со Spring I/O 2023 в Барселоне [6]. Рекомендуем к просмотру:
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 [7] — подробно о поддержке Testcontainers в Spring Boot 3.1.0. Теперь конфигурировать Postgres или Kafka контейнеры получается буквально по щелчку, просто добавив соответствующие контейнеры в контекст и навесив аннотацию @ServiceConnection.
Никаких дополнительных пропертей прописывать не нужно, все работает из коробки. А еще ту же конфигурацию контейнеров можно использовать, чтобы поднять сервис локально. Spring сконфигурирует и поднимет все контейнеры при запуске приложения. И как будто этого мало — можно пометить бины контейнеров аннотацией @RestartScope из DevTools и тогда между запусками приложения контейнеры даже не будут переподниматься. Это действительно крутые фичи, которые заставят по-другому взглянуть на разработку и тестирование java-приложений
Подробнее обо всем — в новом выпуске Spring Tips. [8]
Использование оконных функций с Hibernate 5 и 6. Рассматриваются мощные возможности языка SQL — оконные функции и их работа в Hibernate. Оконные функции позволяют выполнять вычисления над определенными подмножествами строк таблицы, связанными с текущей строкой. Они подобны агрегатным функциям, но не сокращают строки до одной на выходе, сохраняя уникальность каждой строки.
Лучшие практики скриптования в Jira Server/Data Center — как написать автоматизацию на Groovy с использованием API Jira Java. Автор статьи — Сергей Трошин, администратор Atlassian в компании VKCO. Он заметил, что в интернете недостаточно сосредоточенной информации на эту тему, хотя она важна для компаний, использующих сложные средства автоматизации бизнес-процессов. В большинстве случаев таким средством является плагин Scriptrunner от Adaptavist.
Как в три раза снизить затраты на отказоустойчивую инфраструктуру, переехав с Hazelcast на Redis, — хорошая статья от команды Alfa, где автор делится опытом выбора распределенного кэша в качестве замены Hazelcast. Читается легко и интересно. Рекомендуется к прочтению тем, кто сейчас стоит перед аналогичным выбором.
Class Loader Hierarchies [12] — небольшая, но интересная статья поможет вспомнить, как работают загрузчики классов в Java. Рассматривается иерархия загрузчиков классов в Java, роль каждого класса загрузчика и порядок запроса загрузки, а еще обсуждаются дополнительные функции загрузчика.
A New GraalVM Release and New Free License! | by Alina Yurenko [13]
GraalVM EE is Dead, Long Live Oracle GraalVM — JVM Weekly vol. 47
[14]Две интересные и полезные статьи о том, как обстоят дела у Graal VM. Если верить написанному, то изменилась лицензия и стала доступнее. Теперь не будет как таковой Enterprise-версии. К тому же в статьях много внимания уделяется новым фичам. Полезное чтиво про будущее, которое уже наступило.
Securing Spring Boot Applications With SSL [15] — рассказ о нововведении Spring Boot 3.1 — SSL Bundles. Их основная задача — создать более верхнеуровневую абстракцию над SSL и тем самым упростить настройку SSL в Spring Boot приложениях.
Migrating an Application to Native Image With Spring Boot 3 [16] — наш коллега Андрей Сулыз поделился с [17]воим опытом в миграции приложений на Spring Boot 3 и Native Image. Цифры, примеры, проблемы — все как мы любим!
Профилирование, ассемблер и все-все-все — хорошая статья про неочевидные особенности работы ключевого слова volatile. Там много ссылок и отсылок. Крайне рекомендуем!
JFR View Command [19] — в JDK21 появилась новая команда JFR.view, позволяющая получить агрегированные JFR-данные работающего приложения прямо в консоли, без выгрузки дампа и открытия его в Mission Control. Может быть полезно.
How to validate the DDL schema with Spring and Hibernate [20]— о том, как использовать инструменты Hibernate для управления и проверки схемы базы данных при работе с объектами JPA. Особое внимание уделяется Hibernate SchemaManagementTool, который позволяет генерировать сценарии DDL и проверять совместимости сопоставлений JPA с базовой схемой базы данных. Еще есть рекомендация использовать инструмент автоматического управления схемой, например Flyway, для полноценного управления схемой базы данных.
Podlodka #323 — Языки конфигураций. Выпуск про языки, основная задача которых — представлять данные в определенном формате: yml, json, xml и так далее. В первой половине приводится небольшой исторический экскурс, вторая же сконцентрирована на конкретных языках. Описаны их преимущества, недостатки и кейсы использования.
Javaswag #49 — Владимир Швец — от Джуна до Сеньора, как выжить в IT
Интервью с автором книги «От джуна до сеньора. Как стать востребованным разработчиком». [21] Материал по большей части софтовый. Владимир рассказывает о своем опыте в ИТ, почему решился написать книгу, что хотел в ней донести, как проходил сам процесс от собственно рукописи до издания. Слушать легко и интересно.
Cognitive Load Developer's Handbook [22]. Keep It Simple Stupid</p>" data-abbr="Принцип KISS ">Принцип KISS — один из основополагающих в современном программировании. Он говорит о том, что писать код нужно максимально просто. Многие разработчики слышали, что не стоит создавать слишком длинные цепочки наследования, бого-классы с большим количеством ответственности, условные выражения с большой вложенностью и подобное.
Во время мыслительного процесса человек оперирует фактами — это когнитивная нагрузка. Например, как чтение кода. В репозитории собирают примеры, как держать под контролем когнитивную нагрузку, порождаемую кодом, ведь после определенного порога
Также из своей криокамеры вылез Олег Чирухин с новым выпуском своего Java-дайджеста за начало июля. [24] Рекомендуем
Спасибо, что читаете! Ждем обратную связь в комментариях
P.S. Хотим поблагодарить наших коллег, которые помогали собирать материалы. Вы потрясающие!
Автор: Максимов Константин
Источник [25]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/java/385840
Ссылки в тексте:
[1] Константин: https://habr.com/ru/users/maximovkl/
[2] Андрей: https://habr.com/ru/users/evertimes/
[3] Арсений.: https://habr.com/ru/users/MuonKvark/
[4] Начался релизный цикл Java 21: https://openjdk.org/projects/jdk/21/
[5] в блоге IntelliJ IDEA 2023.2 EAP 6. : https://blog.jetbrains.com/idea/2023/06/intellij-idea-2023-2-eap-6/
[6] Опубликованы доклады со Spring I/O 2023 в Барселоне: https://www.youtube.com/@SpringIOConference/videos
[7] Spring Boot Application Testing and Development with Testcontainers: https://www.atomicjar.com/2023/05/spring-boot-3-1-0-testcontainers-for-testing-and-local-development/
[8] в новом выпуске Spring Tips.: https://spring.io/blog/2023/05/18/spring-tips-go-fast-with-spring-boot-3-1
[9] habr.com: https://habr.com/ru/companies/otus/articles/743910/
[10] habr.com: https://habr.com/ru/companies/vk/articles/743376/
[11] habr.com: https://habr.com/ru/companies/alfa/articles/737630/
[12] Class Loader Hierarchies: https://mostlynerdless.de/blog/2023/06/02/class-loader-hierarchies/
[13] A New GraalVM Release and New Free License! | by Alina Yurenko: https://medium.com/graalvm/a-new-graalvm-release-and-new-free-license-4aab483692f5
[14] GraalVM EE is Dead, Long Live Oracle GraalVM — JVM Weekly vol. 47
: https://vived.substack.com/p/graalvm-ee-is-dead-long-live-oracle
[15] Securing Spring Boot Applications With SSL: https://spring.io/blog/2023/06/07/securing-spring-boot-applications-with-ssl
[16] Migrating an Application to Native Image With Spring Boot 3: https://betterprogramming.pub/experience-in-migrating-an-application-to-native-image-with-spring-boot-3-422d15efa31
[17] аш коллега Андрей Сулыз поделился с: https://medium.com/@sulyzn2012/experience-in-migrating-an-application-to-native-image-with-spring-boot-3-422d15efa31
[18] habr.com: https://habr.com/ru/articles/542156/
[19] JFR View Command: https://egahlin.github.io/2023/05/30/views.html
[20] How to validate the DDL schema with Spring and Hibernate : https://vladmihalcea.com/validate-ddl-schema-spring-hibernate/
[21] «От джуна до сеньора. Как стать востребованным разработчиком».: https://www.litres.ru/book/vladimir-shvec-32351/ot-dzhuna-do-senora-kak-stat-vostrebovannym-razrabotc-68616021/chitat-onlayn/
[22] Cognitive Load Developer's Handbook: https://github.com/zakirullin/cognitive-load
[23] мозг: http://www.braintools.ru
[24] с новым выпуском своего Java-дайджеста за начало июля.: https://habr.com/ru/companies/bar/articles/
[25] Источник: https://habr.com/ru/companies/tinkoff/articles/746310/?utm_source=habrahabr&utm_medium=rss&utm_campaign=746310
Нажмите здесь для печати.