Вернуться в видеотекуСобеседование Android system design
Публичная учебная сессия Android System Design с проектированием мобильного совместного текстового редактора. Участники разбирают требования, архитектуру клиента, коллаборативное редактирование и дают детальный фидбек по ходу интервью.
- Направление
- Mobile
- Формат
- Видео
- Компания
Авито- Длительность
- 2 ч 11 мин
Коротко о видео
Публичное мок-собеседование по Android System Design: кандидат Андрей проектирует мобильный клиент совместного текстового редактора с форматированием, шарингом, офлайн-работой и одновременным редактированием. В ходе сессии он собирает требования, предлагает слои приложения, репозитории, пагинацию, постоянное соединение, дебаунс обновлений и UI-слой. Интервьюер подробно разбирает подход: хвалит подготовку и уточнение требований, но советует идти от пользовательских сценариев, чаще сверяться с требованиями и заранее фиксировать ключевые решения и неразобранные риски.
Затронутые темы
Что взять на заметку
- Перед схемой собрать и зафиксировать требования: число редакторов, набор стилей, доступ по ссылке или списку пользователей, список документов, офлайн-сценарий и приоритет MVP.
- Строить архитектуру от пользовательских сценариев и потоков данных, а не начинать с привычных паттернов вроде Repository или Use Case без конкретного назначения.
- Раз в несколько минут синхронизироваться с интервьюером: достаточно ли текущей детализации, куда углубляться дальше и какие требования ещё не покрыты.
- Для длинного изменяемого списка документов обсудить пагинацию; в разговоре кандидатом рассматривалась курсорная пагинация как вариант для нестабильного набора документов.
- Для совместного редактирования нужно отдельно обозначить частичную отправку изменений, постоянное соединение, конфликты, офлайн-синхронизацию, ошибки сервера и поведение при изменении или удалении уже неактуального фрагмента.
- Модель обновления должна учитывать изменения текста и стилей, а UI — применять инкрементальные изменения, чтобы не перерисовывать весь редактор при каждом событии.
- Если важный вопрос не успевают решить, его стоит явно записать как открытый риск, а не молча исключать из схемы; в этой сессии шаринг и офлайн-поведение остались недообсуждёнными.