Библиотека джависта | Java, Spring, Maven, Hibernate
23.6K subscribers
2.14K photos
44 videos
44 files
3.01K links
Все самое полезное для Java-разработчика в одном канале.

Список наших каналов: https://t.iss.one/proglibrary/9197

Для обратной связи: @proglibrary_feeedback_bot

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

РКН: https://gosuslugi.ru/snet/67a5bbda1b17b35b6c1a55c4
Download Telegram
🧪 JUnit 6 — уже почти

JUnit официально двигается дальше: версия 6 уже в RC3. Минимальная поддерживаемая Java теперь — 17, архитектура переосмыслена, и наконец-то все модули (Platform, Jupiter, Vintage) получили единый номер версии.

Но если честно — революции не случилось. Да, API заметно подчистили, выкинули старые модули вроде junit-platform-runner, добавили встроенную интеграцию с Java Flight Recorder и улучшили поддержку Kotlin (suspend-тесты теперь можно писать нативно).

Однако принципиально новых возможностей тестирования — почти нет. Это скорее эволюция и техдолг-чистка, чем что-то, что заставит переписать ваши тесты завтра.

🔗 Полные release notes

💬 Оставляйте ваше мнение в комменты

🐸 Библиотека джависта

#News
Please open Telegram to view this post
VIEW IN TELEGRAM
👍65🔥2🥱2
🤓 Пока Python стал π-thon, ты можешь стать Data Scientist'ом

В Proglib.academy стартует экспресс-курс «Математика для Data Science»: 10 живых вебинаров, практика на Python и спикеры из ВШЭ, Яндекс Практикума и Wildberries, которые всё разложат по полочкам.

В программе:
🔹 матан, линал, теория вероятностей;
🔹 3 практических проекта + викторина с розыгрышем TG Premium;
🔹 поддержка преподавателей и чат с единомышленниками;

🎁 Оплати курс до 19 октября — получи курс по базовой математике в подарок.
🗓️ Старт — 6 ноября

👉 Записаться на курс
1
🧐 Хочешь в Data Science, но не знаешь, с чего начать?

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

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


👉 Пройти тест
This media is not supported in your browser
VIEW IN TELEGRAM
🌐 Путешествие URL: что происходит, когда вы вводите адрес сайта

Каждый раз, когда вы набираете https://example.com в браузере — за кулисами запускается целая цепочка событий 👇

1️⃣ Разбор адреса

Браузер делит URL на части:

▪️ https — протокол
▪️ example.com — домен
▪️ /page — путь к ресурсу

2️⃣ Поиск IP

Если IP не сохранён в кеше, браузер спрашивает DNS-сервер: «Где живёт example.com

3️⃣ Установление соединения

Создаётся TCP-соединение с сервером по IP и порту (80 для HTTP, 443 для HTTPS).

4️⃣ Запрос ресурса

Браузер отправляет HTTP-запрос: GET /page HTTP/1.1

5️⃣ Ответ сервера

Сервер возвращает HTML, CSS, JS и статус-код (например, 200 OK или 404 Not Found).

6️⃣ Рендеринг страницы

Браузер обрабатывает HTML, применяет стили и выполняет JavaScript.

7️⃣ Шифрование

Если сайт работает по HTTPS, соединение шифруется через SSL/TLS.

8️⃣ Кеширование

Браузер сохраняет ресурсы, чтобы при следующем визите всё грузилось быстрее.

🐸 Библиотека джависта

#CoreJava
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍4🔥4
⚡️ Просто о сложном: как JIT делает код быстрее

Вы когда-нибудь задумывались, как JIT умеет так ловко оптимизировать код в реальном времени?

Сегодня разберём, какие именно суперспособности JIT даёт вашему коду.

🔹 Инлайнинг методов

Когда JIT обнаруживает, что какой-то метод выполняется слишком часто, он может инлайнить его. Это значит, что весь код метода не будет вызываться отдельно, а его инструкции будут вставляться прямо в место вызова.

