vault backup: 2025-08-13 17:24:19
This commit is contained in:
@@ -28,113 +28,30 @@ _"Мы разрабатываем корпоративные системы с
|
|||||||
## 💻 2. Техническое интервью - Теория (30 минут)
|
## 💻 2. Техническое интервью - Теория (30 минут)
|
||||||
|
|
||||||
### **Java Core (5-7 минут)**
|
### **Java Core (5-7 минут)**
|
||||||
|
[Ра]
|
||||||
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### **Spring Framework (8-10 минут)**
|
### **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 минут)**
|
### **Базы данных (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-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 минуты)**
|
### **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