Встречается на собеседованиях • сегодня
Каким образом собирали информацию со всех источников в текущем проекте
Для сбора данных из разных источников использовался паттерн "Адаптер" — каждый источник имел свой адаптер, преобразующий данные в единый формат. Основные шаги:
1. **Интерфейс `DataSource`**:
```java
public interface DataSource {
List fetchData();
}
```
2. **Конкретные адаптеры** (например, для REST API и БД):
```java
public class RestApiAdapter implements DataSource {
@Override
public List fetchData() {
// Логика запроса к API и парсинга
}
}
public class DatabaseAdapter implements DataSource {
@Override
public List fetchData() {
// SQL-запросы и маппинг в объекты
}
}
```
3. **Агрегатор**:
```java
public class DataAggregator {
private List sources;
public List collectAll() {
return sources.stream()
.flatMap(source -> source.fetchData().stream())
.collect(Collectors.toList());
}
}
```
Для обработки ошибок и асинхронности использовались:
- `CompletableFuture` для параллельных запросов,
- Retry-механизмы (например, Spring Retry),
- Логирование проблемных источников.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы