Repolode
donnemartin

donnemartin/system-design-primer

Бесплатное руководство с открытым исходным кодом по проектированию крупномасштабных систем и подготовке к собеседованиям, с примерами решений и карточками Anki.

Звёзды
374,932
Форки
58,922
Открытые issues
628
Последний коммит
в прошлом месяце

Что это?

System Design Primer — это структурированная подборка материалов по проектированию крупномасштабных систем. В ней рассматриваются основные компромиссы: производительность и масштабируемость, задержка и пропускная способность, доступность и согласованность. Затем разбираются ключевые компоненты: DNS, CDN, балансировщики нагрузки, reverse proxy, базы данных (SQL и NoSQL), стратегии кэширования, асинхронный обмен сообщениями и протоколы взаимодействия, такие как TCP, UDP, RPC и REST.

Проект также помогает готовиться к собеседованиям. В нём описан пошаговый подход к ответам на открытые вопросы о проектировании систем и приведены подробные решения типовых задач: проектирование сокращателя URL, ленты в стиле Twitter, веб-краулера и социального графа. В отдельном разделе рассматриваются вопросы по объектно-ориентированному проектированию и приводятся решения в блокнотах.

Для повторения материала предусмотрены колоды Anki с интервальным повторением, а репозиторий доступен на многих языках. Материалы создаются и обновляются силами сообщества открытого исходного кода.

Ключевые возможности

  • 01Разбирает основные компромиссы, включая CAP, модели согласованности и числовые показатели доступности
  • 02Объясняет базовые компоненты: балансировщики нагрузки, кэширование, шардинг и очереди сообщений
  • 03Содержит подробные решения типовых вопросов на собеседованиях по проектированию систем
  • 04Включает упражнения по объектно-ориентированному проектированию с решениями в блокнотах
  • 05Содержит колоды карточек Anki для интервального повторения

Сценарии использования

  • Подготовка к этапам собеседования по проектированию систем на backend- и инфраструктурные позиции
  • Формирование базового понимания архитектуры распределённых систем
  • Повторение компромиссов перед проектированием масштабируемого сервиса
  • Повторение ключевых понятий с помощью карточек во время коротких занятий

Что важно знать

  • Не удалось определить лицензию по метаданным проекта, поэтому условия повторного использования неясны.

Темы

Частые вопросы

Что такое system-design-primer?
Бесплатное руководство с открытым исходным кодом по проектированию крупномасштабных систем и подготовке к собеседованиям, с примерами решений и карточками Anki. System Design Primer — это структурированная подборка материалов по проектированию крупномасштабных систем. В ней рассматриваются основные компромиссы: производительность и масштабируемость, задержка и пропускная способность, доступность и согласованность. Затем разбираются ключевые компоненты: DNS, CDN, балансировщики нагрузки, reverse proxy, базы данных (SQL и NoSQL), стратегии кэширования, асинхронный обмен сообщениями и протоколы взаимодействия, такие как TCP, UDP, RPC и REST.
system-design-primer можно использовать бесплатно? Какая у него лицензия?
system-design-primer распространяется с открытым исходным кодом под лицензией Other. Перед использованием в коммерческих продуктах проверьте условия лицензии.
system-design-primer всё ещё поддерживается?
Обновлялся за последние 6 месяцев. Последний коммит в system-design-primer — 15 сент. 2026 г..
Для чего можно использовать system-design-primer?
Подготовка к этапам собеседования по проектированию систем на backend- и инфраструктурные позиции Формирование базового понимания архитектуры распределённых систем Повторение компромиссов перед проектированием масштабируемого сервиса Повторение ключевых понятий с помощью карточек во время коротких занятий
Где скачать system-design-primer?
Исходный код и инструкции по установке — на GitHub: https://github.com/donnemartin/system-design-primer

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Китайскоязычное руководство по подготовке к собеседованиям на Java backend: основы CS, базы данных, распределённые системы, проектирование систем и разработка AI-приложений.

159,2 тыс.46,1 тыс.JavaScriptApache-2.0Обновлён 5 дней назад