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 по операциям.
  • Свяжите потоки с создаваемыми и читаемыми данными.