Java Portal | Программирование
11.3K subscribers
797 photos
59 videos
19 files
590 links
Присоединяйтесь к нашему каналу и погрузитесь в мир для Java-разработчика

Связь: @devmangx

РКН: https://clck.ru/3H4WUg
加入频道
SpringBoot_Annotations_RU_Linked.pdf
31.5 KB
Полезный PDF с аннотациями Spring и краткими пояснениями на русском

Удобно для повторения и изучения

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
Оказывается, чтобы расти в доходе в ML и IT, недостаточно закончить топовый матфак, работать 24/7 и знать все фреймворки мира

Да, это круто, но это – далеко не главное. На самом деле чаще всего выигрывают люди с прокаченным софт скиллами – те, кто уверенно ведет диалог и грамотно доносит ценность своих решений.

Вот вам пример: Senior ML-инженер Олег Андриянов рассказывает в своем канале, как его доход вырос за 4 года в 12,5 раз. В блоге куча крутых статей, вот наш топ-3:

Как гарантированно повысить свою зарплату?

– 
Какие 2 ключевых софт-скилла делают тебя на голову выше конкурентов на рынке труда?

– 
Как Олегу удалось вырасти в доходах в 12,5 раз за 4 года?

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

Подписывайся, если хочешь стать незаменимым в любой IT-команде: @andriyanov_leads

Реклама. СЗ Волков Д.Д. ИНН: 370701873479, erid: 2Vtzqwy7BPx
Шпаргалка по сочетаниям клавиш IntelliJ IDEA для Java-разработчиков

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
На фото показана проблема N+1 в JPA и её решение.

🟣findAll() — вызывает 1 запрос к авторам + по 1 запросу на книги каждого автора → N+1 запросов

JOIN FETCH в @Query — решает проблему, загружая авторов и их книги одним SQL-запросом

Показана разница в коде и как избежать лишних запросов при загрузке связанных сущностей (Author → Book)

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
Осталось всего 2 дня — углубитесь в функциональное программирование на Scala в Otus 📢

24 апреля в 20:00 пройдёт открытый вебинар с Алексеем Воронцом — руководителем разработки в Naumen, 14 лет опыта, из них 9 лет на Scala. Он расскажет:

— почему Scala — функциональный язык
— как работать с ключевыми библиотеками
— как повысить выразительность кода

Если вы уже знакомы со Scala или желаете перейти на него и хотите развивать функциональный подход в своих проектах — этот вебинар для вас.

Каждый участник:
— сможет задать вопросы эксперту
— получит скидку на полный курс по Scala-разработке

👉 Не упустите возможность перейти на новый уровень — регистрируйтесь, осталось 2 дня до начала

https://otus.pw/J8FF/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
This media is not supported in your browser
VIEW IN TELEGRAM
8 алгоритмов балансировки нагрузки, которые стоит знать:

🍩Round Robin – запросы распределяются равномерно между серверами по очереди.

🍩Least Connections – запрос направляется на сервер с наименьшим числом активных соединений.

🍩Weighted Round Robin – серверам присваиваются веса, и запросы распределяются с учетом этих весов.

🍩Weighted Least Connections – учитывается как число соединений, так и вес сервера.

🍩IP Hash - запрос направляется на сервер в зависимости от хэша IP-адреса клиента.

🍩Least Response Time – запрос идет на сервер с наименьшим временем ответа.

🍩Random – сервер выбирается случайным образом.

🍩Least Bandwidth – запрос идет на сервер с наименьшей текущей загрузкой сети.

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
image_2025-04-22_06-02-27.png
578.5 KB
Простое объяснение паттерна Фабрика

Вы создаёте уведомления. Сначала у вас только EmailNotification:

new EmailNotification(to, subject, body);


Потом появляются другие типы:

SMSNotification
PushNotification
SlackNotification
WhatsAppNotification

Появляется дублирующийся код:

if (type.equals("email")) new EmailNotification(...)
else if (type.equals("sms")) new SMSNotification(...)
...


Проблемы:

—> Повтор кода.

—> Нарушение принципа Open/Closed.

—> Жёсткая связка с классами.

—> Сложно тестировать и расширять.

Как фабрика вас спасает

Вместо создания объектов напрямую или написания switch/if, вы создаёте NotificationFactory

Фабрика:

—> Скрывает логику создания

—> Решает, какой подкласс вернуть

—> Делает основной код чистым и слабо связанным

Теперь вам всё равно, как он создаётся. Вы просто запрашиваете и получаете готовый объект

Пример кода на фото 😊

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Программирование — В С Ё

В 2025 году на кодинге уже не вывезешь, перспектива года - Информационная Безопасность.

Ловите полезные каналы, которые помогут ворваться в новое направление.

👍 ZeroDay — Уроки, эксплуатация уязвимостей с нуля
👍 Белый Хакер — Свежие новости из мира ИБ
😎 Арсенал Безопасника — Все необходимые инструменты
😎 Бункер Хакера — Статьи, книги, шпаргалки и хакинг
👨‍💻 Серверная Админа — Настройка и уроки по компьютерным сетям

📂Вступай и изучай новое направление!
Please open Telegram to view this post
VIEW IN TELEGRAM
Коротко о фабричном методе HashMap::newHashMap

Начиная с JDK 19, класс HashMap предоставляет новый фабричный метод:

var map = HashMap.<Key, String>newHashMap(10);


В этом примере возвращаемая карта будет достаточно большой, чтобы вместить 10 отображений. У неё значение коэффициента загрузки по умолчанию — 0.75. Поэтому фактическая вместимость (capacity) будет больше, чем переданный аргумент 10. Вместимость вычисляется как:

    10        <-- количество отображений
capacity = -----
0.75 <-- коэффициент загрузки


Это отличается от конструктора:

var map = new HashMap<Key, String>(10);


В этом случае аргумент 10 — это начальная вместимость (фактическая вместимость будет степенью двойки).

Также важно: фабричный метод внутри вызывает конструктор 🔧

Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM