Коротко: комплект из десяти Jupyter-ноутбуков (на русском) для подготовки к системному дизайну — от сбора требований и расчёта нагрузки до модульного декомпозирования и защиты периметра.
intro.ipynb— чеклист для интервью: как вести беседу, фиксировать скоуп и держать инициативу, прежде чем погружаться в архитектуру.02. Сбор_требований_к_системе.ipynb— формализация функциональных/нефункциональных требований, явных/неявных допущений и приёмов ограничения функционала.03. Расчет-нагрузки-на-систему.ipynb— методика оценки трафика, RPS, пропускной способности и хранения на примере сокращателя ссылок и прочих сценариев.04. Высокоуровневый_дизайн.ipynb— паттерны фронт/бэк/хранилище, адаптация под разные домены и ранние решения по балансировке и кэшированию.05. Выбор_подходящих_баз_данных.ipynb— шпаргалка по ACID, CAP/PACELC и критериям выбора RDBMS, KV, колоночных и документных БД под разные SLA.06. Модульный_подход_к_дизайну.ipynb— декомпозиция интернет-магазина на доменные сервисы, очереди, продьюсеры/консьюмеры и точки интеграции.07. Масштабирование_системы.ipynb— практики балансировки, шардирования (range/hash/consistent), репликации и борьбы с "горячими" шардами.08. Повышение_отзывчивости.ipynb— стратегии кэширования по уровням, политики инвалидации/вытеснения и trade-off между скоростью и консистентностью.09. Подсистемы для поиска.ipynb— быстродействующие структуры для полнотекстового поиска, геопоиска и автодополнения (Trie, KMP, Ахо-Корасик, GeoHash, QuadTree).10. Дополнительные_подсистемы.ipynb— rate limiting (Token/Leaky/Fixed/Sliding), телеметрия (метрики, логи, трейсы) и базовые приёмы защиты API.
- Используй notebooks как конструктор ответа: сначала фиксируй требования/нагрузку, затем переходи к дизайну и специализированным подсистемам.
- В каждый ноутбук добавлены справочные таблицы и алгоритмические подсказки, которые можно конвертировать в диаграммы или репетировать напрямую перед интервью.