Перейти к основному содержимому

Надёжность и UX

Retry-поведение

MUST

  • Автоматический retry допускается только для:
    • Network/Connectivity
    • временных ошибок 5xx
  • Retry не скрывает ошибку бесконечными попытками.

FORBIDDEN

  • Retry для ошибок валидации.
  • Retry для 4xx (кроме сетевых проблем).

Сохранение пользовательского прогресса

MUST

  • Ввод пользователя не теряется из-за ошибок сети или сервера.
  • Сброс формы при ошибке запрещён.

Исключение

  • Разрешено только если сценарий подтверждён бизнес-логикой и задокументирован.

Локализация ошибок

MUST

  • Все пользовательские сообщения локализованы через i18n.
  • Backend сообщения не считаются пользовательским текстом.
  • Raw backend сообщения не отображаются в UI.

Временные отклонения (MVP / small projects)

Допускается

  • Ограниченная классификация ошибок.
  • Отсутствие сложных retry-стратегий.

Обязательные ограничения

  • Raw backend messages не отображаются.
  • Ошибки не приводят к крашу приложения.
  • Пользовательский ввод не теряется.
  • Уровни отображения ошибок сохраняются логически корректными.

Когда возвращаемся к основным правилам

  • рост количества пользовательских сценариев
  • появление сложных форм и состояний
  • рост команды
  • необходимость унификации UX

Процедуры контроля (Code Review)

Ревьюер должен убедиться, что:

  • ошибка отображается на корректном уровне UI
  • в UI отсутствуют raw backend messages
  • retry используется там, где это безопасно
  • пользовательский ввод не теряется при ошибках
  • используются утверждённые UI-паттерны отображения ошибок