Пример:
int sum(int a, int b) {
return a + b;
}

int result = sum(5, 10);


Стало:

int result = 5 + 10; // JIT инлайнит код метода sum


🔹 Удаление мертвого кода

JIT всегда анализирует, выполняется ли тот или иной участок кода. Если метод или условие никогда не будет вызвано (например, условие, которое всегда ложно), JIT его удаляет.

🔹 Оптимизация циклов

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

🔹 Параллельная компиляция

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

🔹 Использование final переменных

JIT предполагает, что final переменные не изменяются после инициализации. Это даёт компилятору возможность предсказать их значения и оптимизировать операции с ними.

🔹 Удаление лишних проверок

JIT понимает, какие проверки в коде избыточны. Например, если переменная была уже проверена на null, и это значение не изменяется, JIT может просто игнорировать повторные проверки.

🔹 Классификация горячих и холодных методов

JIT следит за тем, какие методы выполняются часто (горячие) и какие — нет (холодные). Он решает компилировать только те методы, которые чаще всего используются. Если горячий метод вдруг перестаёт быть горячим, JIT может освободить его от компиляции, освобождая ресурсы.

🔹 Слияние и удаление дубликатов

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

Пример:
int a = 5;
int b = 5;
int c = a + b;
int d = a + b; // Дублирование


JIT может понять, что a + b одинаково для обеих операций, и просто использовать результат из первого вычисления во втором.

💬 Пишите в комменты, какие инструменты ещё разобрать.

🐸 Библиотека джависта

#CoreJava
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍4🔥2
🚀 Java Roadmap 2025

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

1️⃣ Основы и ООП

Фокус на record классы (Java 16+), абстракция и полиформизм.

2️⃣ Коллекции и потоки

Основной тренд — использование Streams API (Java 8+) и неизменяемых коллекций (Java 9+).

3️⃣ Многозадачность

Project Loom и виртуальные потоки (Java 21) упростят многозадачность и повысит производительность.

4️⃣ Функциональное программирование

Расширение использования лямбда-выражений и функциональных интерфейсов.

5️⃣ Web и микросервисы

Активное использование Spring Boot, Spring Cloud, Swagger/OpenAPI для документации.

6️⃣ Тестирование и сборка

JUnit 5, Mockito, Testcontainers и инструменты сборки Maven и Gradle для автоматизации.

7️⃣ Базы данных и ORM

Знания JDBC, Hibernate, JPA для создания надежных и масштабируемых систем.

🐸 Библиотека джависта

#Enterprise
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥52🥱1
🎲 Мы не только учим, но и играем!

На экспресс-курсе «Математика для Data Science» — викторина с призом TG-Premium 🎁
Проверь знания, прокачай математику и забери приз.

‼️ Оплатишь до 19 октября — получишь базовый курс в подарок.

👉 Записаться на курс
This media is not supported in your browser
VIEW IN TELEGRAM
Создавайте технологии, которые меняют мир

В команду Яндекса нужны бэкенд-разработчики с опытом от 3 лет на C++, Python, Java/Kotlin, Go — строить полезные сервисы для миллионов пользователей.

Как получить офер за неделю?

• До 12 ноября оставить заявку на участие и пройти предварительный этап.
• 15–16 ноября решить задачи на технических секциях.
• 17–21 ноября прийти на финальную встречу.

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

Читайте подробности и оставляйте заявку на сайте.

Реклама. ООО "Яндекс". ИНН 7736207543
🛡 Circuit Breaker & Resilience4j

В микросервисах падение одного сервиса может уронить всю систему — эффект «домино». Circuit Breaker помогает изолировать сбои и держать SLA под контролем.

📝 Промпт:
Generate a Spring Boot 3 configuration with Resilience4j Circuit Breaker.

