Код-ревью 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Нет числа: сколько RPS в обычный день и в пик, какой рост
- Производительностьстрока 2Среднее скрывает хвост медленных запросов: нужен перцентиль (p95, p99) и нагрузка, при которой измеряем
- Ошибкастрока 3Доступность 100% недостижима и непроверяема; нужна реальная цифра и окно измерения
- Безопасностьстрока 4Хранить номера карт в открытом виде нельзя: нарушение PCI DSS, данные карт не хранят или токенизируют
- Ошибкастрока 5«Регулярно» не проверить; нужен RPO или периодичность и срок хранения копий
- Стильстрока 6RTO есть, но нет RPO: неясно, сколько данных можно потерять
Разбор
NFR должны быть измеримыми и реалистичными: нагрузка в RPS, перцентили времени ответа, доступность вроде 99,95% за месяц, RPO и RTO вместе. Требование про открытые номера карт опасно само по себе: платёжные данные регулирует PCI DSS.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.