Библиотека джависта | Java, Spring, Maven, Hibernate
23.9K subscribers
2.03K photos
40 videos
43 files
2.86K links
Все самое полезное для Java-разработчика в одном канале.

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

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

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

РКН: https://gosuslugi.ru/snet/67a5bbda1b17b35b6c1a55c4
Download Telegram
🆕 Java Digest: подборка материалов

🔹 Spring Debugger: Working With Dynamic Database Connections Just Got Simpler

При запуске Spring-приложения или тестов в режиме отладки этот плагин автоматически находит и регистрирует в секции DataSource подключения к БД, которые были подняты в Testcontainers

🔹
An Introduction to Jakarta Persistence 3.2 by Examples

Статья о нововведениях Jakarta Persistence 3.2. Несмотря на минорное обновление, фич добавили много.

🔹 RESTful API Guidelines

Статья о распространенных ошибках в REST API — несогласованные URIs, неверное использование HTTP-методов и кодов, отсутствие версионирования и стандартов.

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

#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👍1
😮 Топ-вакансий для джавистов за неделю

Java-разработчик — от 220 000 ₽ — удалёнка

Программист Kotlin (бэкэнд) Middle/Senior — от 150 000 до 300 000 ₽ — удалёнка

Java Developer — 300 000 —‍ 450 000 ₽ — гибрид (Москва, Санкт-Петербург, Екатеринбург, Нижний Новгород, Казань, Новосибирск, Симферополь, Минск)

Senior Java разработчик — удалёнка

➡️ Еще больше топовых вакансий — в нашем канале Java jobs
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍1🔥1🥱1
🚀 Индексы в PostgreSQL

Когда сервис начинает работать с десятками миллионов строк, простое findById уже не выглядит «мгновенным». Тут в игру вступают индексы.

🔍 Что такое индекс

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

⚡️ Типы индексов и когда применять

— B-Tree (по умолчанию)

Отлично работает для операций =, <, >, ORDER BY.
Частый кейс: поиск по id, created_at, username.
CREATE INDEX idx_user_email ON users(email);


— GIN (Generalized Inverted Index)

Для jsonb, массивов и полнотекстового поиска.
Например, поиск по тегам или WHERE metadata @> '{"os":"android"}'.
CREATE INDEX idx_logs_metadata ON logs USING gin (metadata jsonb_path_ops);


— GiST (Generalized Search Tree)

Для геоданных, поиска по диапазонам (tsrange, daterange).
CREATE INDEX idx_places_geom ON places USING gist (geom);


— Hash Index

Для очень быстрого поиска по точному совпадению, но реже нужен (B-Tree почти всегда быстрее).
CREATE INDEX idx_sessions_sid ON sessions USING hash (session_id);


⚠️ На что обратить внимание

— Индекс ускоряет SELECT, но замедляет INSERT/UPDATE/DELETE (нужно обновлять и таблицу, и индекс).
— Слишком много индексов = «смерть от оптимизации». Держите баланс.
— Никогда не делайте индексы «на всё подряд». Индекс должен соответствовать реальным запросам.

💬 А вы чаще оптимизируете запросы через индексы или через переписывание логики?

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

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥43🤔1
🫣 Хотите в Data Science, но боитесь высшей математики?

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

Именно этому учат преподаватели ВМК МГУ на нашем курсе «Математика для Data Science».

Без лишней воды — только то, что нужно для:

успешного поступления в ШАД Яндекса;
прохождения собеседований уровня FAANG;
глубокого понимания ML-алгоритмов.

Это самый прямой путь к математическому фундаменту, на котором строится вся карьера в Data Science.

👉 Начните строить свою карьеру уже сегодня
🔥 Последняя неделя, чтобы забрать курс по AI-агентам по старой цене!

Пока вы тестируете Copilot, другие уже учатся строить AI-агентов, которые реально работают на бизнес. Хватит отставать!

Наш курс — это концентрат практики по LangChain и RAG. Улучшенная версия, доработанная по отзывам первого потока.

📆 Старт — 15 сентября.

💸 Цена 49 000 ₽ — только до 24 августа.

👉 Зафиксировать цену
1🤔1
⚙️ Async Profiler

