
Как пройти System Design Interview
Подготовка и поведение на секции
Содержание слайдов
1. Как пройти System Design Interview
Подготовка и поведение на секции
2. Александр Поломодов
Роль на момент доклада · 2022
Александр Поломодов, CTO мобильного банка и привлечения, Тинькофф
Фокус — Курировал архитектурные вопросы
Контекст — Курировал System Design Interview · Интервьюировал технических руководителей
Курировал архитектурные вопросы
Курировал System Design Interview
Интервьюировал технических руководителей
3. От найма до поведения кандидата
Карта доклада
Найм и семь шагов
Требования, границы, потоки
Схемы, технологии, масштабирование
Поведение и материалы
4. System Design проверяет Senior и Senior+
Junior и Middle — без этой секции
5. Архитектура рождается по шагам
От условия задачи до уточнений
6. 02. Формализация
До первой линии на доске
7. Сначала уточните задачу
Сценарии, объёмы, приоритеты
Что входит и не входит
Кто и зачем пользуется
Какие объёмы ожидаются
Что важнее всего
8. Приоритеты направляют архитектуру
Сайзинг связывает требования с масштабом
9. Изучайте язык требований
Функциональность и архитектурные качества
UML Use Cases
User Story и JTBD
ATAM для компромиссов
Вигерс и Эйскенс
10. 03. Границы системы
Система в своём окружении
11. Граница начинается со сценария
Files, DB, API или Messaging
12. Понимайте путь каждого запроса
От контекста до балансировщика
C4 System Context
REST, RPC, GraphQL, AsyncAPI
OSI, TCP/IP, DNS
HTTP/1.1–HTTP/3 и WebSockets
13. 04. Потоки
Компоненты появляются из поведения
14. Happy path открывает исключения
Затем нагрузка и отказы частей
15. Проследите чтение и запись
С учётом архитектурных характеристик
Проследите read path
Проследите write path
Наложите ключевые NFR
Балансируйте read/write path
16. Выбирайте схему под вопрос
Что изучить для потоков
C4 показывает контейнеры
Sequence раскрывает взаимодействия
Activity описывает ветвления
IDEF0, DFD и BPMN — потоки
17. 05. Концептуальная схема
Сначала классы решений
18. Сначала ответственность, потом продукт
Stateful, stateless, данные и контексты
19. Соедините модель и хранение
Данные определяют доступ
RDBMS и классы NoSQL
ER и Class Diagram
DDD и bounded contexts
Twelve-Factor App
20. 06. Реальная схема
Технологии, гарантии, эксплуатация
21. Технология должна выдерживать обещание
Гарантии, мощность, домены отказа
22. Проектирование продолжается после запуска
Эксплуатация и развитие
Логи и мониторинг
Миграции схемы и данных
Инструменты SRE — руками
Книги SRE от Google
23. 07. Под нагрузкой
Разные состояния — разные рычаги
24. Состояние определяет масштабирование
Оркестраторы, Replication, Partitioning, Sharding
25. Масштабируйте под реальные обращения
Гарантии меняются вместе с топологией
Начните с паттернов доступа
Назовите модель согласованности
Читайте DDIA и Database Internals
Подтвердите нагрузочным тестом
26. Управляйте разговором, не угадывайте
Думайте вслух, реагируйте на подсказки
27. Углубляйтесь по четырём направлениям
Все ссылки — в посте «Книжного куба»
Требования и компромиссы
Сети и интеграции
Данные и распределённость
Надёжность и эксплуатация
28. Сначала смысл, затем технология
Семь шагов удерживают разговор целиком
polomodov.tech
Уточняйте, проводите потоки, объясняйте компромиссы
Александр Поломодов, Автор и спикер, ArchDays 2022
@book_cube