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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5bbda1b17b35b6c1a55c4
Download Telegram
🆕 Java Digest: AI-код, API-архитектура и код-ревью

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

1️⃣ Почему AI-ассистент пишет «вырвиглазный» код

Разбор главной проблемы AI-помощников в коде — узкого контекста при RAG-подходе. Автор предлагает радикальное решение: скармливать Gemini 2.5 Pro весь проект целиком через code2prompt.

Интересный подход для стратегических задач вроде проектирования крупных фич, но важно помнить про NDA и безопасность. Метод только для pet-проектов и open source.

2️⃣ От REST к gRPC и GraphQL

Глубокое сравнение трёх подходов к построению API с практическими кейсами. Разбор гибридной архитектуры: GraphQL для фронтенда (гибкость + over/under-fetching), gRPC для микросервисов (скорость + бинарный protobuf).

3️⃣ Ошибки при код-ревью

Production-опыт о том, как правильно проводить ревью: смотреть не только на diff, ограничиваться 5-6 комментариями вместо сотни, различать личные предпочтения и реальные проблемы.

Ключевой месседж: большинство PR должны получать Approve, а не Request Changes. В конце — практичный чеклист из 14 пунктов для систематизации процесса.

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

#News
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥21🥱1💯1
🎁 И мозг прокачать, и макбук утащить!

Proglib.academy разыгрывает MacBook Pro 14 (M3 Pro, 36 GB, 1 TB SSD) 💻

Условия:

1️⃣ Покупаешь любой курс Proglib до 15 ноября.
2️⃣ Проходишь минимум 2 учебные недели (можно осилить за два вечера).
3️⃣ Пишешь куратору в чат своего курса: #розыгрыш.

Что за курсы?

Математика для Data Science (6 месяцев боли и просветления).
Основы Python, ML, алгоритмы, AI-агенты и даже курс для тех, кто в IT, но не кодит.

👉 Участвовать в розыгрыше
1
✔️ Java-тест: Безопасное извлечение значений из Map

Напишите метод для production-кода 👇

📦 Задание

Реализуйте метод для безопасного получения значения из вложенной Map с default-значением:
public class MapUtils {

public static <T> T getNestedValue(Map<String, Object> map,
String path,
T defaultValue) {
// Ваша реализация
}
}


Требования

— Путь задается через точку: "user.address.city"
— Если любой уровень вложенности null или отсутствует → вернуть defaultValue
— Обработать пустой путь → вернуть defaultValue
— Обработать null в параметрах → вернуть defaultValue

Примеры использования

Map<String, Object> data = Map.of(
"user", Map.of(
"name", "John",
"age", 30,
"address", Map.of(
"city", "Moscow"
)
)
);

String city = getNestedValue(data, "user.address.city", "Unknown");
// → "Moscow"

Integer age = getNestedValue(data, "user.age", 0);
// → 30

String country = getNestedValue(data, "user.address.country", "Russia");
// → "Russia" (не найдено)


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

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

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

#practise
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8🤔51👍1
Java && Coffee

Делитесь фотографиями выходных. Я сегодня в горах ⛰️

Отправляйте фото в комментарии👇🏻

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

#DevLife
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥3😍3
💻 ВАЖНО: макбук ещё не забрали!

Proglib.academy продолжает розыгрыш MacBook Pro 14» (M3 Pro, 36 Гб, 1 Тб SSD).

Что нужно для участия?

— Берёшь любой курс Академии до 15 ноября.
— Проходишь хотя бы 2 недели обучения (можно за два дня).
— Пишешь куратору #розыгрыш. Всё — ты в игре!

Что за курсы?

▫️Алгоритмы и структуры данных — если хочешь готовиться к собесам в Яндекс, FAANG и не сидеть на джуне вечно.

▫️Архитектуры и шаблоны проектирования — учат думать как senior, а не просто писать код.

▫️ Python, математика для DS, основы IT и другие темы — можно стартовать с нуля или усилить то, что уже знаешь.

👉 Влетай, не думай!
👑 Магия IntelliJ IDEA: Extend Selection

Нужно выделить метод целиком? Или весь блок try-catch? Или параметры метода? Обычно хватаешься за мышку и начинаешь аккуратно тащить курсор, рискуя промазать. А потом выделяешь заново, потому что захватил лишнюю скобку. Но можно лучше.

🔹 Что делает

— Умно расширяет выделение от курсора по синтаксическим границам кода
— Понимает структуру Java: слово → выражение → statement → блок → метод → класс
— Работает в обратную сторону: сужает выделение обратно по тем же границам
— Учитывает контекст: для строк расширяет от слова до всей строки, для вызовов — от аргумента до всего вызова

🔹 Зачем это нужно

— Выделяете нужный фрагмент за 2-3 нажатия вместо возни с мышкой
— Безошибочно выделяете сложные конструкции: цепочки вызовов, лямбды, generic-типы
— Идеально для последующего Extract Method, Copy-Paste, или Delete
— Особенно мощно для вложенных структур: легко выделить внутренний if в try внутри цикла
— Ускоряет рефакторинг: выделил логичный кусок → Extract → готово

🔹 Как использовать

— Поставьте курсор внутри нужного фрагмента (на переменную, в середину выражения, в метод)
— Нажмите Ctrl+W (Windows/Linux) или ⌥+Up (macOS) — выделение расширится на уровень выше
— Нажимайте повторно, чтобы расширять дальше: переменная → выражение → строка → if-блок → метод → класс
— Для сужения обратно: Ctrl+Shift+W (Windows/Linux) или ⌥+Down (macOS)

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

#Enterprise
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥42
💻 Хочешь MacBook Pro? Просто начни учиться!

Да-да, вы не ослышались: Proglib.academy дарит макбук за учёбу!

Всё просто:

— купи любой курс Академии до 15 ноября;
— пройди 2 недели обучения (можно за два дня);
— напиши куратору в чате курса хэштег #розыгрыш.

📚 Выбирай свой курс:

▫️ «Математика для DS» — для тех, кто хочет уверенно работать с данными;
▫️ «Основы Python» — чтобы начать писать код с нуля;
▫️ «Алгоритмы и структуры данных» — для будущих инженеров;
▫️ «AI-агенты» или «Машинное обучение» — для тех, кто хочет прокачаться в ИИ.

👉 Участвовать в розыгрыше