Java Portal | Программирование
12.6K subscribers
1.07K photos
86 videos
35 files
924 links
Присоединяйтесь к нашему каналу и погрузитесь в мир для Java-разработчика

Связь: @devmangx

РКН: https://clck.ru/3H4WUg
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Держите репозиторий на GitHub где собрана отличная подборка бесплатных материалов по программированию.

Здесь собраны сотни книг по самым разным направлениям: от веб-разработки и геймдева до AI, блокчейна, создания приложений и даже prompt engineering. 😎

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍43
Вопрос из Java-собеседования (сценарный):

Ты используешь @Autowired для field injection в Spring-проекте. Это просто и работает.

@Component
public class UserService {

@Autowired
private UserRepository userRepository;
}


Тимлид просит тебя отрефакторить это, так как field injection часто считается плохой практикой.

Подумай о минусах field injection:

→ Visibility: скрывает обязательные зависимости класса.
→ Testability: усложняет unit-тестирование, часто требует рефлексии.
→ Runtime Issues: может привести к NullPointerException, если зависимость отсутствует.
→ Design: поощряет классы с чрезмерной ответственностью (нарушение SRP).

Какой рекомендуемый вариант?

→ Constructor Injection.

Зависимости явно передаются при создании объекта, делая их обязательными.

@Component
public class UserService {
private final UserRepository userRepo; // final!

public UserService(UserRepository userRepo) {
this.userRepo = userRepo;
}
}


Почему Constructor Injection лучше?

→ Explicit: явно показывает, что нужно классу для работы.
→ Guaranteed: приложение не поднимется, если зависимости нет.
→ Immutable: final-поля безопаснее и дружелюбнее к многопоточности.
→ Testable: легко замокать и прокинуть зависимости в тестах.

Это приводит к более надежному и поддерживаемому коду.

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍3💊1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁178
Как вы решаете вопрос с покрытием?
Почти в каждом проекте висит задача: поднять покрытие до 70%.
И почти в каждой команде никто не хочет этим заниматься.

Explyt – AI-плагин для Java и Kotlin разработчиков, который снимает эту боль.
Он генерирует юнит-тесты прямо в IDE: по коду, по runtime-трассам, по спекам. И делает это так, как будто реально вник в проект.

📌 Что умеет:
- создаёт осмысленные тесты для Java и Kotlin-кода
- поддерживает JUnit 4/5, TestNG, кастомные фреймворки
- превращает execution trace в автотесты
- предлагает фиксы, если сгенерированный тест падает
- есть режим агента, где AI сам меняет код, запускает тесты и ищет ошибки

📦 Плагин доступен:
- через JetBrains Marketplace
- или напрямую с сайта разработчика

🎁 30 дней бесплатного доступа – просто пользуйтесь.
👉 Попробовать на своём проекте
🤣41👍1🔥1
Топ-53 задач на Java для подготовки к собеседованиям

В статье собраны самые популярные задания по Java, полезные курсы по DevOps, Linux и паттернам проектирования, а также список вопросов для подготовки к техническим интервью.

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥42