Библиотека джависта | Java, Spring, Maven, Hibernate
25.6K subscribers
1.44K photos
31 videos
36 files
2.31K links
Все самое полезное для Java-разработчика в одном канале.

Список наших каналов: https://t.me/proglibrary/9197
Учиться у нас: https://proglib.io/w/778f3dba

Обратная связь: @proglibrary_feedback_bot

По рекламе: @proglib_adv
Прайс: @proglib_advertising
Download Telegram
#дайджест перед выходными

🔽 Spring AI 1.0.0 M1 release — из значимых нововведений: API для создания промптов, похожий на RestClient и JdbcClient, поддержка новых моделей и векторных хранилищ, TestContainers

🔽 Module Imports in Java 23 — автор рассказывает о книге, в которой описывается предварительный просмотр функции, основанной на модулях, которая может быть использована, даже если код не находится в модулях

🔽 Делаем ZIO-Kafka безопаснее и быстрее — пофиксили дублирование сообщений при ребалансе, добавив механизм отложенного выполнения, который дожидается, пока все сообщения в очереди не будут обработаны

🔽 Hibernate ORM 6.6 — небольшая заметка, которая рассказывает об аннотация, которая указывает на то, что в случае наследования сущностей Hibernate должен создавать прокси не на суперкласс, а на конкретного наследника

🔽 Spec-first and code-first, hand in hand — теперь вам не надо разрываться между подходами spec-first или code-first, а использовать оба одновременно
Очередной #дайджест для джавистов

🔵 Modules Make javac Easy — про компиляцию и сборку Java-приложения не самым популярным способом в текущее время через javac

🔵 Model Data, Whole Data, and Nothing but the Data — в статье рассматривается принцип моделирования данных в ориентированном на данные программировании (DOP), который заключается в моделировании данных, всех данных и только данных

🔵 Scala toolig ecosystem со Scalar Conference 2024 — с каждым тулом идет в комплекте сводка о том, насколько этот инструмент жив и какие функции хотят добавить

🔵 Model Data Immutably and Transparently — принцип помогает избежать ошибок, связанных с изменением состояния объектов, используемых различными подсистемами

🔵 Мониторинг и профилирование Spring Boot за две строчки — механизм для мониторинга времени выполнения методов, используя аннотацию @ActuatorProfiling и Spring Boot Actuator для экспонирования данных профилирования через настраиваемые конечные точки
#дайджест перед выходными

⤵️ Modules Make javac Easy: Dependencies and Tests — автор рассказал про то, как добавлять зависимости в проект и запускать тесты, не покидая терминал

⤵️ Конференция KotlinConf’24 — записи с конфы в Копенгагене

⤵️ Guide to Graal VM — рассказывают про GraalVM и преимущества, которые он предоставляет, затем небольшой бенчмарк со сравнением с популярными VM для Java

⤵️ flatmappers 019 — оригинальные подходы в сборке Scala проектов и Yтка-DB

⤵️ Middle-starter-pack по spring data — особенности использования Transactional в SpringBoot приложении (разбор типовых ошибок среднестатистического разработчика)
Очередной #дайджест для джавистов

⬅️ JEP 479: Remove the Windows 32-bit x86 Port — перешел в статус Candidate. Удаление кода, связанного с Windows 32-bit, должно упростить сборку и тестирование инфраструктуры JDK

⬅️ IntelliJ IDEA 2024.2 EAP Is Open — новая вкладка Performance в окне Run; запуск тестов прямо во время индексирования; автоматическое разрешение конфликтов import-ов

⬅️ Chimney — стабильная battle-tested библиотека Scala для преобразования данных

⬅️ Lagom is approaching end of life: возможные пути миграции — Lightbend прекращают поддержку своего фреймворка + на что можно переехать, заодно проведя рефакторинг проекта

⬅️ Introduction to JDK Mission Control — узнаете, что это за инструмент, как с его помощью анализировать поведение Java-приложения + ссылка на репозиторий с кодом примера
#дайджест перед выходными

Введение в JobRunr — библиотека для распределенного планирования задач в Java-приложении

Mill — инструмент для сборки на Scala, аналог SBT, Maven и Gradle

JEP 467 направлен в Java 23 — позволяет записывать комментарии к документации JavaDoc в Markdown, а не только в виде смеси HTML и JavaDoc @-тегов

Functional Parallel Programming in the wild — классная статья о создании небольшого веб-сервиса с нуля. Отлично зайдет как подробный разбор pet-проекта всем новичкам

Новый компилятор K2 в Kotlin — процесс миграции с компилятора Kotlin старой версии на новый компилятор K2
Очередной #дайджест для джавистов

👉 Java Runtimes: Insights From the Spring Boot Point of View — о том, на что стоит обратить внимание при выборе JDK, если вы используете в разработке фреймворк Spring Boot

👉 ZIO Kafka — предоставляет streams-based интерфейс для клиента Kafka и легко интегрируется с ZIO и ZIO Streams

👉 Calling Microservices в Java — рассматривается четыре варианта: ванильная Java, Apache HttpClient, Spring-овые RestTemplate и WebClient, а также Feign

👉 Forking и Interruption в ZIO — маленькая жизненная история о том, как подломанный с точки зрения параллелизма код + обновление версии либы = обстоятельства

👉 Использование Bootify для прототипа Spring Boot с Thymeleaf — про сайт-инструмент, который позволяет в пару кликов сгенерировать простое CRUD-приложение на Spring Boot с фронтендом, БД, миграциями БД и всеми нужными зависимостями
#дайджест перед выходными

