Сценарий проходит через проверку запроса, создание заказа, резерв, оплату и подтверждение. Каждый шаг имеет явный результат; ошибки требуют отдельного состояния, а не молчаливого перехода к следующему шагу.
Как описать последовательность оформления заказа
Сценарий проходит через проверку запроса, создание заказа, резерв, оплату и подтверждение. Каждый шаг имеет явный результат; ошибки требуют отдельного состояния, а не молчаливого перехода к следующему шагу.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Опишите сценарий оформления заказа с резервированием товара и оплатой. Для каждого шага укажите основные входные данные, результат и поведение при отказе. Списание не должно происходить до успешного резерва.
Ответ
Сценарий проходит через проверку запроса, создание заказа, резерв, оплату и подтверждение. Каждый шаг имеет явный результат; ошибки требуют отдельного состояния, а не молчаливого перехода к следующему шагу.
Пример основного пути:
- Клиент передаёт позиции и ключ идемпотентности; сервер проверяет количество и рассчитывает цену.
- Создаётся заказ со снимком суммы, валюты и состава.
- Склад получает ID заказа и позиции; возвращает ID и срок резерва либо отказ.
- При успешном резерве платёжный сервис получает сумму, валюту и ID заказа.
- Подтверждённый результат оплаты переводит заказ в оплаченный; затем начинается исполнение.
Если резерв не получен, платёж не запускают. При подтверждённом отказе оплаты резерв освобождают. Таймаут оплаты — неизвестный результат, а не доказанный отказ: сначала нужна сверка состояния. Истечение резерва и поздняя успешная оплата требуют отдельного правила восстановления или возврата. Корреляционные ID связывают шаги, а идемпотентность защищает от повторов.