К основному содержимому
Логотип ArchDays
ArchDays 2022 · 21 октября 2022

Как пройти System Design Interview

Подготовка и поведение на секции

/ Как пройти System Design Interview · ArchDays 2022

Содержание слайдов

  1. 1. Как пройти System Design Interview

    Подготовка и поведение на секции

  2. 2. Александр Поломодов

    Роль на момент доклада · 2022

    Александр Поломодов, CTO мобильного банка и привлечения, Тинькофф

    Курировал архитектурные вопросы

    Курировал System Design Interview

    Интервьюировал технических руководителей

  3. 3. От найма до поведения кандидата

    Восемь смысловых блоков

    Найм и семь шагов

    Требования, границы, потоки

    Схемы, технологии, масштабирование

    Поведение и материалы

  4. 4. System Design проверяет Senior и Senior+

    Не универсальный современный процесс найма

  5. 5. Архитектура рождается по шагам

    От условия задачи до уточнений

  6. 6. 02. Формализация

    До первой линии на доске

  7. 7. Сначала уточните задачу

    Сценарии, объёмы, приоритеты

    Что входит и не входит

    Кто и зачем пользуется

    Какие объёмы ожидаются

    Что важнее всего

  8. 8. Приоритеты направляют архитектуру

    Сайзинг связывает требования с масштабом

  9. 9. Изучайте язык требований

    Функциональность и архитектурные качества

    UML Use Cases

    User Story и JTBD

    ATAM для компромиссов

    Вигерс и Эйскенс

  10. 10. 03. Границы системы

    Система в своём окружении

  11. 11. Граница начинается со сценария

    Files, DB, API или Messaging

  12. 12. Понимайте путь каждого запроса

    От контекста до балансировщика

    C4 System Context

    REST, RPC, GraphQL, AsyncAPI

    OSI, TCP/IP, DNS

    HTTP/1.1–HTTP/3 и WebSockets

  13. 13. 04. Потоки

    Компоненты появляются из поведения

  14. 14. Happy path открывает исключения

    Потом добавляются сбои и углы

  15. 15. Разведите чтение и запись

    Проверьте нагрузку и отказ

    Проследите read path

    Проследите write path

    Наложите ключевые NFR

    Добавьте сбои и повторы

  16. 16. Выбирайте схему под вопрос

    Не смешивайте все обозначения

    C4 показывает контейнеры

    Sequence раскрывает взаимодействия

    Activity описывает ветвления

    DFD и BPMN показывают потоки

  17. 17. 05. Концептуальная схема

    Сначала классы решений

  18. 18. Сначала ответственность, потом продукт

    Stateful, stateless, данные и контексты

  19. 19. Соедините модель и хранение

    Данные определяют доступ

    RDBMS и классы NoSQL

    ER и Class Diagram

    DDD и bounded contexts

    Twelve-Factor App

  20. 20. 06. Реальная схема

    Технологии, гарантии, эксплуатация

  21. 21. Технология должна выдерживать обещание

    Гарантии, мощность, failure domains

  22. 22. Проектирование продолжается после запуска

    Наблюдаемость, изменения, восстановление

    Логи, метрики, трассировки

    Резервирование и восстановление

    Миграции схемы и данных

    SRE и Kubernetes Patterns

  23. 23. 07. Под нагрузкой

    Разные состояния — разные рычаги

  24. 24. Состояние определяет масштабирование

    Autoscaling, replication, partitioning, sharding

  25. 25. Масштабируйте под реальные обращения

    Гарантии меняются вместе с топологией

    Начните с access patterns

    Назовите модель консистентности

    Проверьте горячие ключи

    Подтвердите нагрузочным тестом

  26. 26. Управляйте разговором, не угадывайте

    Думайте вслух и замечайте подсказки

  27. 27. Углубляйтесь по четырём направлениям

    Полная библиография — в заметках

    Требования и компромиссы

    Сети и интеграции

    Данные и распределённость

    Надёжность и эксплуатация

  28. 28. Сначала смысл, затем технология

    Семь шагов удерживают разговор целиком

    polomodov.tech

    Уточняйте, проводите потоки, объясняйте компромиссы

    Александр Поломодов, Автор и спикер, ArchDays 2022

    @book_cube