16 вопросов
Практика
Какую роль играют Coroutine Dispatchers в Kotlin и в чём ключевые различия между основными типами диспетчеров?
Как ты можешь добавить новую функциональность к существующим классам Kotlin, не изменяя их исходный код, и какой синтаксис используется для определения таких функций?
Как работает механизм dispatch для extension functions в Kotlin, и как статическое разрешение влияет на полиморфное поведение?
Чем функции-расширения в Kotlin отличаются от наследования с точки зрения модификации класса, доступа к членам, иерархии типов и поведения во время выполнения?
Как работают extension properties в Kotlin и какие у них есть ограничения в отношении backing fields?
Можешь объяснить, что такое coroutines в Kotlin и описать, как они позволяют писать асинхронный код без создания новых потоков?
Какие ключевые различия между coroutine builders `launch` и `async` в Kotlin, и когда нужно использовать каждый из них?
В Kotlin coroutines, в чём различие между блокирующей операцией и suspending операцией с точки зрения использования потоков и потока выполнения?
Можешь объяснить назначение CoroutineScope в Kotlin и описать, как он управляет жизненным циклом и контекстом корутин?
Можешь объяснить связь между CoroutineContext и CoroutineScope в Kotlin и описать их роли в управлении корутинами?
Можешь объяснить концепцию structured concurrency в Kotlin coroutines и описать, как она управляет жизненным циклом родительских и дочерних корутин?
Можешь объяснить, что делает корутин-билдер `runBlocking` и описать подходящие случаи использования и контексты, где его стоит или не стоит применять при разработке на Kotlin?
Какие существуют стратегии и механизмы обработки исключений в Kotlin coroutines, и чем их поведение отличается между `launch` и `async` builders?
Чем `supervisorScope` отличается от обычного coroutine scope с точки зрения обработки ошибок и отмены дочерних job'ов?
Какие лучшие практики и доступные механизмы существуют для управления потокобезопасностью при работе с общим изменяемым состоянием в Kotlin coroutines?
Чем различаются подходы Kotlin coroutines и RxJava/RxKotlin к обработке асинхронного программирования?