Java Backend | YeaHub
491 subscribers
101 photos
22 videos
2 files
215 links
Теория, подготовка к интервью и курсы для Java разработчиков

YeaHub — это платформа для IT-специалистов, объединяющая обучение, карьерный рост, развитие и сообщество единомышленников.

Платформа: https://yeahub.ru

Для связи: @ruslan_kuyanets
Download Telegram
#полезное
😵‍💫 Совет по Java API

Используйте @FunctionalInterface как защиту на уровне компиляции

Она помогает не допустить случайного добавления второго абстрактного метода в интерфейс, который должен быть функциональным.
Если вы попытаетесь добавить ещё один абстрактный метод в такой интерфейс, компилятор выдаст ошибку

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👋 ScopedValue.where()

ScopedValue.where() позволяет безопасно передавать контекстные данные внутри потока, избегая утечек памяти и сложностей ThreadLocal. Данные доступны только внутри заданного блока кода.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #bash
🤔 Как удалить все .log файлы в директории?

Чтобы удалить все .log файлы в текущей папке, выполните:
rm *. log

Для удаления в подкаталогах используйте:
find . -name "*.1og" -delete


👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🫡 В этом гайде автор показывает, как парсить структурированные строки в Java

Большинство разработчиков используют регулярные выражения, split() или ручную нарезку строк. Но эти техники подвержены ошибкам, плохо читаются и, что важнее всего — небезопасны на этапе компиляции.
Класс StringFormat делает парсинг настолько простым, что даже новичок может реализовать его в одну строку.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
😊 В этом гайде автор делится, как писать удобные интеграционные тесты в Spring Boot

Многие разработчики либо перегружают @SpringBootTest, либо пишут сложные конструкции с @MockBean. Но такие подходы тормозят сборку, плохо читаются и, что важнее всего — дают ложное чувство покрытия.

Класс MockMvc и аннотация @WebMvcTest делают тестирование контроллеров лёгким и быстрым, можно проверить весь HTTP-флоу без запуска сервера.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😊 Совет по Java: предпочитай внедрение через конструктор, а не через поля

На то есть разные причины:

🟠 Зависимости можно пометить как final, гарантируя, что они не изменятся после создания.

🟠 Повышает надёжность класса и безопасность при работе с потоками

🟠 Заставляет вызывающий код (или DI-контейнер) передать все необходимые зависимости

🟠 Упрощает модульное тестирование, позволяя подставлять моки или стабы через конструктор

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

🟠 Внедрение через конструктор не использует рефлексию или доступ к приватным полям (в отличие от внедрения через поля), что повышает производительность и снижает риски

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #bash
🤔 Как вывести только каталоги в папке?

Чтобы отобразить только папки, используйте:
Is -d */

Или команду find :
find . -type d


👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🤯 JLine TerminalBuilder.build()

TerminalBuilder.build() из библиотеки JLine позволяет создавать интерактивные терминалы с поддержкой ANSI-цветов, автодополнения и управления вводом. Это полезно для создания CLI-приложений с удобным интерфейсом.
Документация

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🛞 Ставить @Transactional везде подряд плохая практика — сначала разберись, когда он действительно нужен:

🟠Использовать @Transactional только в сервисном слое — Отделяет бизнес-логику от веб-логики

🟠Использовать транзакции на уровне методов — Даёт точный контроль и ясность

🟠Использовать @Transactional(readOnly = true) — Оптимизирует операции только для чтения

🟠Избегать @Transactional в репозиториях — Репозитории не должны управлять транзакциями

🟠Оставлять транзакционные методы public — Необходимо для работы Spring-прокси

🟠Логировать или отслеживать поведение транзакций — Помогает выявлять неожиданные проблемы

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
🥄 Это просто огонь. В одном из следующих релизов jetbrains / intellijidea появится фича, которая позволяет в пару кликов сгенерировать JPA-энтити из существующей схемы БД

И ещё, мне сказали, что SpringData JDBC тоже скоро завезут

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #bash
🤔 Как посчитать количество строк в файле?

Для подсчёта строк в файле используйте:
wc -1 file.txt

Эта команда выведет количество строк в файле.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🤓 Java API Tip

Безопасное приведение long к int

Используй Math.toIntExact() — этот метод возвращает значение long, но выбрасывает ArithmeticException, если оно не помещается в int

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

Используй toIntExact, когда важно контролировать переполнение

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#видео
😐 Указание типа после ключевого слова new — это действительно допустимая конструкция в Java.

Об этом и многом другом — в видео

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM