Обзор книги “System Design Interview: An Insider’s Guide” — Part 2

Рис. “Содержание книги”

8. Design a url shortener

В этой главе автор предлагает реализовать сервис для сокращения ссылок. Эта задачка является классической для System Design Interview, например, ее очень подробно разобрали ребята из Yandex в своей статье про то, как у них устроены архитектурные секции. Но давайте ее кратко рассмотрим и здесь.

Рис. “Дизайн системы url shortener”
Рис. “Variants and characteristics of hashing”

9. Design a web crawler

Еще одна классическая задача для собеседований по проектированию распределенных систем. В ней требуется сделать web crawler для парсинга страниц в интернете.

Рис. “Дизайн системы web crawler”
Рис. “Устройство URL Frontier

10. Design a notification system

В этой системе предлагается создать систему нотификаций, которая позволит отправлять миллионы писем, смс и пушей в день. Каждый из вариантов отправки реализуется через сторонний шлюз, а в задаче предлагается спроектировать управляющую голову этой системы.

Рис. “Дизайн системы нотификаций”

11. Design a news feed system

Еще одна классическая задача для собеседований по проектированию распределенных систем. В ней требуется сделать новостную ленту как в соцсети.

Рис. “Дизайн ленты новостей”

12. Design a chat system

Еще одна классическая задача, в которой на этот раз предлагается построить чат. Чаты на самом деле бывают разными, но условия от автора выглядят следующим образом

Рис. “Дизайн чата”

13. Design a search autocomplete system

В этой задаче предлагается спроектировать систему для работы строки с autocomplete. Такая система может быть частью поиска интернет-магазина или поискового движка типа Google, Yandex, Bing.

Рис. “Дизайн search autocomplete system”

14. Design youtube

В этой задаче автор предлагает спроектировать систему по типу Youtube. В этой задаче большой акцент делается на использование CDN и параллелизацию работ по обработке видео, причем этой обработке уделяется достаточно много времени. Если интересно почитать оригинальную задачу автора, то предлагаю прочитать ее в книге. Но вместо нее я предлагаю глянуть задачу по ее мотивам, в которой идет некоторая комбинация подготовки видео и ленты видео загруженных людьми, на которых подписан пользователь. Подробнее про эту задачу можно прочитать в моей статье. Именно такую задачу я спрашивал в рамках публичного интервью по System Design, которое я провел на конференции C++ Russia 2022.

15. Design Google Drive

В этой задаче автор предлагает спроектировать простую версию Google Drive. В принципе, в таких системах обычно много функций, но мы ограничимся при проектировании следующими требованиями

Рис. “Дизайн Google Drive”

16. The learning continues

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

--

--

Director of digital ecosystem development department at Tinkoff. Bachelor at applied math, Master at system analysis, Postgraduate studies at economics.

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Alexander Polomodov

Alexander Polomodov

Director of digital ecosystem development department at Tinkoff. Bachelor at applied math, Master at system analysis, Postgraduate studies at economics.