Надёжность и 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-паттерны отображения ошибок