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

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

Как подготовиться и как вести себя на секции

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

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

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

    Как подготовиться и как вести себя на секции

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

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

    Курирую наши System Design Interview

    Провожу интервью по проектированию систем

  3. 3. Идём по секции шаг за шагом и заканчиваем советами

    План выступления

    Формализация и границы системы

    Основные потоки и концептуальная схема

    Реальная схема и масштабирование под нагрузку

    Советы и рекомендации для дальнейшего изучения

  4. 4. Секция разворачивается шаг за шагом

    От условия задачи до дополнительных вопросов

  5. 5. 01. Формализация

    Что кандидат делает до того, как начнёт рисовать

  6. 6. Сначала уточняющие вопросы, потом проектирование

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

    Задача даётся с функциональными требованиями

    И с нефункциональными

    Дальше — фаза уточняющих вопросов

    И только потом первая линия на доске

  7. 7. Архитектурные характеристики выбираются, а не перечисляются

    ATAM и желаемые характеристики

    High availability и data consistency

    High throughput и scalability

    Auditability

    Метод анализа компромиссов — ATAM

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

    Как система соединяется с окружением

  9. 9. Интегрироваться можно четырьмя способами

    Границы системы и её API

    Files, Database, API, Messaging

    API бывает REST/OpenAPI, RPC, GraphQL, AsyncAPI

    Рисовать можно в C4, UML, BPMN, IDEF0, DFD

    И описывать домены через DDD

  10. 10. 03. Потоки и схемы

    От основных сценариев до реальных технологий

  11. 11. Проектируем итеративно: сначала happy path

    Основные потоки и компоненты системы

    Сначала основной сценарий

    Потом исключительные потоки

    Компоненты появляются по мере проработки

    Схема растёт вместе с разговором

  12. 12. Концептуальная схема проверяется на консистентность

    Концептуальная и реальная схема

    Сначала концептуальная схема и её проверка

    Потом выбор конкретных технологий

    И желаемые архитектурные характеристики

    Дальше — масштабирование под нагрузку

  13. 13. 04. Советы и материалы

    Как пройти секцию и что почитать

  14. 14. Семь советов, и первый из них — про время

    Советы для успешного прохождения интервью

    Помнить о времени — секция идёт около часа

    Не начинать проектировать сразу

    Проговаривать ход мысли и быть самостоятельным

    Говорить уверенно только о том, что знаешь

  15. 15. Секция — это разговор, а не экзамен по схемам

    Что забрать с собой

    Требования уточняются до первой линии на доске

    Границы системы — это стиль интеграции и нотация

    Схема растёт итеративно от happy path

    Технологии выбираются под характеристики

    А время — ограничение, с которым надо считаться

  16. 16. Рекомендации для дальнейшего изучения

    Книги и ресурсы из финальной части доклада

    Вигерс «Software Requirements», Эйскенс «Software Architecture for Busy Developers»

    Таненбаум «Computer Networks» и «Distributed Systems»

    Хоуп «Enterprise Integration Patterns», Клеппман «Designing Data-Intensive Applications»

    Хононов «Learning DDD», Петров «Database Internals», Ибрям «K8s Patterns»

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

    polomodov.tech

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

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

    @book_cube