Код-ревью Middle UML обновлено

Ревью диаграммы последовательностей оплаты

Вопрос

Диаграмма последовательностей оплаты в PlantUML. Найди ошибки и пробелы.

@startuml
Клиент -> Магазин: оформить заказ
Магазин -> Банк: списать деньги
Банк --> Магазин: успех
Магазин -> Склад: зарезервировать товар
Склад --> Магазин: ок
Магазин --> Клиент: заказ оплачен
@enduml

Коротко

Хорошая диаграмма показывает и успешный путь, и альтернативы через alt: отказ, таймаут, компенсации. Порядок «резерв, затем оплата» снижает число возвратов, а повторы платежей защищают ключом идемпотентности.

Что должен найти ревьюер

  1. Ошибкастрока 3
    Деньги списываются до резерва товара: если товара нет, придётся делать возврат. Обычно сначала резерв, потом оплата
  2. Ошибкастрока 4
    Нет ветки alt на отказ банка и таймаут: что видит клиент, что с заказом
  3. Ошибкастрока 6
    Нет ветки на отказ склада и компенсации (возврат денег)
  4. Безопасностьстрока 3
    Нет идемпотентности при повторе запроса к банку после таймаута: риск двойного списания
  5. Стильстрока 7
    Ответ клиенту не учитывает асинхронность: подтверждение банка часто приходит позже (вебхук), нужен промежуточный статус

Разбор

Хорошая диаграмма показывает и успешный путь, и альтернативы через alt: отказ, таймаут, компенсации. Порядок «резерв, затем оплата» снижает число возвратов, а повторы платежей защищают ключом идемпотентности.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.