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

Проводим собеседование в Android-команду Тинькофф в прямом эфире

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

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

Таймлайн

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

Авторский ролик — учебная имитация технического Android-интервью, а не текущее реальное собеседование. Кандидат рефакторит намеренно проблемный код контроллера сессии чата и отвечает на вопросы о synchronized, Kotlin object и companion object, Android Context, репозиториях, коллекциях, потоках, абстракциях и композиции. По итогам интервьюер в рамках этого скрининга считает кандидата подходящим для следующей секции, отмечая отдельные темы для повторения.

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

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

  • На скрининге важно не только заметить лишний synchronized, но и объяснить взаимное исключение, видимость данных и то, какой объект выступает монитором.
  • Нужно уверенно различать Kotlin object, companion object и статические члены в Java, включая момент инициализации singleton-объектов.
  • Бизнес-логика не должна зависеть от Android Context: если нужна строка или параметр, следует рассмотреть константу либо явный параметр; это упрощает тестирование и снижает риск утечек Activity Context.
  • При работе с Context нужно различать Application Context и Activity Context: у Activity есть привязка к окну, теме и локализованным ресурсам, поэтому одинаковый API может дать иной результат.
  • Следует замечать повторные обращения к репозиторию, возможность изменения коллекций между обращениями, мутабельное состояние и распределение ответственности за выбор потока.
  • Нужно уметь обосновать уровень абстракции API, минимизировать область видимости и предпочитать композицию наследованию, когда требуется расширять поведение без жёсткой связанности.
  • В демонстрационной задаче разрешалось менять код широко: полезно вслух предлагать альтернативы, например переход с RxJava на Kotlin coroutines, и задавать уточняющие вопросы.

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