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

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

Структура секции, формализация задачи, границы системы и архитектурные решения

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

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

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

    Структура секции, формализация задачи, границы системы и архитектурные решения

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

    Technical Director & Fellow, Т-Технологии

    Провёл сотни design-секций как интервьюер

    Помогаю готовить кандидатов на Senior+ и Staff

    Подкаст «Code of Leadership», канал @book_cube

  3. 3. План беседы

    Пять шагов к уверенному прохождению

    Где в найме применима design-секция

    Структура: context → requirements → architecture

    Формализация: Use Cases, User Story, JTBD, ATAM

    Границы, контракты, потоки и компоненты

  4. 4. 01. Где применима design-секция

    Грейды и место в воронке

  5. 5. Найм по уровням

    Junior / Middle / Senior / Senior+

    Junior/Middle — база и fit

    Senior — design/system thinking

    Senior+/Staff — design в центре

    Смотрим ширину зрелости

  6. 6. Где design-секция нужна обязательно

    Сигналы, что компания ждёт design-интервью

    Кандидат претендует на Senior, Senior+, Staff

    Роль предполагает проектирование подсистем

    Команда работает с распределёнными системами

    Есть требования к надёжности и масштабу

  7. 7. 02. Структура секции

    От названия до архитектуры

  8. 8. Пять шагов design-секции

    Канва, по которой идёт обсуждение

    Название и контекст

    Функциональные и нефункциональные требования

    Sizing — оценка нагрузки, объёмов, RPS, storage

    Архитектура: компоненты, потоки, trade-offs

  9. 9. 60 минут

    Ориентировочный тайминг

    5 мин — название и контекст, уточнения

    20 мин — требования и приоритизация

    5 мин — sizing на пальцах

    30 мин — архитектура, trade-offs, вопросы

  10. 10. 03. Формализация задачи

    Функциональные и нефункциональные требования

  11. 11. Что делает система

    Use Cases · Story · JTBD

    Use Cases — актор и система

    User Story — ценность для пользователя

    JTBD — работа продукта

    Один формат + приоритизация MVP

  12. 12. ATAM — как описывать -ilities

    Architecture Tradeoff Analysis Method

    Availability + Performance

    Scalability + Security

    Maintainability через год

    Quality Attribute Scenarios

  13. 13. Книги про требования

    Для подготовки

    Wiegers: Software Requirements

    Eyskens: Software Architecture for Busy Developers

    Bass/Clements/Kazman: Architecture in Practice

    ISO/IEC 25010: quality attributes

  14. 14. 04. Границы системы

    Контракты и интеграции

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

    Контракты наружу

    Клиенты: mobile / web / B2B

    Upstream: БД, очереди, внешние API

    Протоколы: REST, gRPC, async events

    SLA и граница public / internal API

  16. 16. Книги по интеграциям

    Канон design-секции

    Tanenbaum/van Steen — Distributed Systems

    Hohpe/Woolf — Integration Patterns

    Sam Newman — Building Microservices

    Kleppmann — DDIA

  17. 17. 05. Потоки и компоненты

    Сборка архитектуры

  18. 18. Компоненты системы

    Что рисуем на доске

    Edge — CDN, API Gateway, Load Balancer

    Compute — stateless services, BFF, воркеры

    Data — OLTP, кеши, search, blob

    Async/cross-cutting — events, auth, obs

  19. 19. Основные потоки

    Read / write paths

    Write path: данные до durability

    Read path: ответ клиенту и кеши

    Async path: фоновые задачи

    Failure path: отказ зависимости

  20. 20. Обсуждаем trade-offs

    Senior+ vs Senior

    Назвать 2+ альтернативы

    Сравнить по конкретным -ilities

    Выбор через приоритеты задачи

    Ограничения + migration path

  21. 21. Итоги

    Чек-лист перед интервью

    Context → Requirements → Sizing → Architecture

    Сначала формализуй, потом рисуй компоненты

    Используй ATAM для нефункциональных требований

    Проговаривай границы, контракты и trade-offs

  22. 22. Материалы

    Интервью, требования, trade-offs

    DDIA — Martin Kleppmann

    ATAM + Software Architecture in Practice

    C4 Model — Simon Brown: c4model.com

    ADR/RFC + Fundamentals of Architecture

  23. 23. Спасибо!

    polomodov.tech

    Все слайды и ссылки — в Telegram-канале

    Александр Поломодов, Technical Director & Fellow, Т-Технологии

    @book_cube