Библиотека джависта | 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
加入频道
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.

Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.

Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Formatter

Это класс, который используется для форматирования вывода данных. Formatter поддерживает форматирование следующих типов данных:
👉 Примитивные типы: int, long, float, double, char, boolean
👉 Объекты: String, Date, Calendar, BigDecimal.
dOOv

dOOv (Domain Object Oriented Validation) — это фреймворк для Java, который позволяет легко и удобно выполнять валидацию и отображение объектов предметной области. Он использует аннотации, генерацию кода и DSL с безопасной типизацией, что делает процесс валидации и отображения быстрым и простым.
🎢🎢 Настройка конвейерной сборки Java-проектов в GitLab

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

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

Предполагается, что у вас уже установлены Docker и ssh-сервер и вы немного умеете со всем этим обращаться.

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

#туториал
Что будет, если в static блоке кода возникнет исключение?

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

Поэтому нужно либо обрабатывать исключения в static блоке, либо избегать кода, который может привести к исключениям.
Лучше выносить в static блок только простую инициализацию, а сложную логику помещать в конструктор или методы класса.
🗺️💼 Из Москвы в Дублин: опыт российского разработчика из Amazon

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

Читать статью
#дайджест перед выходными

🟡 Project Leyden: Capturing Lightning in a Bottle — о проекте Leyden, ускоряющем время прогрева JVM-программ

🟡 Дорожная карта Ktor в 2024 — JetBrains опубликовали roadmap развития фреймворка Ktor в 2024 году

🟡 Java 22 Is Here, And It’s Ready To Rock — обзор новых фич Java 22. Материал хорошо структурирован, все фичи сгруппированы по принадлежности к проекту JDK или конкретному аспекту Java

🟡 Вышла версия Jmix 2.2 — новая версия платформы для быстрой разработки B2B-веб-приложений на Java

🟡 Как в Scala переложить JSON: паттерн «codec» — как перекладывать JSON и делать это со вкусом. Функторы, contrmap и автодеривация идут в комплекте
⛓️ Программирование и блокчейн: что нужно знать новичку?

Если ты не смог купить Биткоин в 2009, но интересна эта область, не стоит переживать. Ты всё ещё сможешь попробовать себя в качестве блокчейн-разработчика и создать свою крипту😉

Сейчас блокчейн становится всё более популярен и уже применяется не только для реализации криптовалюты (а также например в играх)

‼️ Чтобы не потеряться в обилии информации, предлагаю к прочтению небольшую статью об разработке блокчейн-приложений, в ней ты узнаешь об основных аспектах применяемых для использования данной технологии
🤔🤔 Разбираемся с динамической памятью (кучей) в приложениях Java

В самом ли деле каждый Java-разработчик понимает, как в Java работает память? Одна из обязанностей любого Java-разработчика — гарантировать, что в результате тонкой настройки приложения на Java из него получится выжать такую производительность, какую только возможно. Требуется время, чтобы научиться управлять памятью в Java и понять этот процесс, это касается всех, кто имеет дело с Java. В этой статье автор попробует объяснить, как овладеть этими умениями.

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

#почитать
🙀 Опросик

Хотим узнать, на какие на какие ссылки/статьй вы переходили в последнее время из Telegram? Речь идёт не только о наших статьях и ссылках, а о любых)

👇 Пишите ответы в комментариях в стиле «был пост со статьёй такой-то, я её открыл и почитал»
😎😎 Джава 21 — VirtualThreads

Одна из частей обзора новых фичей джавы с 8 по 21. Пожалуй, самая значимая — виртуальные потоки

Смотреть

#видео
Очередной #дайджест по java

Иерархия в PostgreSQL. Doobie vs Skunk — сравнение Doobie и Skunk в задаче по работе с иерархиями сущностей

JEP 447: Statements before super(...) — позволяет добавлять инструкции перед вызовом super в конструкторах

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

Инциденты с авторизацией: уменьшаем радиус поражения — разбор и разговоры о постмортемах команды, занимающейся сервисом аутентификации

Усовершенствование безопасности JDK 22 — содержит улучшения безопасности, сгруппированные по категориям: крипто, TLS и так далее
Что может произойти если два потока будут выполнять один и тот же код в программе?

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

Чтобы избежать таких проблем, нужно предотвратить одновременный доступ к общим данным с помощью синхронизации, например используя мониторы или блокировки.
Также полезны инструменты высокого уровня для синхронизации, такие как семафоры, очереди производителя-потребителя и другие коллекции из java.util.concurrent.

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

При написании кода программисту следует руководствоваться определенными правилами. Часто эти правила написаны если не кровью, то слезами разработчиков, которые потом стараются исправить ваш код. Если это вообще возможно :)

Принципы S.O.L.I.D. — это 5 принципов, которые желательно принять во внимание программисту. В этой серии постов мы рассмотрим их один за другим. Принципы справедливы почти для любого современного ЯП.

👉 Single Responsibility Principle — принцип единственной ответственности
👉 Open Closed Principle — принцип открытости-закрытости
👉 Liskov Substitution Principle — принцип подстановки Барбары Лисков
👉 Interface Segregation Principle — принцип разделения интерфейса
👉 Dependency Inversion Principle — принцип инверсии зависимостей

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

#туториал