Специализация
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 в телеграм
Как работают статические и динамические области видимости (scope)?
Статическая область видимости (или лексическая область) означает, что правила определения видимости переменных устанавливаются на этапе написания кода, а не во время выполнения. Это значит, что функции запоминают свое окружение, в котором были созданы. Динамическая область видимости, в отличие от этого, определяется тем, как функции вызываются, а не как они определены, что более характерно для некоторых других языков. В JavaScript используется именно статическая область видимости.
Как движок JavaScript ищет ссылки на переменные в определенном scope?
JavaScript использует механизм, называемый "лексическое окружение", для поиска ссылок на переменные в определенном scope (области видимости). Когда функция вызывается, создается новое лексическое окружение, которое включает в себя ссылки на переменные, объявленные в родительских scopes. Если переменная не найдена в текущем scope, движок продолжает поиск в родительских scopes до тех пор, пока не найдет переменную или не достигнет глобального scope.
Какие Spring Scope знаешь?
Основные области видимости Spring: Singleton, Prototype, Request, Session, Application, WebSocket.
В чем разница между функциями apply и scope в Kotlin?
apply используется для настройки объекта в контексте this и возвращает сам объект. also используется для выполнения дополнительных действий с объектом в контексте it и также возвращает сам объект. Различие в том, что apply больше подходит для изменения свойств объекта, а also — для выполнения побочных действий.
Какие есть CoroutineScope и Dispatcher, и как они применяются?
CoroutineScope определяет жизненный цикл корутин, например GlobalScope, viewModelScope, lifecycleScope, а Dispatcher указывает, на каком потоке выполнять код: Dispatchers.Main для UI, Dispatchers.IO для I/O, Dispatchers.Default для CPU-интенсивных задач. Их комбинируют, чтобы корутины запускались в нужных условиях и отменялись вместе с жизненным циклом.
Каково может быть время жизни объекта в DI-контейнере и какие существуют варианты (singleton, transient, scoped)?
Для чего нужен SupervisorJob? Как создать кастомный CoroutineScope?
Почему GlobalScope не рекомендуется для большинства случаев?
Что произойдёт с корутиной, запущенной в GlobalScope, если вызвать cancel() на родительском скоупе?
Что такое scope зависимости в Maven?
Рейтинг:
2
Сложность:
7
В .NET объекты в DI-контейнере могут жить как Transient (новый экземпляр при каждом запросе), Scoped (один экземпляр на один scope, например HTTP-запрос) и Singleton (один экземпляр на весь жизненный цикл контейнера). Transient полезен для лёгких, без состояния сервисов, Scoped — для сервисов с контекстом запроса, Singleton — для кэшей и общих ресурсов. Выбор влияет на память, потокобезопасность и поведение зависимостей.
Рейтинг:
2
Сложность:
5
SupervisorJob: ошибка в одной корутине не отменяет другие.
Кастомный CoroutineScope:
val scope = CoroutineScope(SupervisorJob() + Dispatchers.IO)Рейтинг:
2
Сложность:
7
GlobalScope не привязан к жизненному циклу приложения, что может привести к утечкам памяти и неожиданному поведению. Вместо него рекомендуется использовать CoroutineScope с явным управлением (например, viewModelScope или lifecycleScope).
Рейтинг:
2
Сложность:
7
Корутины в GlobalScope не зависят от других CoroutineScope, поэтому их нельзя отменить через cancel() родительского скоупа. Они продолжат выполняться, пока не завершатся самостоятельно или не будет вызван cancel напрямую.
Рейтинг:
5
Сложность:
4
scope определяет, на каких этапах используется зависимость. Он влияет на компиляцию, тестирование и выполнение приложения. Самые распространённые scope — compile, test и provided. Правильный выбор scope уменьшает размер артефакта и снижает риски. Это важная часть конфигурации Maven.
Рейтинг:
3
Сложность:
5
Рейтинг:
3
Сложность:
8
Рейтинг:
5
Сложность:
5
Рейтинг:
3
Сложность:
7
Рейтинг:
2
Сложность:
6