Вернуться в каталог собеседований

Собеседование Senior Android разработчика. Часть 2

Фрагмент технического собеседования Senior Android Developer по Kotlin: generics, inline-функции, корутины и Flow. Вопросы чередуются с примерами кандидата и уточнениями по теоретическим деталям.

Мурагуль
  • Опубликовано на YouTube:
  • Просмотры на YouTube: 1,1 тыс.
  • Лайки на YouTube: 23
Открыть на YouTube

Таймлайн

Коротко о видео

Во второй части собеседования обсуждают Kotlin Generics, inline-функции, корутины и Flow. Кандидат приводит пример обобщённого RecyclerView-адаптера с ViewHolder, затем отвечает на вопросы о границах типов, star projection, стирании типов и `reified`. Во второй половине разговора разбирают работу приостановок корутин, CoroutineContext, Job/SupervisorJob, а также горячие и холодные Flow, backpressure, контекст, ошибки и базовые операторы.

Затронутые темы

Что взять на заметку

  • Уметь объяснить практическое применение generics на примере связки RecyclerView Adapter, ViewHolder и типа элемента: типизация избавляет от небезопасных cast.
  • Подготовить верхние и нижние границы типов и принцип PECS: Producer Extends, Consumer Super; в Kotlin — соответствующие направления `out` и `in`.
  • Различать star projection, стирание generic-типов во время выполнения и случай, когда `inline` вместе с `reified` даёт доступ к информации о типе.
  • Разобраться в назначении `inline`, `crossinline` и `noinline`, а также отличать их от value classes и `const val`.
  • Уметь описать корутины без утверждения, что они создают поток: suspend-вызов освобождает поток и продолжает выполнение через сохранённое состояние/continuation.
  • Знать состав и назначение CoroutineContext, различия Job и SupervisorJob и последствия ошибки дочерней корутины для соседних задач.
  • Для Kotlin Flow подготовить различия hot/cold потоков, backpressure, переключение контекста в цепочке, обработку ошибок и роли `map`, `transform`, `filter`, `emit` и `collect`.

Рекомендуем посмотреть