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

Прямой эфир: Android-собеседование в Тинькофф. Рефакторинг кода

Учебный разбор рефакторинговой секции Android-интервью: кандидат вслух анализирует и правит код с Flow, корутинами и ViewModel. После работы интервьюеры разбирают сильные стороны подхода и технические пробелы.

Mobile Dev
  • Опубликовано на YouTube:
  • Просмотры на YouTube: 7,6 тыс.
  • Лайки на YouTube: 178
Открыть на YouTube

Таймлайн

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

Это учебная трансляция Тинькофф Бизнес, прямо обозначенная авторами как не реальное собеседование: показан этап рефакторинга Android-кода в формате 30-минутного live coding. Сначала ведущий объясняет различие между техническим скринингом и полноценным интервью с секциями рефакторинга, теории и архитектуры. Затем кандидат разбирает ScreenViewModel с Kotlin Coroutines и Flow, обсуждает замену LiveData на StateFlow, работу с flatMapConcat, GlobalScope, жизненным циклом ViewModel и разделением ответственности; в конце интервьюеры дают предметный фидбэк.

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

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

  • На рефакторинговом интервью сначала разберитесь в назначении кода и проговорите ход мыслей, а не начинайте с переименований и code style.
  • Если предлагаете заменить LiveData на StateFlow, объясните причины и последствия в конкретной архитектуре, а не ограничивайтесь общим тезисом о совместимости с корутинами.
  • Не используйте GlobalScope для задач ViewModel: в обсуждении его связывают с риском продолжения работы после уничтожения ViewModel и возможными утечками; рассматривается viewModelScope.
  • Перед изменением цепочки Flow нужно понимать семантику операторов: отдельно упомянуты flatMapConcat, flatMapMerge, flatMapLatest и flowOn.
  • Не переносите асинхронную операцию из flow-цепочки в collect без проверки семантики: collect предназначен для обработки уже эмитированных элементов, в данном примере это поставило под вопрос корректность преобразования.
  • Инкапсулируйте внутреннюю логику ViewModel: интервьюер отмечает публичный метод, который можно сделать private, и риск выдачи наружу mutable LiveData.
  • Проверяйте распределение ответственности: длинную цепочку с бизнес-логикой, проверками и аналитикой стоит рассматривать с точки зрения выноса частей в другие слои или классы.

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