Quality Outreach Heads-up JDK 23 — начиная с JDK 23, javac требует дополнительной опции командной строки для включения обработки аннотаций

Single tenant vs multitenancy — микропосвящение в варианты подписок на облачные серверы провайдеров

Tapir Tech Update the Deep Dive — Softwaremill запускают собственный ежемесячный дайджест, посвященный новостям в мире технологий за последний месяц, а также направлениям архитектуры

Maven Central and the tragedy of the commons — Maven Central теперь будет замедлять загрузку или вовсе выдавать 429 ошибку, для особо «тяжелых» потребителей

Java on Visual Studio Code Update — обновление Java on VSCode: вынесли настройки по разным секциям; выложили новое видео, посвященное Code Coverage; появились валидации JPQL- и HQL-запросов
Очередной #дайджест для джависта

🔵 Spring Framework 6.2.0-M4 available now — некоторые изменения: Task и ScheduledTask предоставляют метаданные о выполнении; улучшена поддержка @TestBean и @MockitoBean; @ExceptionHandler стал более гибким, поддерживает согласование контента

🔵 Tapir Tutorials — четыре видео от Adam Warski с туториалами по Tapir

🔵 OpenJDK JDK 24 Early-Access Builds — стали доступны Early-Access сборки JDK 24

🔵 Logic Circuit Simulator с Cats-Actors — Cats-Actors — это переосмысление модели actor paradigm в сочетании с функциональной парадигмой

🔵 Vaadin 24.4.1 — благодаря Copilot появилась поддержка редактирования через drag-and-drop, настройки тем, модификации и генерации кода на основе искусственного интеллекта.
#дайджест перед выходными

New Leyden Early-Access Builds — сборка включает заблаговременную компиляцию методов Java, разрешение постоянных записей пула, генерацию динамических прокси-серверов и данных отражения

Virgil-Kyo — новая либа для создания Cassandra клиента на стеке Scala 3, Kyo и Magnolia

GIVEN — библиотека для автоматического обновления зависимостей в scala-проектах

New Loom Early — project Loom опубликовал новые сборки для раннего доступа с улучшенной реализацией object monitor

All Java 23 Features — Java 23 выходит только 17 сентября, но уже можно ознакомиться со списком изменений, которые будут в ней представлены
Очередной #дайджест для джависта

Как создать кастомный Java Runtimes с помощью Jlink — создается образ, который содержит только те модули, которые нужны приложению, что уменьшает размер приложения и повышает безопасность

Рекурсия в Java с примером решения задачи с LeetCode — про базис, рекурсивные методы и StackOverflowError

ScalaMatsuri 2024 — записи с июньской scala-конференция ScalaMatsuri 2024

webmagic — масштабируемый фреймворк веб-краулера для Java. Охватывает весь жизненный цикл: загрузку, управление url, извлечение контента и его сохранение

Что случилось с Java String Templates — из видео вы узнаете, почему String Templates не попадут в Java 23 и почему фича была задизайнена именно так
#дайджест перед выходными

🔃 Flyway + Spring Boot — настройка и написание миграций баз данных

🔃 Как готовить свой код к виртуальным потокам — почему надо что-то менять, с какими проблемами можно столкнуться и как их диагностировать

🔃 Фрагментация в ZGC — исследование направлено на уменьшение фрагментации в ZGC с помощью Custom Allocators

🔃 Чат WebSocket с использованием структурированного конкаренси, Ox и Tapir — вот вам идея для домашней тренировки новомодных Java 21 и Ox

🔃 Hack a Java application with the debugger — автор рассматривает использование дебаггера для взаимодействия и изменения поведения JVM-приложений в режиме реального времени
Очередной #дайджест для джависта

Правильный DevOps для Spring Boot и Java — рассматривается оптимизация сборки образа приложения, изменение конфигурации приложения без релиза и выделение накатки миграции на БД в отдельную джобу

Hibernate JAVA_TIME_USE_DIRECT_JDBC setting — настройка в Hibernate, которая позволяет маппить типы времени из java.time напрямую, без прослойки в виде объекта Timestamp

Jakarta Data и Hibernate — описаны тонкости работы с репозиториями, а еще приводится реализация основных CRUD-операций и более сложных запросов

WebSockets в Scala: интеграция Redis и PostgreSQL — о приложении для чата в памяти, использующее WebSockets, с помощью библиотеки Http4s и не только

Как я решила задачу нахождения t-критерия Стьюдента как функции от доверительного интервала и числа степеней свободы — представлен авторский метод нахождения t-критерия, разработанный в процессе решения более крупной задачи
#дайджест перед выходными

⬅️ Hibernate WITH RECURSIVE query — статья посвящена запросам WITH RECURSIVE в Hibernate, как они работают и как могут быть использованы для иерархических структур данных.

⬅️ How to Identify Dependencies in Your Codebase During Microservices Migration — туториал о миграции с монолита на микросервисы с использованием Digma для сбора информации о зависимостях внутри кодовой базы

⬅️ Генерация HTTP клиентов для Spring Boot приложения по OpenAPI спецификации — в руководстве объясняют, как генерировать код HTTP клиентов для Spring Boot, используя плагин openapi-generator для Gradle

⬅️ Scalatra — крошечный веб-фреймворк, похожий на Sinatra, для Scala

⬅️ Разработка Java-проекта с ChatGPT-4 — от идеи до реализации