基 Forms & Search · 入力
0/3 Реактивные паттерны для пользовательского ввода: поиск, автосохранение, защита от двойной отправки.
● Typeahead — поиск с подсказками ● Autosave — фоновое сохранение формы ● Submit protection — защита от двойной отправки 操 HTTP & Loading · 通信
0/4 Сетевые сценарии: параллельные загрузки, retry-стратегии, кеш ответов.
● Parallel uploads — параллельная загрузка с лимитом ● Retry с backoff — устойчивость к сбоям ● Cache — shareReplay для общих ответов ● Polling — периодическое обновление данных Управление подписками и завершением потоков на уровне компонента.
● Cancel on destroy — takeUntil(destroy$) ● Idle auto-logout — выход по бездействию События DOM и пользовательские жесты через композицию потоков.
● Drag handler — mouseDown → mouseMove → mouseUp Продвинутые сценарии форм: async validation, связанные поля, diff, undo/redo, drafts, очереди submit и VM.
● Async validation — проверка username/email ● Dependent controls — каскадные поля формы ● Dirty diff — отправляем только изменённые поля ● Undo/redo — история изменений формы ● Local draft restore — сохранение черновика локально ● Submit queue — отправки строго по порядку ● Form VM — canSubmit/errors/preview одним потоком Потоки маршрутизации: параметры URL, query filters, spinner навигации, аналитика и dirty guard.
● Route param load — загрузка по id из URL ● Query params filters — URL как состояние фильтров ● Router spinner — глобальная загрузка навигации ● Router analytics — переходы страниц ● Dirty leave confirm — подтверждение ухода со страницы 極 HTTP Advanced · 通信+
0/12 Сложные сетевые паттерны: цепочки запросов, кеш, dedupe, retry, polling, optimistic UI и offline queue.
● Dashboard load — несколько запросов в один VM ● Dependent HTTP chain — запрос зависит от ответа ● Infinite scroll — страницы без дублей ● Manual refresh — кнопка обновления + initial load ● Stale while revalidate — кеш сразу, сеть потом ● Cache invalidation — обновляем shareReplay cache ● In-flight deduplication — один запрос на один ключ ● Timeout fallback — API завис ● Conditional retry — повторяем только временные ошибки ● Job polling — ждём завершения экспорта ● Optimistic update — откат при ошибке ● Offline queue — отправка после reconnect 基 Angular Interop · 信号
0/5 Связка RxJS с современным Angular: DestroyRef, signals, outputs и resource-подход.
● takeUntilDestroyed — современная очистка Angular ● toSignal — Observable в Signal ● toObservable — Signal в Observable pipeline ● outputFromObservable — Observable как component output ● rxResource — Observable-backed resource Локальное состояние и VM-потоки без лишнего глобального store.
● Component VM — один поток для шаблона ● Local reducer store — scan как мини-store ● Reset on logout — чистим состояние сервиса ● Load state machine — idle/loading/success/error Realtime-паттерны для socket-like потоков, reconnect, multiplex, typing indicators, toast queue и SSE wrapper.
● WebSocket basic — входящие и исходящие сообщения ● WebSocket reconnect — backoff после разрыва ● WebSocket multiplex — каналы поверх одного сокета ● Typing indicator — печатает / перестал печатать ● Toast queue — уведомления по одному ● SSE wrapper — custom Observable с teardown 実 Events Advanced · 操作+
0/8 Продвинутые пользовательские события: shortcut layers, Escape stack, outside click, resize, scroll и жесты.
● Keyboard layers — global/list/modal shortcuts ● Escape stack — закрываем верхний слой ● Click outside — закрытие popover ● Resize breakpoint — responsive stream ● Scroll direction — sticky header ● Single vs double click — select или open ● Hover intent — меню без случайных открытий ● Long press — удержание кнопки Контроль нагрузки: batching, animation frame, rate limiting и независимые entity streams.
● Buffer analytics — батчим события ● Animation frame — плавные UI обновления ● Rate-limited queue — не душим backend ● Per-entity grouping — отдельный поток на id 高 Error Boundaries · 失敗
0/3 Границы ошибок: изоляция item-level fail, error-as-data и сохранение last good value.
● Per-item error isolation — один fail не ломает batch ● Error as data — materialize для безопасного UI ● Last good value — fallback на предыдущий успех 極 Testing & Marbles · 試験
0/3 Тестирование RxJS-поведения: marble-мышление, virtual time и проверка cleanup.
● Marble test typeahead — проверяем debounce/switchMap ● Marble test retry — время без настоящих timer ● Cleanup test — проверяем unsubscribe