Специализация
Python Backend Developer
Java Backend Developer
Node.js Backend Developer
Golang Backend Developer
React Frontend Developer
Выберите навыки
React
JavaScript
Git
Redux
Webpack
Сложность
1-3
4-6
7-8
9-10
Рейтинг вопросов
1
2
3
4
5
Подпишись на React Developer в телеграм
Что такое DispatcherServlet?
DispatcherServlet — это основной компонент Spring MVC, который действует как фронтальный контроллер. Он принимает входящие запросы, определяет соответствующий обработчик (контроллер), обрабатывает данные и отправляет ответ клиенту, упрощая маршрутизацию и управление представлениями.
При использовании Flow, какой Dispatcher вы бы выбрали для работы с UI и для фоновых задач?
Для обновления UI при сборе Flow выбирают Dispatchers.Main, чтобы безопасно работать с элементами интерфейса. Для фоновых задач (сеть, база данных, вычисления) используют Dispatchers.IO или Dispatchers.Default соответственно. Рекомендуется переключаться контекст в середине цепочки через оператор flowOn.
Какие есть CoroutineScope и Dispatcher, и как они применяются?
CoroutineScope определяет жизненный цикл корутин, например GlobalScope, viewModelScope, lifecycleScope, а Dispatcher указывает, на каком потоке выполнять код: Dispatchers.Main для UI, Dispatchers.IO для I/O, Dispatchers.Default для CPU-интенсивных задач. Их комбинируют, чтобы корутины запускались в нужных условиях и отменялись вместе с жизненным циклом.
Как правильно передавать Dispatcher в классы: через DI или напрямую?
Лучше передавать через DI (например, Hilt), чтобы упростить тестирование и замену реализаций. Прямая передача допустима только в простых случаях.
В чём разница между диспетчерами Dispatchers.IO и Dispatchers.Default? Когда использовать каждый?
Dispatchers.Default – для CPU-интенсивных задач (сортировка, вычисления).
Dispatchers.IO – для операций ввода-вывода (сеть, файлы, БД).
Какие риски есть у Dispatchers.Unconfined? Приведите пример падения.
Почему Dispatchers.Default не подходит для сетевых запросов/работы с БД?
Какую роль выполняет DispatcherServlet в Spring?
Рейтинг:
2
Сложность:
5
Unconfined запускает корутину в текущем потоке и может продолжить в любом другом после suspend. Это приводит к неожиданным race condition и утечкам.
Рейтинг:
2
Сложность:
5
Dispatchers.Default имеет мало потоков (по числу ядер CPU). Если все они заблокированы I/O-операциями, новые задачи будут ждать, снижая производительность.
Рейтинг:
5
Сложность:
6
DispatcherServlet — это центральная точка обработки HTTP-запросов в Spring MVC. Он принимает все входящие запросы и направляет их в нужный контроллер. Также он отвечает за вызов обработчиков, валидацию и формирование ответа. Фактически это «фронт-контроллер» приложения.
Рейтинг:
2
Сложность:
7
Рейтинг:
2
Сложность:
5
Рейтинг:
2
Сложность:
6
Рейтинг:
2
Сложность:
5
Рейтинг:
2
Сложность:
5