Библиотека джависта | 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»!

Кто нам нужен?
🔹 Вы недавно (в последние 6 месяцев) проходили курсы по техническим специальностям или математике.
🔹 Вы разработчик, стремящийся освоить Data Science или Machine Learning.

Что вас ждет?
Участие в интервью по Zoom, которое займет не больше 45 минут.
1500 рублей на карту за ваше время.💵
Уникальный шанс пообщаться с нашим CEO.

Как откликнуться?
📌 Напишите в личные сообщения @artem_ceo
Please open Telegram to view this post
VIEW IN TELEGRAM
👔💼 Как ответить на собеседовании, почему вы уволились с прошлого места работы: 9 вариантов ответа

А также примеры того, как говорить точно не надо 🌚

👉Читать
JMH: интересный инструмент для замеров скорости кода

JMH — это фреймворк от команды разработчиков JVM (Oracle), который помогает создавать и запускать микробенчмарки для измерения производительности Java-кода. Если вы хотите точно понять, насколько быстро работает ваш код (например, сравнить эффективность разных алгоритмов или подходов), JMH — ваш незаменимый помощник.

⚙️ Основные возможности JMH:

— Точные измерения:
JMH учитывает влияние JIT-компиляции, прогрева JVM и других факторов, которые могут искажать результаты.

— Простота использования:
Написание бенчмарков интуитивно, и вы сразу видите, что влияет на производительность.

— Гибкость настройки:
Вы можете задавать параметры для тестов, такие как число итераций, потоков, warm-up период и другие.

💡 Как начать?

— Добавьте зависимость JMH в ваш проект:
<dependency>
<groupId>org.openjdk.jmh</groupId>
<artifactId>jmh-core</artifactId>
<version>1.38</version>
</dependency>
<dependency>
<groupId>org.openjdk.jmh</groupId>
<artifactId>jmh-generator-annprocess</artifactId>
<version>1.38</version>
</dependency>

или
implementation 'org.openjdk.jmh:jmh-core:1.38'
annotationProcessor 'org.openjdk.jmh:jmh-generator-annprocess:1.38'


— Создайте бенчмарк-класс:
@BenchmarkMode(Mode.AverageTime)
@OutputTimeUnit(TimeUnit.MILLISECONDS)
@State(Scope.Thread)
public class MyBenchmark {

@Benchmark
public int testMethod() {
return calculate(1000);
}

private int calculate(int n) {
int sum = 0;
for (int i = 0; i < n; i++) {
sum += i;
}
return sum;
}
}


— Запустите тесты:
Используйте mvn package или gradle build, чтобы собрать проект, и запустите JMH-тесты.

💬 Использовали JMH раньше? Делитесь своим опытом и результатами.
Please open Telegram to view this post
VIEW IN TELEGRAM
🦑 SQL-кальмар: Кто окажется мастером запросов?

Что внутри:
9 уровней, где сложность растёт по экспоненте.
• Полезное: отличная возможность поднять скилл SQL.
• Для новичков: на платформе есть 33 урока, чтобы подтянуть теорию перед игрой.

Готовы к челленджу?
🔗 SQL Squid Game

#тренажер
Please open Telegram to view this post
VIEW IN TELEGRAM
Вакансии «Библиотеки программиста» — ждем вас в команде!

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

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

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

Ждем ваших откликов 👾
💬 ТОП-8 фраз, которые испортят впечатление о вас на собеседовании

Представьте, вы попали на собеседование мечты. Всё идёт гладко, но пара неудачных фраз могут свести на нет все ваши старания. Например, если вы слишком скромны или, наоборот, перегибаете с самоуверенностью, это может вызвать недоверие. Или фраза, которая должна показать вашу гибкость, внезапно делает акцент на недостатке опыта. Знакомо?

Есть проверенные подходы, которые помогут избежать таких ситуаций, выстроить грамотное общение и оставить положительное впечатление. Готовы узнать больше? 🌟

🔗 Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
💬 Какой инструмент вы используете для управления зависимостями?

🔥 — Maven
🎉 — Gradle
👍 — Использую оба, в зависимости от проекта
👾 — Другой инструмент, напишу в комментах
😁 — Я ЗОЖ, у меня нет зависимостей.
Please open Telegram to view this post
VIEW IN TELEGRAM
💬 У кого было?

#memes
Please open Telegram to view this post
VIEW IN TELEGRAM
#дайджест #Javadevjob

Вакансии Java разработчиков уровня Junior

▪️ Java разработчик
Офис (Саранск), Инфомаксимум
Подробнее

▪️ Java разработчик
Гибрид (Москва), ВБЦ
Подробнее

Вакансии Java разработчиков уровня Middle

▪️ Java разработчик
Гибрид (Ижевск) / Удалёнка, Ardecs
Подробнее

▪️ Java разработчик
Гибрид (Москва) / Удалёнка, FINTECH SERVICE
Подробнее

Вакансии Java разработчиков уровня Senior

▪️ Java разработчик
Удалёнка, Бэнкс Софт Системс
Подробнее

▪️ Java разработчик
Удалёнка / Гибрид (Москва), S8.Capital
Подробнее

Понравились вакансии?
❤️ — да
🤔 — нет
⚙️ В чем разница между Load Balancer и API Gateway?