Async Profiler — это современный профайлер для JVM, который показывает, где именно «горит» CPU и где происходят утечки памяти. В отличие от классических профайлеров, он использует низкоуровневые возможности ОС (perf, JVMTI) и практически не влияет на производительность.

📌 Что умеет:

— Делает CPU и allocation flame graph'ы
— Минимальный overhead
— Поддерживает анализ Java и нативного кода вместе
— Умеет снимать снапшоты и строить красивые SVG-отчёты

🧠 Особенно полезен, если у вас микросервисы или приложения с нагрузкой 24/7 — можно ловить узкие места без остановки сервиса.

🔗 Async Profiler на GitHub

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

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥3👏1
⚡️ Бесплатный вебинар — прогнозируем цены и не сходим с ума

21 августа в 19:00 МСК будет бесплатный вебинар с Марией Жаровой — экспертом в ML и Data Science.

Тема:
«Введение в машинное обучение: как спрогнозировать стоимость недвижимости».


Подробности рассказываю в гс выше — включай, чтобы не пропустить.
💬 Обратная связь

По воскресеньям выходит пост с подборкой свежих статей/новостей. Посты собирают мало реакций, в связи с чем вопрос: как вы оцениваете эту рубрику?

👍🏼 — Мне нравится, иногда нахожу, что почитать.
🌚 — Рубрика нормальная, но можно улучшить формат поста.
🤔 — Скучно/не интересно, лучше что-то другое постить.

И пишите любые ваши мысли и предложения в комментариях, сделаем контент интереснее вместе.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🤔5🌚2
This media is not supported in your browser
VIEW IN TELEGRAM
☝️ Один мудрый тимлид дал двум своим разработчикам по «таланту» — мощной, но своенравной LLM.

Первый разработчик испугался её «галлюцинаций». Он запер модель в песочнице, не давая ей доступа к свежим данным. На вопросы модель отвечала красиво, но часто придумывала факты, то есть врала. Он просто «закопал» свой талант, боясь им пользоваться.

Второй же разработчик не побоялся. Он построил для своей LLM систему RAG — дал ей «лопату и карту», чтобы находить сокровища в базе знаний компании. Его AI-агент отвечал точно по делу, ссылаясь на реальные документы. Он заставил свой «талант» работать и приносить пользу.

Мощь LLM раскрывается не в ней самой, а в системах, которые вы строите вокруг неё.


Именно такие системы мы и будем строить на втором потоке нашего курса «AI-агенты для DS-специалистов». Мы не просто поговорим о RAG, а соберём полный пайплайн с оценкой качества, чтобы ваш агент не врал.

Представьте, что вы сможете начать изучать эту сложную и востребованную тему уже 15 сентября, а не ждать официального старта в октябре. У вас будет фора в 3 недели, чтобы спокойно разобраться в векторных базах и подходе «LLM as a Judge».

💸 Цена 49.000 ₽ действует последние 4 дня — до 24 августа.

👉 Начать строить RAG раньше других
😁31
⚡️ JUnit 5: @ClassTemplate

В JUnit 5 появилась интересная аннотация @ClassTemplate. Она полезна, когда один и тот же набор тестов нужно выполнить в разных контекстах. Например: проверить класс с разными локалями, флагами или окружениями.

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

🔍 Как это работает

— Помечаем тестовый класс @ClassTemplate.
— Регистрируем ClassTemplateInvocationContextProvider, который возвращает список «контекстов» (например, en/it).
— JUnit прогоняет один и тот же класс для каждого контекста.

💡 Пример

— Есть Greeter, который должен возвращать приветствие по-английски и по-русски.
— Мы пишем один тест → JUnit запускает его дважды: для en и для ru.
— В отчёте два результата, код теста при этом один.

⚠️ Важные детали

— Работает начиная с JUnit 5.13.
— Для читаемых логов удобнее запускать через JUnit Console Launcher.
— Отличается от @TestTemplate тем, что переиспользует весь класс, а не отдельные методы.

💬 А вы чаще решаете такие задачи параметризацией или дублированием тестов?

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

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍54🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
📅 Сегодня в 19:00 МСК — бесплатный вебинар с Марией Жаровой.

Тема: «Введение в ML: как спрогнозировать стоимость недвижимости».

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

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

👉 Регистрируйтесь