Библиотека джависта | Java, Spring, Maven, Hibernate
24.9K subscribers
1.86K photos
38 videos
42 files
2.64K links
Все самое полезное для Java-разработчика в одном канале.

Список наших каналов: https://yangx.top/proglibrary/9197

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

По рекламе: @proglib_adv

РКН: https://gosuslugi.ru/snet/67a5bbda1b17b35b6c1a55c4
加入频道
🧑‍🎓🧑‍🎓 Expression Problem и Объектные алгебры

Expression Problem (EP) — это классическая задача в программировании на совмещение несовместимого.

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

Продолжение тут

#гайд
Apache SeaTunnel

Высокопроизводительный инструмент распределенной интеграции данных нового поколения, способный ежедневно синхронизировать огромные объемы данных.
SeaTunnel способен стабильно и эффективно синхронизировать данные в режиме реального времени и уже используется в продакшене почти 100 компаниями.
Написан полностью на Java

#софт
Очередной #дайджест для джависта

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

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

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

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

Что случилось с Java String Templates — из видео вы узнаете, почему String Templates не попадут в Java 23 и почему фича была задизайнена именно так
Для чего в Java используются статические блоки инициализации?

Статические блоки инициализация используются для выполнения кода, который должен выполняться один раз при инициализации класса загрузчиком классов, в момент, предшествующий созданию объектов этого класса при помощи конструктора. Такой блок (в отличие от нестатических, принадлежащих конкретном объекту класса) принадлежит только самому классу (объекту метакласса Class).
Fixture Monkey — инструмент на Java для автоматической генерации объектов для тестов

Позволяет упростить написание тестов, облегчая генерацию необходимых тестовых объектов.
При этом можно повторно использовать одни и те же конфигурации объектов в нескольких тестах.
🧔🧔 Как публиковать библиотеку в Maven Central Portal в 2024 году

Начиная с 12 марта 2024 года регистрация на OSSRH портале теперь недоступна. Большинство существующих туториалов в интернете описывают как раз опыт публикации через OSSRH на Maven Central из-за чего после марта 2024 года эти инструкции стали не актуальны для публикации проектов новых авторов.

В статье не пошаговая инструкция, а руководство к действию. Вдумчиво выполняйте этапы публикации и не забывайте про секцию Troubleshoting в конце.

Процесс публикации можно разбить на следующие шаги:

👉 Регистрация на Central Portal и верификация namespace
👉 Создания GPG ключа для подписи артефактов
👉 Локальная публикация проекта для теста
👉 Подключение JReleaser к проекту и публикация локально
👉 Настройка Github Actions для автоматической публикации

Продолжение тут

#туториал
Чем отличается ReentrantLock от обычного Lock?

Lock — это интерфейс, ReentrantLock — его реализация. «Reentrant» говорит о том, что один и тот же поток может перезахватывать уже захваченный лок. Интерфейс не требует этого свойства. Обычный блок synchronized тоже является reentrant — вложенная синхронизация на том же мониторе отработает без проблем.

Примеры не-reentrant локов из стандартной библиотеки — представления класса StampedLock, возвращаемые его методами asReadLock() и asWriteLock().
💥💥 Flyway + Spring Boot — настройка и написании миграций баз данных

Процедура проходит с помощью инструментов максимально эффективной и комфортной разработки сервисов и web приложений на Spring Boot в IntelliJ IDEA и административного пользовательского интерфейса на React Admin в VS Code.

00:00 — Зачем нужно версионировать БД?
00:51 — Задачи на сегодня
01:30 — Обзор Spring Boot приложения (via Amplicode Explorer)
03:17 — Подключение и настройка Flyway (генерация скриптов инициализации БД)
05:49 — Модификация JPA модели
06:52 — Генерация Flyway скриптов миграции для синхронизации JPA модели и схемы БД
09:04 — Запуск Spring Boot приложения

#видео
💵⚡️ДАРИМ 40 000₽ ЗА ВИДЕО

Конкурс года в «Библиотеке программиста»: смонтируйте короткий вертикальный ролик формата Shorts/Reels* на тему программирования и разработки — лучший автор получит 40 тысяч рублей 🤑

Подробные условия:
➡️смонтируйте короткий смешной вертикальный ролик (можно и нужно использовать мемы)
➡️отправьте нам в бота @ProglibContest_bot
➡️лучшие ролики (по мнению редакции) мы будем выкладывать в канал и в наш инстаграм*
➡️тот, чей ролик соберет больше всего просмотров в инстаграм*, получит приз — 40 тысяч рублей

Какие ролики мы не принимаем:
😟не вашего авторства (проверим!)
😟длинные, невертикальные, несмешные

Таймлайн:
2 августа — заканчиваем принимать видео
⬇️
3 августа — начинаем загружать лучшие видео в инстаграм
⬇️
9 августа — подводим итоги

*Организация Meta признана экстремистской в РФ
Please open Telegram to view this post
VIEW IN TELEGRAM
#дайджест перед выходными

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

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

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

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

🔃 Hack a Java application with the debugger — автор рассматривает использование дебаггера для взаимодействия и изменения поведения JVM-приложений в режиме реального времени
✍️ «Библиотека программиста» находится в поиске автора на написание книжных рецензий

Кто нужен?
● Энтузиасты (джуны и выше), которые которые разбираются в IT
● Любители книг, которые хотели бы получать деньги за чтение и написание рецензий
● Работаем с самозанятыми (компенсируем налог), ИП

Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴

✉️ Станьте частью нашей команды — присылайте резюме и примеры работ [email protected]
🤔🤔 Как разработать онлайновый компилятор кода при помощи Java и Docker

Вы когда-нибудь задумывались, как устроены такие платформы как Codeforces и LeetCode? Как именно они компилируют и выполняют код, поступающий от множества пользователей и проверяют его в тестовых кейсах? Как определяют эффективность алгоритмов?
В этой статье будет подробный разбор того, как выстроить высокоэффективную платформу для решения задач.

Исходный код к этой статье выложен на Github

Продолжение тут

#гайд
📐📏 Работа с геометрией в JPA и Spring Boot 3

Автору понадобилось сделать добавление адресов клиентов, и проверку входит ли этот адрес в зону доставки.

В статье будет разобрано, что такое геометрия, как с ней можно работать в sql и no-sql базах данных

Продолжение тут

#гайд
Vert.x — это набор инструментов для создания реактивных приложений на JVM

Ядро Vert.x содержит достаточно низкоуровневую функциональность, включая поддержку HTTP, TCP, доступ к файловой системе и различные другие возможности. Можно использовать Vert.x непосредственно в своих приложениях.
🍇 18 основных паттернов микросервисной архитектуры

Рассказываем о паттернах, которые представляют собой набор проверенных решений типичных проблем и задач в микросервисной архитектуре. Их правильное применение может значительно улучшить масштабируемость и надежность системы.

Читать статью