Библиотека джависта | 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
加入频道
Сохраняйте шпаргалку по командам docker

🐸 Библиотека джависта #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
☕️ Java-челлендж: 10 вопросов, которые заставят мозг кипеть

Уверены, что знаете Java на отлично? Проверьте себя на этих 10 каверзных вопросах, которые могут встретиться на собеседовании или просто сломать код.

Пройдите тест и узнайте, насколько знаете тонкости языка.

🔗 Пройти тест
Please open Telegram to view this post
VIEW IN TELEGRAM
🎯 Как быстро настроить распределённую трассировку в 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
Залетай на стажировку в Kaspersky ⚡️

Если ты хорошо знаешь Java или Kotlin и хочешь освоить новые скиллы, весенняя стажировка от «Лаборатории Касперского» — для тебя. Мы ищем студентов на направление SDET Android — работа на стыке мобильной разработки и автотестирования.

Если ты учишься в вузе в Москве/МО на любом курсе, кроме выпускного, или в Школе 21 и готов(а) работать от 20 часов в неделю — присоединяйся к нам и начинай карьеру еще до окончания учебы 😎

☕️ Во время стажировки ты будешь получать зарплату и компенсацию питания, пользоваться сауной и игровыми комнатами в офисе 😇

☕️ Границы только в голове! Теперь время играет на тебя, действуй и регистрируйся здесь: https://kas.pr/3krn?erid=2W5zFJUGNe4

Реклама. Рекламодатель АО «Лаборатория Касперского» ИНН 7713140469
⚙️ Ускоряем отладку кода с помощью 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