Формат — секция Mobile System Design до 1,5 часа. Сценарий наш: приложение курьера доставки. Пройдите шаги: уточните требования, оцените нагрузку, выберите решения, нарисуйте схему.
За смену курьер везёт 40 заказов. На каждый — 6 событий: принял, забрал, в пути, на месте, фото у двери, доставлено. Фото — около 300 КБ.
Сеть пропадает в метро, лифтах и подвалах на 5–20 минут. Клиент и диспетчер видят статус с задержкой, но статус «доставлено» нельзя потерять: от него зависит выплата курьеру.
В работе: Курьер нажал «Доставлено» в подвале — статус не должен пропасть и не должен прийти дважды.
Как проверяем
Шаги с вариантами и расчётами проверяем автоматически: число засчитано, если оно в пределах допуска от эталона. Схему вы оцениваете сами по чек-листу. Зачёт — схема набрала 60 % чек-листа и верны 70 % остальных пунктов. Ответ один на подход: после него показываем разбор.
Источник: Яндекс: секция Mobile System Design. Условие пересказано своими словами.
Давали на собеседовании?
Ответов пока мало — ваш поможет.
- Уточнить требования — Что уточнить?
- Оценить объёмы
- Модель синхронизации — Как синхронизировать действия курьера?
- Фоновая отправка — Как отправлять очередь, если приложение свернуто?
- Схема — Опишите слои приложения и путь события от нажатия до сервера.