Код-ревью Middle UML обновлено
Ревью диаграммы последовательностей оплаты
Вопрос
Диаграмма последовательностей оплаты в PlantUML. Найди ошибки и пробелы.
@startuml
Клиент -> Магазин: оформить заказ
Магазин -> Банк: списать деньги
Банк --> Магазин: успех
Магазин -> Склад: зарезервировать товар
Склад --> Магазин: ок
Магазин --> Клиент: заказ оплачен
@enduml
Коротко
Хорошая диаграмма показывает и успешный путь, и альтернативы через alt: отказ, таймаут, компенсации. Порядок «резерв, затем оплата» снижает число возвратов, а повторы платежей защищают ключом идемпотентности.
Что должен найти ревьюер
- Ошибкастрока 3Деньги списываются до резерва товара: если товара нет, придётся делать возврат. Обычно сначала резерв, потом оплата
- Ошибкастрока 4Нет ветки alt на отказ банка и таймаут: что видит клиент, что с заказом
- Ошибкастрока 6Нет ветки на отказ склада и компенсации (возврат денег)
- Безопасностьстрока 3Нет идемпотентности при повторе запроса к банку после таймаута: риск двойного списания
- Стильстрока 7Ответ клиенту не учитывает асинхронность: подтверждение банка часто приходит позже (вебхук), нужен промежуточный статус
Разбор
Хорошая диаграмма показывает и успешный путь, и альтернативы через alt: отказ, таймаут, компенсации. Порядок «резерв, затем оплата» снижает число возвратов, а повторы платежей защищают ключом идемпотентности.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.