Код-ревью Middle Функциональные и нефункциональные обновлено

Ревью нефункциональных требований

Вопрос

Нефункциональные требования к сервису онлайн-оплаты. Найди проблемы.

NFR-1. Сервис должен выдерживать высокую нагрузку.
NFR-2. Среднее время ответа API не более 1 секунды.
NFR-3. Доступность 100%.
NFR-4. Номера карт хранятся в базе в открытом виде для удобства поддержки.
NFR-5. Резервное копирование выполняется регулярно.
NFR-6. Время восстановления после аварии не более 30 минут.

Коротко

NFR должны быть измеримыми и реалистичными: нагрузка в RPS, перцентили времени ответа, доступность вроде 99,95% за месяц, RPO и RTO вместе. Требование про открытые номера карт опасно само по себе: платёжные данные регулирует PCI DSS.

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

  1. Ошибкастрока 1
    Нет числа: сколько RPS в обычный день и в пик, какой рост
  2. Производительностьстрока 2
    Среднее скрывает хвост медленных запросов: нужен перцентиль (p95, p99) и нагрузка, при которой измеряем
  3. Ошибкастрока 3
    Доступность 100% недостижима и непроверяема; нужна реальная цифра и окно измерения
  4. Безопасностьстрока 4
    Хранить номера карт в открытом виде нельзя: нарушение PCI DSS, данные карт не хранят или токенизируют
  5. Ошибкастрока 5
    «Регулярно» не проверить; нужен RPO или периодичность и срок хранения копий
  6. Стильстрока 6
    RTO есть, но нет RPO: неясно, сколько данных можно потерять

Разбор

NFR должны быть измеримыми и реалистичными: нагрузка в RPS, перцентили времени ответа, доступность вроде 99,95% за месяц, RPO и RTO вместе. Требование про открытые номера карт опасно само по себе: платёжные данные регулирует PCI DSS.

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

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