D1 · Фреймворк System Design интервью (5 шагов)
Универсальная канва ответа с тайм-боксами. При смене требований возвращайтесь к шагу архитектуры — это сигнал зрелости для лида.
& Scope
5-10 мин"] --> B["2. API &
Data needs
5-10 мин"] B --> C["3. High-level
Architecture
10-15 мин"] C --> D["4. Deep Dive
15-20 мин"] D --> E["5. Wrap-up
1-5 мин"] E -. "адаптация при смене требований" .-> C
D2 · Слои клиентской архитектуры iOS
Чистое разделение слоёв с repository-паттерном и offline-first кэшем — то, что ждут от senior/lead в SD-секции.
SwiftUI / UIKit"] --> P["Presentation
ViewModel / Presenter"] P --> DOM["Domain
Use Cases"] DOM --> REPO["Repository"] REPO --> NET["Network
URLSession"] REPO --> CACHE[("Local Cache
memory + disk")] NET --> API["Backend API"] CACHE -. "offline-first" .-> REPO
D3 · Mental checklist на интервью
Линейная памятка, чтобы ничего не забыть в ходе обсуждения: от пользователей до мониторинга.
D4 · Кейс «Лента» (Feed) — поток данных
Пагинация, кэш картинок и пре-фетч, офлайн ранее загруженного, CDN для медиа.
pagination"] --> VM["FeedViewModel"] VM --> FR["Feed Repository"] FR --> MEM[("Memory cache")] FR --> DISK[("Disk cache
offline")] FR --> IMG["Image cache
+ prefetch"] end FR --> GW["API Gateway"] GW --> FS["Feed Service"] FS --> DB[("Posts DB")] FS --> CDN["CDN
media"] IMG --> CDN
D5 · Кейс «Чат / Мессенджер» — архитектура
Real-time через WebSocket, очередь исходящих с идемпотентностью, локальная БД и E2E-шифрование на клиенте.
retry/idempotency"] CVM --> LDB[("Local DB
messages")] CVM --> WS["WebSocket client"] end WS <--> CG["Chat Gateway
WebSocket"] CG --> MS["Message Service"] MS --> MQ[["Message Queue"]] MS --> MDB[("Messages DB")] MS --> PUSH["Push Notif
APNs"] OUTQ -. "resend on reconnect" .-> WS
D6 · Кейс «Ride-sharing (Uber)» — real-time tracking
Гео-индекс, матчинг, потоки геолокации от водителя и пассажира, состояние поездки.
quadtree/geohash")] GS --> MATCH["Matching engine"] GS --> TRIP[("Trip state DB")] GS --> MAPS["Maps / Routing"]
D7 · Кэширование: стратегии
Решение «отдать из кэша или сходить в сеть», обновление с TTL и три стратегии записи.
TTL"] UPD --> RET subgraph Стратегии direction TB CA["cache-aside"] WT["write-through"] WB["write-back"] end
D8 · Воронка собеседования в РФ-бигтех (техлид iOS)
Типичная последовательность секций от скрининга до оффера.
HR + tech"] --> S1["Алго-секция
лайвкодинг"] S1 --> S2["iOS tech-блок
Swift/рантайм/память"] S2 --> S3["System Design
Mobile Architecture"] S3 --> S4["Лид-секция
команда/продукт"] S4 --> OFF["Оффер"]
D9 · Дерево паттернов алгоритмов
Карта основных паттернов, по которой удобно повторять и закрывать пробелы.
D10 · Общий план подготовки (12 недель)
Алгоритмы — основной поток на 8 недель, System Design — параллельно с 4-й недели, затем финальный спринт.