— Configure Circuit Breaker around external HTTP calls (e.g. RestTemplate/WebClient).
— Add Retry policy with exponential backoff.
— Add Rate Limiter and Bulkhead isolation (thread pool separation).
— Provide fallback methods (graceful degradation).
— Enable metrics collection with Micrometer and Prometheus.
— Expose actuator endpoints for circuit state monitoring.
— Add chaos testing scenario: simulate latency and failures.


💡 Расширения:

— Настройте TimeLimiter для защиты от зависаний.
— Интегрируйте с Spring Cloud Gateway для глобальных политик.
— Добавьте Grafana dashboards для визуализации отказоустойчивости.

🐸 Библиотека джависта

#Enterprise
Please open Telegram to view this post
VIEW IN TELEGRAM
👍42🔥1
Недавно мы анонсировали старт нового курса «Математика для Data Science».

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

Спикеры курса:

👤 Ксения Кондаурова
Преподаватель и автор курсов для бакалавриата Центрального Университета (Т-Банк), спикер и методист для Edutoria (Сбербанк). Ксения расскажет, как линейная алгебра применяется для построения предсказательных моделей, и научит проверять гипотезы для бизнеса с помощью статистики.

👤 Диана Миронидис
Преподаватель НИУ ВШЭ, автор и методист Яндекс Практикума. Самый экстравагантный преподаватель из всех, с кем вы учились, — убедитесь, что математика может быть нескучной. Диана погрузит в математический анализ, научит исследовать функции и находить параметры, при которых ошибка модели минимальна.

👤 Маргарита Бурова
Академический руководитель образовательных программ по аналитике и анализу данных, Wildberries & Russ. Проведёт квиз с розыгрышем годовой подписки TG Premium. Маргарита — эксперт в дата-сайенс, ИИ и математических методах анализа данных, фанат развития ИТ-образования.

Вместе с экспертами за 8 недель вы не просто получите знания, а познакомитесь с математикой заново.

🎁 Только при оплате до 19 октября курс «Базовая математика» в подарок!

👉 Записаться на курс
1👍1😁1
🆕 Java Digest: паттерны, микросервисы и Jackson 3

Топ-3 статьи о Java и смежных технологиях за неделю по версии нашего канала.

1️⃣ Порождающие шаблоны на Java

Разбор Factory, Builder, Singleton и др. с практическими примерами. Главная мысль — паттерны нужны там, где реально упрощают код, а не ради “красоты”.

2️⃣ Как hh.ru выносили микросервис из монолита

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

3️⃣ Jackson 3 приходит в Spring

Поддержка Java 17+, новый JsonMapper, null-safety, совместимость со Spring Boot 4. Jackson 2 уходит в прошлое — пора проверять зависимости.

🐸 Библиотека джависта

#News
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1👏1
✔️ Java-тест: Concurrency edition

Проверим, как вы дружите с многопоточностью 👇

У вас есть метод doWork(), который выполняет тяжёлую операцию (например, чтение и обработку файла).

📦 Задание:

Нужно запустить ровно 5 потоков, каждый из которых вызывает doWork(), и дождаться завершения всех перед продолжением выполнение основного потока.

Разрешено использовать любые инструменты.

Ставьте → 🔥, если нравится формат. Если нет → 🤔

💬 Решения под спойлер. Сравним, какое будет лучше.

🐸 Библиотека собеса по Java

#practise
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥111👍1
♾️ 17 формул, которые изменили мир

Математика в действии — как уравнения, придуманные века назад, сегодня управляют интернетом, медициной, космосом и вашими финансами.

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

А если после статьи захотите разобраться, как эта математика работает в Data Science — вот экспресс-курс, который всё расставит по полочкам:

«Математика для Data Science»
— практика и живые уроки
— разбор кода и проверка домашних
— поддержка в Telegram-чате


🎓 За 2 месяца поймёте, как работают алгоритмы ML под капотом.
🗓️ Старт — 6 ноября

👉 Записаться на курс