vault backup: 2025-08-13 17:24:19

This commit is contained in:
Andrey Epifancev
2025-08-13 17:24:19 +04:00
parent e57e340d77
commit a01db88f8b

View File

@@ -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
--- ---