Библиотека джависта | 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
🤖🤖 Стейт-машины: The Good, The Bad and The Ugly

Автор расскажет, как запускались промокоды для студентов, а заодно научились проектировать и писать стейт-машины, и поделится, в каких ситуациях такое решение точно не подойдёт.

Читать

#гайд
🤔🤔 Как создать свой сборщик проектов

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

Статья направлена на пока еще не очень опытных инженеров, которые хотят познакомиться с проектом сложнее Hello world на Spring Boot и узнать что-то новое в процессе.

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

#гайд
💁💁 Как начать писать на Java в VSCode

Подавляющее большинство пишет Java код, используя JetBrains IntelliJ IDEA Ultimate. Да, это отличная IDE. Для нее есть большое количество расширений, среда очень тесно интегрируется с Spring Framework и знает его особенности.

В какой‑то мере все Java‑разработчики стали заложниками IDEA. Она так привычна, что нет желания пробовать другое. Ведь всё такое удобное и знакомое за столько лет использования.

Но если у вас есть трудности с доступом к Ultimate версии, а Community вариант не достаточно функционален — самое время попробовать современную альтернативу — Visual Studio Code.

В статье автор делится опытом подготовки среды разработки и изучения вопроса: «А можно ли перейти на VSCode?».

Продолжение здесь

#гайд
🧑‍🎓🧑‍🎓 Hazelcast: эксперименты с настройкой и долговременным хранением больших объектов in-memory

Статья будет полезна для тех, кто поддерживает приложения на Java, так как большая ее часть посвящена анализу работы G1 GC, знакомству с соответствующими инструментами и особенностями тюнинга GC, в частности для очень больших heap`ов. А также тем, кто пытается разобраться, на что способен Hazelcast, и для чего его можно применить.

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

#гайд
😎😎 Как распознать текст, написанный искусственным интеллектом: основные признаки

В последние годы искусственный интеллект (ИИ) сделал значительные шаги вперед, особенно в области создания текстов. Сегодня ИИ способен писать статьи, сообщения и даже художественные произведения, которые на первый взгляд трудно отличить от работ человека. Однако существуют определенные признаки, методы и инструменты, которые могут помочь распознать текст, написанный ИИ. В этой статье рассматриваются основные признаки ИИ-текста, методы его распознавания и доступные инструменты для этой цели.

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

#гайд
🧑‍🎓🧑‍🎓 Amplicode: учим IDE говорить на языке фреймворка

Amplicode — это коллекция инструментов, работающих на основе IntelliJ IDEA Community, Ultimate и VS Code. Amplicode учит вашу IDE говорить и думать на языке библиотек и фреймворков — Spring Boot, JPA, Docker, Kafka, Liquibase, MapStruct, StoryBook, ReactAdmin. Все эти инструменты объединены общими принципами, что гарантирует быстрое погружение и удобную работу, несмотря на обилие функций. В результате вы пишете «обслуживающий» код быстрее, эффективнее и качественнее. Как это работает, рассказывают в статье

#гайд
💁💁 Создание дистрибутивов для разных операционных систем в Java 21 и 22

Статья рассказывает о построении дистрибутивов приложений для операционных систем Windows, macOS и Linux в случае использования Java 21 и 22.

Инструменты, позволяющие выполнять компиляцию, сборку, создание цифровой подписи и дистрибутивов Java-приложений, впервые появились в JDK 7 Update 6. Первоначально они предназначались в первую очередь для JavaFX-приложений и были доступны в виде утилиты командной строки javafxpackager и в виде задач (tasks) для Ant. В официальной документации задачи для Ant имеют наименование JavaFX Ant Tasks

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

#гайд
💥💥 Блеск и нищета нового Scrolling API в Spring Data

В Spring Data 3.1 появилось новое API для итерирования по большому объему данных: Scrolling API. В статье посмотрите на практические применения с примерами кода и преимущества по сравнению со всем известным Pageable. А также будет разбор, чего Scrolling API пока не хватает, и можно ли его вообще брать в свои проекты. Если хотите выяснить, как с новым API в теории ускорить пагинацию больших данных — читайте далее

#гайд
🚶🚶 Lazy Loading в Java

Вы когда-нибудь замечали, как котики, лениво потягиваясь и сворачиваясь клубком, экономят энергию и действуют только тогда, когда это действительно необходимо?

Как и наши хвостатые друзья, существует такой паттерн как Lazy Loading, который позволяет экономить ресурсы, инициализируя объекты только тогда, когда они действительно нужны.

Читать далее

#гайд
🤔🤔 Как сделать пароль менеджер

Для хранения паролей будет использоваться файл формата xml, который будет шифроваться методом AES-256 и храниться в облаке. В качестве облака был выбран сервис «Яндекс диск».

Основной процесс — это загрузка файла с паролями из облака, затем загрузка файла в оперативную память, его расшифровка и вывод паролей в интерфейс пользователю. По завершению работы с паролями, в оперативной памяти формируется XML-структура с паролями, которая шифруется и сохраняется в файл. Затем этот файл загружается в облако.

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

#гайд
💥💥 Как шаблонный метод может сломать ваш Java код

ООП — это замечательно. За несоблюдение этой парадигмы принято ругать, а знание паттернов зачастую является обязательным. Но даже правильный подход не страхует полностью от ошибок. О том, как сломать программу при помощи обычного шаблонного метода, узнаете в статье.

Читать

#гайд
🚧🚧 От логов к аудиту

В статье коротко рассмотрены различия между обычными логами и аудит-логами. Основное внимание уделено реализации аудит-логирования в Java, включая использование аннотаций и АОП, приведен пример настройки роутинга логов через rsyslog.

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

#гайд
💪💪 Пишем кастомный Plugin SonarQube

Автор расскажет, как создать собственный плагин для проверки кода на соответствие своим правилам разработки. В статье он поделится опытом и покажет, как можно создать такой плагин своими руками.

Подробности тут

#гайд
🚧🚧 Тестирование асинхронного контракта Spring Boot приложения (Kafka Consumer+Producer)

Как написать интеграционный\сервисный\авто тест для Spring Boot приложения, которое взаимодействует с внешним миром исключительно с помощью Kafka. Сначала автор разбирает проблему, а затем поэтапно развивает тесты, чтобы привести их к состоянию defenition-of-done.

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

#гайд
🤷🤷 Умножение Монтгомери

Деление целых чисел — это долго и сложно. Вычислять остаток от деления — нисколько не проще. При этом в спортивном программировании, да и в прикладной математике типа криптографии, задача умножения чисел по модулю встречается повсеместно.

Один из вариантов эффективного решения — умножать по модулю, вообще при этом не используя операции деления, с помощью алгоритма Монтгомери.

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

#гайд
💪💪 7 основных способов оптимизировать кеширование в Spring Boot

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

В статье вы узнаете про 7 основных техник оптимизации кеширования в Spring Boot, которые могут помочь значительно улучшить производительность. От выбора идеальных кандидатов для кеширования до реализации асинхронного кеша и мониторинга метрик кеша.

Продолжение здесь

#гайд
🧑‍🎓🧑‍🎓 Expression Problem и Объектные алгебры

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

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

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

#гайд
🤔🤔 Как разработать онлайновый компилятор кода при помощи Java и Docker

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

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

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

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

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

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

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

#гайд
💁💁 Самый простой способ проверить работу веб-приложения под нагрузкой на примере JMeter и Grafana

Рассказ о нагрузочном тестировании с помощью JMeter, Grafana и Prometheus, а также, как тестировать три сценария: с двумя, 10 и 100 запросами в секунду.


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

#гайд