intermediate
Граничные случаи
Выявляйте empty, error, loading, permission, concurrency, localization, mobile и degraded-service до production-сюрпризов.
Edge cases — состояния не happy path, но неизбежные в production: пустые списки, ошибки валидации, unauthorized access, частичные данные, timeouts, concurrent edits, пробелы локализации, mobile constraints и degraded dependencies.
| Категория | Примеры для интервью | |-----------|---------------------| | Empty / null | Нет элементов, первый вход, удалённый parent | | Errors | Невалидный input, upstream 5xx, rate limits | | AuthZ | Неверная роль, истёкшая сессия, cross-tenant leak | | Concurrency | Double submit, stale read, lost update | | Degraded | CDN down, feature flag off, read-only mode |
Сильные требования группируют edge cases по user-visible behavior, а не только по HTTP status.
На интервью: для «invite teammate» — duplicate invite, revoked invite, SSO-only tenant, лимит seats, bounce email.
Типовые ошибки: design только под demo account; игнор idempotency; бесконечный loading без timeout messaging.
Компромисс — широта анализа edge cases против thin slice, который всё же покрывает highest-risk states.
Чеклист:
- Empty, error и permission paths.
- Concurrency и idempotency.
- Slow, offline и degraded service.
- Приоритет по user impact и likelihood.