From a01db88f8b4c24d80bcb79657a2cf964707600b1 Mon Sep 17 00:00:00 2001 From: Andrey Epifancev Date: Wed, 13 Aug 2025 17:24:19 +0400 Subject: [PATCH] vault backup: 2025-08-13 17:24:19 --- .../Лето 2025/🎯 Скрипт собеседования Java-разработчика.md | 85 +------------------ 1 file changed, 1 insertion(+), 84 deletions(-) diff --git a/💼 Работа/Собеседования/Лето 2025/🎯 Скрипт собеседования Java-разработчика.md b/💼 Работа/Собеседования/Лето 2025/🎯 Скрипт собеседования Java-разработчика.md index 49b20d7..82c6e26 100644 --- a/💼 Работа/Собеседования/Лето 2025/🎯 Скрипт собеседования Java-разработчика.md +++ b/💼 Работа/Собеседования/Лето 2025/🎯 Скрипт собеседования Java-разработчика.md @@ -28,113 +28,30 @@ _"Мы разрабатываем корпоративные системы с ## 💻 2. Техническое интервью - Теория (30 минут) ### **Java Core (5-7 минут)** - +[Ра] --- ### **Spring Framework (8-10 минут)** -**Вопрос 3:** _"Что такое Dependency Injection? Какие способы DI поддерживает Spring?"_ - -**Ожидаемый ответ:** - -- Инверсия управления, внедрение зависимостей -- Constructor injection (предпочтительный) -- Setter injection, Field injection -- @Autowired, @Qualifier, @Primary -- Преимущества: тестируемость, слабая связанность - -**Вопрос 4:** _"Объясните жизненный цикл Spring Bean. Какие есть scopes?"_ - -**Ожидаемый ответ:** - -- Создание, инициализация, использование, уничтожение -- @PostConstruct, @PreDestroy -- Scopes: singleton, prototype, request, session -- BeanPostProcessor для кастомной логики - -**Вопрос 5:** _"Как работает Spring Boot Auto-configuration?"_ - -**Ожидаемый ответ:** - -- @EnableAutoConfiguration, @SpringBootApplication -- Условная конфигурация: @ConditionalOnClass, @ConditionalOnProperty -- spring.factories, автоконфигурация стартеров -- Возможность переопределения через @Configuration - -**Углубляющий вопрос:** _"Как настроить JWT аутентификацию в Spring Security для REST API?"_ --- ### **Базы данных (5-7 минут)** -**Вопрос 6:** _"Объясните ACID свойства транзакций на примере банковского перевода."_ -**Ожидаемый ответ:** - -- **Atomicity:** перевод денег - или обе операции (списание/зачисление), или никакие -- **Consistency:** балансы всегда корректные, бизнес-правила соблюдены -- **Isolation:** параллельные транзакции не мешают друг другу -- **Durability:** подтвержденные операции сохраняются навсегда - -**Вопрос 7:** _"Что такое N+1 проблема в ORM? Как решить для списка постов с комментариями?"_ - -**Ожидаемый ответ:** - -- 1 запрос для постов + N запросов для комментариев каждого поста -- Решения: @EntityGraph, join fetch, batch loading -- Lazy vs Eager loading стратегии -- Projection для оптимизации - -**Углубляющий вопрос:** _"Какие индексы создать для таблицы пользователей с частыми поисками по email и имени?"_ --- ### **Микросервисы (8-10 минут)** -**Вопрос 8:** _"Какие преимущества и недостатки микросервисной архитектуры?"_ -**Ожидаемый ответ:** - -- **Плюсы:** независимое развертывание, масштабирование, технологическое разнообразие -- **Минусы:** сложность взаимодействия, распределенные транзакции, мониторинг -- Bounded Context, DDD подходы -- Подходит для больших команд и сложных доменов - -**Вопрос 9:** _"Как обеспечить консистентность данных между сервисами пользователей и платежей?"_ - -**Ожидаемый ответ:** - -- Saga pattern (orchestration/choreography) -- Event sourcing, CQRS -- Eventual consistency -- Compensation actions при ошибках -- Distributed transactions (2PC) - почему избегать - -**Вопрос 10:** _"Что такое Circuit Breaker? Когда применять?"_ - -**Ожидаемый ответ:** - -- Паттерн для предотвращения каскадных сбоев -- Состояния: Closed, Open, Half-Open -- Hystrix, Resilience4j библиотеки -- Применение при вызовах внешних API, медленных сервисов - -**Углубляющий вопрос:** _"Как организовать Service Discovery в Kubernetes?"_ --- ### **Message Brokers (2-3 минуты)** -**Вопрос 11:** _"В чем разница между Kafka и RabbitMQ?"_ - -**Ожидаемый ответ:** - -- **Kafka:** высокая пропускная способность, хранение логов, streaming -- **RabbitMQ:** AMQP протокол, точка-точка сообщения, более простая настройка -- **Kafka:** append-only log, горизонтальное масштабирование -- **RabbitMQ:** routing, exchange types, dead letter queues ---