Вернуться в видеотекуПрямой эфир: Android-собеседование в Тинькофф. Рефакторинг кода
Учебный разбор рефакторинговой секции Android-интервью: кандидат вслух анализирует и правит код с Flow, корутинами и ViewModel. После работы интервьюеры разбирают сильные стороны подхода и технические пробелы.
- Направление
- Mobile
- Формат
- Мок-собеседование
- Компания
Т-Банк- Длительность
- 47 мин
Коротко о видео
Это учебная трансляция Тинькофф Бизнес, прямо обозначенная авторами как не реальное собеседование: показан этап рефакторинга 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.
- Проверяйте распределение ответственности: длинную цепочку с бизнес-логикой, проверками и аналитикой стоит рассматривать с точки зрения выноса частей в другие слои или классы.