Библиотека джависта | 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
加入频道
🎯 Как быстро настроить распределённую трассировку в Spring Boot с OpenTelemetry

Дебажить без трейсинга — как ловить баги с завязанными глазами. Но Spring Boot и тут не подвёл: подключаем, настраиваем — и уже можно видеть, что происходит внутри сервиса (и между сервисами тоже).

1️⃣ Добавляем зависимости
<dependency>
<groupId>io.opentelemetry.instrumentation</groupId>
<artifactId>opentelemetry-spring-boot-starter</artifactId>
<version>2.1.0</version>
</dependency>

ИЛИ

implementation 'io.opentelemetry.instrumentation:opentelemetry-spring-boot-starter:2.1.0'


Плюс агент (нужно будет передать при запуске JAR-а):
-javaagent:opentelemetry-javaagent.jar


2️⃣ Настраиваем экспорт в Jaeger / Zipkin / OTEL Collector

Добавляем конфигурацию в application.yml:
otel:
exporter:
otlp:
endpoint: http://localhost:4317
resource:
attributes:
service.name: my-service
instrumentation:
spring-web:
enabled: true
jdbc:
enabled: true


Можно слать трейсинг напрямую в Jaeger или Zipkin, или в OTEL Collector для гибкости.

3️⃣ Автоматическая трассировка веб-запросов и JDBC

Ничего руками писать не нужно. Всё, что проходит через @RestController и JdbcTemplate — уже обвешано спанами. Нужно только запустить приложение с агентом:
java -javaagent:opentelemetry-javaagent.jar -jar myapp.jar


Сразу работают:

— Спаны на все входящие HTTP-запросы
— Спаны на SQL-запросы
— Привязку логов к трейсам (если логгер поддерживает traceId)

4️⃣ Кастомные спаны

Нужно залезть в середину метода и обернуть свою логику? Без проблем:
@Autowired
private Tracer tracer;

public void doSomething() {
Span span = tracer.spanBuilder("custom-operation").startSpan();
try (Scope scope = span.makeCurrent()) {
// какая-то магия
} finally {
span.end();
}
}


5️⃣ Визуализация трассировок

Установите Jaeger UI или Zipkin — и смотрите в реальном времени, что делает сервис и как долго.

💬 Что вы используете для трейсинга?

🐸 Библиотека джависта #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Ускоряем отладку кода с помощью AI

Устали копаться в логах или ловить баги методом “на авось”? Попробуйте вот этот промпт — он сэкономит вам часы мучений:

📝 Промпт:


Debug the following code and identify potential issues or anti-patterns. Suggest fixes, explain the root cause of errors, and recommend tools or techniques to prevent such bugs in the future.

// Вставьте глючный код сюда


💡 Дополнительные возможности:

— Добавьте Simulate expected vs actual output behavior если не понимаете, почему оно работает не так, как вы думаете
— Добавьте Point out hidden performance issues or memory leaks если подозреваете, что код ест больше, чем должен
— Добавьте Suggest logging or monitoring strategies чтобы ловить баги ещё до того, как они вас поймают

💬 А как вы находите баги в коде?

🐸 Библиотека джависта #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
От многомерности к сути: чему нас учит PCA

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

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

В новой статье мы разберём:
• Как работает PCA
• Зачем он нужен
• Как применять его на практике — например, для анализа доходностей акций S&P 500

🐸 Подробнее: https://proglib.io/sh/uXsDlt75MY

Библиотека питониста
Please open Telegram to view this post
VIEW IN TELEGRAM
👑 Магия IntelliJ IDEA

Надоело тратить время на создание шаблонных тестов вручную? IntelliJ IDEA поможет и с этим. С помощью Ctrl + Shift + T можно сгенерировать структуру тестов для классов и методов.

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

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

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

— Поместите курсор на класс или метод, для которого нужен тест.
— Нажмите Ctrl + Shift + T (на Windows/Linux) или Cmd + Shift + T (на macOS).
— Выберите, какой тестовый фреймворк использовать (JUnit, TestNG и т.д.), и IDEA предложит создать тестовый класс с нужной структурой.

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

🐸 Библиотека джависта #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔📝 Псевдокод: когда преподы не шарят, а ты в тупике

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

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

➡️ Читать статью

🐸Библиотека шарписта
Please open Telegram to view this post
VIEW IN TELEGRAM
💼🚫 Собес провален? 8 советов, как извлечь пользу из каждого отказа

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

Однако отказ — это всего лишь один из этапов в поиске работы и не стоит воспринимать его как конец света.

➡️ Читать статью

🐸 Библиотека программиста
Please open Telegram to view this post
VIEW IN TELEGRAM
🆕 Java Digest: подборка материалов

🔹 10 Java-инструментов, которые стоит освоить в 2025 году

Отличная подборка свежих тулов от команды JavaRevisited. Автор рассказывает, почему IntelliJ IDEA по-прежнему топ, как Maven и Gradle делят рынок сборщиков, зачем подключать SonarQube к CI/CD, и как JaCoCo помогает не пускать баги в прод.

🔹 16 лучших инструментов для анализа покрытия кода в Java

LambdaTest собрали отличную коллекцию тулов для code coverage. JaCoCo, Cobertura, Emma и другие инструменты с реальными примерами, плюс — рекомендации, как интерпретировать отчёты и не уплыть в графиках.

🔹 Spring Tools 4.29.0: новые возможности

В марте вышел свежий релиз Spring Tools с обновлённой поддержкой Spring Boot 3.x, быстрой навигацией и улучшенной автоподстановкой. Плюс, разработчики поработали над интеграцией с IDE (включая Eclipse и VS Code).

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

Java-разработчик (junior+/middle) — от 200 000 до 250 000 ₽, гибрид (Москва, Санкт-Петербург)

Java-разработчик (Платёжная инфраструктура) — 300 000 —‍ 370 000 ₽, гибрид (Москва, Санкт-Петербург)

Senior Java Developer — от 400 000 ₽, удалёнка (Москва, Астрахань, Екатеринбург)

Java разработчик с нуля (стажер) — от 70 000 до 80 000 ₽, удалённо (Москва, Астрахань, Екатеринбург)

Java разработчик (middle) — от 270 000 до 300 000 ₽, удалёнка (Москва)

➡️ Еще больше топовых вакансий — в нашем канале Java jobs
Please open Telegram to view this post
VIEW IN TELEGRAM