#дайджест перед выходными
🔽 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, а использовать оба одновременно
🔽 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 — про компиляцию и сборку 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 приложении (разбор типовых ошибок среднестатистического разработчика)
⤵️ 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-приложения + ссылка на репозиторий с кодом примера
⬅️ 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
❎ Введение в 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 с фронтендом, БД, миграциями БД и всеми нужными зависимостями
👉 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-запросов
❎ 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, настройки тем, модификации и генерации кода на основе искусственного интеллекта.
🔵 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 сентября, но уже можно ознакомиться со списком изменений, которые будут в ней представлены
➕ 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 и почему фича была задизайнена именно так
⏬ Как создать кастомный 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-приложений в режиме реального времени
🔃 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-критерия, разработанный в процессе решения более крупной задачи
➕ Правильный 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 — от идеи до реализации
⬅️ 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 — от идеи до реализации