advanced
Functional requirements
State what the system must do as concrete flows, operations, and visible product behavior. Объясняйте это как practical interview step, not a memorized checklist.
Функциональные требования описывают, что система делает: видимые пользователю операции, API, workflow и изменения данных. Формулируйте глаголами с акторами — «пользователь публикует сообщение», «админ банит аккаунт», «система шлёт digest» — а не технологиями.
Группируйте потоки по приоритету, чтобы high-level design сначала покрыл критический путь. Свяжите каждый поток с входами, выходами и ожиданиями по согласованности для последующих API и data model.
На интервью: перечислите пять–семь ключевых операций по промпту, отметьте sync и async и укажите потоки со strong consistency.
Типовые ошибки: список фич без user journey; смешение функциональных и нефункциональных пунктов; edge cases до рабочего happy path.
Компромисс — гибкость против сложности: знайте, когда достаточно более простого пути.
Чеклист:
- Перечислите основные операции пользователя и системы.
- Разделите must-have и nice-to-have.
- Отметьте sync/async по операциям.
- Свяжите потоки с создаваемыми и читаемыми данными.