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

Связь: @devmangx

РКН: https://clck.ru/3H4WUg
Download Telegram
Вопрос из 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
9👍3💊1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁179
Топ-53 задач на Java для подготовки к собеседованиям

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

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥43
Подготовка к собеседованию по Java Microservices

Без понимания ключевых концепций микросервисов сложно успешно пройти собеседование на backend-разработчика. Даже если вы не реализовывали их на практике, базовое знание даст серьёзное преимущество. Сохрани себе этот список как краткий гид или план подготовки.

Монолит vs Микросервисы → масштабирование отдельных функций независимо
Проектирование микросервиса → изоляция управления профилем пользователя
Паттерн API Gateway → единая точка входа для клиентов
Взаимодействие сервисов (REST vs Messaging) → асинхронная очередь обработки заказов
Паттерн Circuit Breaker → предотвращение каскадных сбоев сервисов
Spring Cloud Load Balancer → распределение трафика между инстансами
Spring Cloud Config → управление внешними конфигурационными параметрами
Service discovery (Eureka/Consul) → автоматический поиск сервисов друг другом
Feign Client vs WebClient → блокирующие и неблокирующие вызовы
Event-driven архитектура и Kafka → обработка потоков данных в реальном времени
Отдельная база для сервиса vs общая база → разделение уровня хранения данных
Паттерн Saga → согласованность распределённых транзакций
Аутентификация на основе JWT и OAuth2 → безопасные stateless API
Безопасность в API Gateway → централизованная аутентификация и авторизация запросов
Observability (логи, трассировка, метрики) → отладка проблем в продакшене
Prometheus и Grafana → мониторинг состояния системы и дашборды
Стратегии деплоя в Kubernetes → авто-масштабирование и самовосстановление приложений
Blue-Green и Canary-деплой → нулевой даунтайм и минимальные риски при релизах
Когда использовать WebFlux → высоконагруженные и низколатентные API
CQRS и Event Sourcing → разделение моделей чтения и записи при сложных сценариях


👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🔥Прими участие в Хакатоне от ИТ-холдинга Т1 в Новосибирске и поборись за призовой фонд 800 000 рублей!

Когда: 23–26 октября
Формат: онлайн + финал на площадке

Участвуй, если ты:
🔹обучаешься на технической или ИТ-специальности;
🔹развиваешься в направлении разработки, аналитики, CV, ML или DevOps;
🔹сможешь быть в Новосибирске 26 октября.

Выбери свой кейс:

✴️Цифровой дресс-код: фон, который выделяет вас. Создай локальный ML-модуль сегментации видео и генератор персонализированных фонов.

✴️CodeMetrics: метрики, которые помогают расти. Разработай систему автооценки эффективности команд через анализ Git-метрик.


Почему стоит участвовать:
🔘Кейс в портфолио и полезная обратная связь от менторов Т1;
🔘Шанс проявить себя, чтобы начать карьеру в одной из крупнейших ИТ-компаний;
🔘Реальный опыт командной работы;
🔘Мерч и атмосфера сильного комьюнити — в Т1 более 5 000 джунов из 580+ вузов России и Беларуси.

Регистрация открыта!
➡️ Успей до 21 октября по ссылке.

erid: 2Vtzqwmd32u
Please open Telegram to view this post
VIEW IN TELEGRAM
Как тестировать Spring Boot приложения в Java?

Статья объясняет, как использовать @SpringBootTest, разницу между юнит- и интеграционными тестами, а также даёт советы по ускорению тестов. Полезно для разработчиков любого уровня, работающих со Spring Boot и микросервисами.

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3