Пройдите шаги: уточните требования, оцените нагрузку, выберите решения, нарисуйте схему.
Клиент открывает обмен, видит «1 ¥ = 11,42 ₽», вводит 5000 ₽ и нажимает «Обменять». Курс меняется каждую секунду, но списать нужно ровно по тому, что клиент видел.
Для расчёта: в пик, когда рубль резко двигается, экран обмена открывают 2 млн раз в час. Пока экран открыт (в среднем минуту), приложение запрашивает курс раз в 5 секунд.
Курсы банка считает сервис ценообразования по котировкам биржи и выдаёт их раз в секунду для 12 валютных пар.
В работе: Экран обмена валюты открывают перед поездкой и при скачках курса, и в эти минуты нагрузка растёт в разы.
Как проверяем
Шаги с вариантами и расчётами проверяем автоматически: число засчитано, если оно в пределах допуска от эталона. Схему вы оцениваете сами по чек-листу. Зачёт — схема набрала 60 % чек-листа и верны 70 % остальных пунктов. Ответ один на подход: после него показываем разбор.
Источник: на задачах Т‑Банка: обмен валюты в приложении. Условие пересказано своими словами.
Давали на собеседовании?
- Уточнить требования — Что спросить у интервьюера?
- Оценить нагрузку
- Отдача курсов — Откуда отдавать курсы для 6,7 тыс. запросов в секунду?
- Обмен по показанному курсу — Как гарантировать, что обмен пройдёт по курсу с экрана?
- Схема — Опишите путь курса от ценообразования до экрана и путь обмена.