vault backup: 2025-08-13 17:24:19
This commit is contained in:
@@ -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
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user