— NLB (Network Load Balancer) – распределяет трафик на уровне IP. Он работает на более низком уровне и не анализирует HTTP-запросы.

— ALB (Application Load Balancer) – маршрутизирует запросы на основе HTTP-заголовков или URL. ALB предлагает более сложные правила маршрутизации. Выбор между NLB и ALB зависит от ваших потребностей. Для простых сервисов в небольших масштабах одного балансировщика нагрузки может быть достаточно.

— API Gateway – работает на уровне приложений и берет на себя задачи, такие как аутентификация, ограничение скорости запросов, кэширование и другие. Его функции отличаются от Load Balancer.

Схема иллюстрирует детали работы этих компонентов. Чаще всего Load Balancer и API Gateway используются вместе, чтобы создать масштабируемую и безопасную архитектуру для современных веб-приложений.

🔹 Два подхода к архитектуре:


— Опция A: ALB + сервисы
ALB распределяет запросы между различными сервисами. Ограничение запросов, аутентификация и другие функции реализуются на уровне сервисов. Это более гибкий подход, но требует больше работы при разработке.

— Опция B: API Gateway + сервисы
API Gateway берет на себя функции аутентификации, ограничения запросов, кэширования и других задач. Это упрощает разработку сервисов, но уменьшает гибкость по сравнению с первым вариантом.

💬 Что предпочитаете — Load Balancer или API Gateway?
Please open Telegram to view this post
VIEW IN TELEGRAM
⭐️ Полезная библиотека для расширения Stream API: JOOλ

Если вы активно используете Stream API, стоит посмотреть на библиотеку JOOλ (jOOL). Она расширяет стандартные возможности потоков, добавляя удобные методы для более гибкой обработки данных.

🔹 Что умеет:

— Операции с парами и кортежами
— Группировка с несколькими уровнями (groupBy c несколькими ключами).
— Трансформации коллекций через удобные методы (например, zip, window, cartesianProduct).
— Функции SQL-подобного стиля, позволяющие писать более декларативный и читабельный код.

JOOλ упрощает работу с потоками и делает код более лаконичным и читаемым.

💬 Использовали JOOλ?
Please open Telegram to view this post
VIEW IN TELEGRAM
👀 Открытая редакция: ищем авторов для рубрики DevLife

Друзья, нас часто спрашивают про публикацию материалов о личном опыте и знаниях в IT. Пора это систематизировать!

Если у вас есть история о том, как вы:
— выросли в профессии
— освоили новые технологии
— сделали крутой карьерный скачок
— эпично лажанулись
— создали интересные проекты

✉️ присылайте свои статьи на почту [email protected] с темой DevLife

Требования простые:
— Реальный опыт
— Конкретные шаги
— От 5000 знаков
— Ссылка на Google Docs

🔥 Лучшие истории опубликуем на сайте и в наших соцсетях с общим охватом 1млн+ человек.
Please open Telegram to view this post
VIEW IN TELEGRAM
💬 Как часто приходится переписывать код после "революционных" изменений требований?

🔥 — никогда, требования всегда стабильные
🎉 — редко, бывает нужно немного доработать
👍 — часто, бывает перерабатываю значительные части
🌚 — требования меняются быстрее, чем успеваю писать код
Please open Telegram to view this post
VIEW IN TELEGRAM
⌛️ VisualVM: мощный инструмент для мониторинга

⚙️ Что умеет VisualVM

— Мониторинг JVM: позволяет отслеживать использование памяти (heap и non-heap), количество потоков, загрузку процессора и частоту сборки мусора. Также предоставляет данные в реальном времени.

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

— Анализ дампов памяти: дает возможность загружать и исследовать heap-дампы для выявления утечек памяти или избыточного использования объектов.

— Трейсинг потоков: отслеживает состояние потоков, показывая, активны ли они, находятся в ожидании или блокируются.

— Расширения: поддерживает подключение плагинов, таких как интеграция с JConsole, мониторинг серверов приложений (например, Tomcat) и другие функции.

💡 Как начать

1. Установить VisualVM. До 9 java он уже входит в JDK. Для более новых версий его можно скачать отдельно с официального сайта: VisualVM.

2. Запустить локальное приложение — для этого достаточно открыть VisualVM и выбрать активный процесс JVM.

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

🚩 Когда использовать

— Проблемы с производительностью, такие как задержки или повышенное потребление памяти.
— Необходимость в оптимизации кода.
— Диагностика ошибок в многопоточных приложениях.
— Устранение утечек памяти.

💬 Какие сценарии помог решить VisualVM? Делитесь интересным опытом.
Please open Telegram to view this post
VIEW IN TELEGRAM
🌵🕵️‍♂️ Git-квест: 10 испытаний для повелителя репозиториев

Готовы проверить свои навыки работы с Git? Пройдите наш квест и узнайте, насколько искусны в управлении репозиториями.

Посмотрим, пугают ли вас git stash, git rebase и прочие страшные слова 😁

🔗 Пройти тест
Please open Telegram to view this post
VIEW IN TELEGRAM
☁️ Какое облако выбрать?

Для наглядности подготовили для вас карточки со сравнением технологий облачных решений!

📎 Подробнее можно почитать в предыдущем посте

🐸Библиотека devops'a
Please open Telegram to view this post
VIEW IN TELEGRAM