System Design. Подготовка к сложному интервью - Алекс Сюй - E-Book

System Design. Подготовка к сложному интервью E-Book

Алекс Сюй

0,0

Beschreibung

Интервью по System Design (проектированию ИТ-систем) очень популярны у работодателей, на них легко проверить ваши навыки общения и оценить умение решать реальные задачи. Пройти такое собеседование непросто, поскольку в проектировании ИТ-систем не существует единственно правильных решений. Речь идет о самых разнообразных реальных системах, обладающих множеством особенностей. Вам могут предложить выбрать общую архитектуру, а потом пройтись по всем компонентам или, наоборот, сосредоточиться на каком-то одном аспекте. Но в любом случае вы должны продемонстрировать понимание и знание системных требований, ограничений и узких мест. Правильная стратегия и знания являются ключевыми факторами успешного прохождения интервью! Что внутри? - Инсайдерская информация: что на самом деле нужно интервьюерам - 4-х шаговый подход к решению любой задачи system design - 16 вопросов из реальных интервью с подробными решениями. - 188 диаграмм, наглядно объясняющих, как работают реальные системы.

Sie lesen das E-Book in den Legimi-Apps auf:

Android
iOS
von Legimi
zertifizierten E-Readern
Kindle™-E-Readern
(für ausgewählte Pakete)

Seitenzahl: 209

Veröffentlichungsjahr: 2024

Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:

Android
iOS
Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Переводчик С. Черников

Алекс Сюй

System Design. Подготовка к сложному интервью. — СПб.: Питер, 2024.

ISBN 978-5-4461-1816-8

© ООО Издательство "Питер", 2024

Все права защищены. Никакая часть данной книги не может быть воспроизведена в какой бы то ни было форме без письменного разрешения владельцев авторских прав.

Оглавление

Об авторе
Введение
От издательства
1. Масштабирование от нуля до миллионов пользователей
Конфигурация из одного сервера
База данных
Вертикальное и горизонтальное масштабирование
Балансировщик нагрузки
Репликация базы данных
Кэш
Сеть доставки содержимого (CDN)
Веб-уровень без сохранения состояния
Центры обработки данных
Очередь сообщений
Логирование, метрики, автоматизация
Масштабирование базы данных
Миллионы пользователей
Справочные материалы
2. Приблизительные оценки
Степень двойки
Показатели латентности, которые должен знать любой программист
Показатели доступности
Пример: оценка требований к QPS и хранилищу для Twitter
Советы
Справочные материалы
3. Общие принципы прохождения интервью по проектированию ИТ-систем
Удачное интервью по проектированию ИТ-систем за 4 шага
4. Проектирование ограничителя трафика
Шаг 1: понять задачу и определить масштаб решения
Шаг 2: предложить общее решение и получить согласие
Шаг 3: подробное проектирование
Шаг 4: подведение итогов
Справочные материалы
5. Согласованное хеширование
Проблема повторного хеширования
Согласованное хеширование
Итоги
Справочные материалы
6. Проектирование хранилища типа «ключ–значение»
Понять задачу и определить масштаб решения
Хранилище типа «ключ–значение» на одном сервере
Распределенное хранилище типа «ключ–значение»
Итоги
Справочные материалы
7. Проектирование генератора уникальных идентификаторов в распределенных системах
Шаг 1: понять задачу и определить масштаб решения
Шаг 2: предложить общее решение и получить согласие
Шаг 3: подробное проектирование
Шаг 4: подведение итогов
Справочные материалы
8. Проектирование системы для сокращения URL-адресов
Шаг 1: понять задачу и определить масштаб решения
Шаг 2: предложить общее решение и получить согласие
Шаг 3: подробное проектирование
Шаг 4: подведение итогов
Справочные материалы
9. Проектирование поискового робота
Шаг 1: понять задачу и определить масштаб решения
Шаг 2: предложить общее решение и получить согласие
Шаг 3: подробное проектирование
Шаг 4: подведение итогов
Справочные материалы
10. Проектирование системы уведомлений
Шаг 1: понять задачу и определить масштаб решения
Шаг 2: предложить общее решение и получить согласие
Шаг 3: подробное проектирование
Шаг 4: подведение итогов
Справочные материалы
11. Проектирование ленты новостей
Шаг 1: понять задачу и определить масштаб решения
Шаг 2: предложить общее решение и получить согласие
Шаг 3: подробное проектирование
Шаг 4: подведение итогов
Справочные материалы
12. Проектирование системы мгновенного обмена сообщениями
Шаг 1: понять задачу и определить масштаб решения
Шаг 2: предложить общее решение и получить согласие
Шаг 3: подробное проектирование
Шаг 4: подведение итогов
Справочные материалы
13. Проектирование системы автозаполнения поисковых запросов
Шаг 1: понять задачу и определить масштаб решения
Шаг 2: предложить общее решение и получить согласие
Шаг 3: подробное проектирование
Шаг 4: подведение итогов
Справочные материалы
14. Проектирование YouTube
Шаг 1: понять задачу и определить масштаб решения
Шаг 2: предложить общее решение и получить согласие
Шаг 3: подробное проектирование
Шаг 4: подведение итогов
Справочные материалы
15. Проектирование Google Drive
Шаг 1: понять задачу и определить масштаб решения
Шаг 2: предложить общее решение и получить согласие
Шаг 3: подробное проектирование
Шаг 4: подведение итогов
Справочные материалы
16. Век живи — век учись
Существующие системы
Корпоративные блоги, посвященные проектированию
Послесловие
Рекомендуем прочитать

Об авторе

Алекс Сюй — опытный разработчик программного обеспечения и предприниматель. Ранее он работал в таких компаниях, как Twitter, Apple, Zynga и Oracle. Алекс получил степень магистра наук в Университете Карнеги-Меллона. Его страсть — проектирование и реализация сложных систем.

Введение

Мы весьма рады, что вы решили изучить особенности интервью по проектированию ИТ-систем вместе с нами. Из всех технических интервью именно на этом задают самые сложные вопросы. Претенденту предлагается спроектировать архитектуру программной системы: новостной ленты, поиска Google, системы мгновенных сообщений и т.д. Задачи такого рода наводят ужас, ведь у них нет единственно верных решений. Они обычно отличаются масштабностью и расплывчатостью. Допускаются свободные и неясные формулировки без стандартного или правильного ответа.

Интервью по проектированию ИТ-систем широко практикуются в компаниях, так как навыки общения и решения задач, которые можно проверить на этом этапе, необходимы в повседневной работе программиста. Ответы претендента оцениваются с учетом того, как он анализирует расплывчатую задачу и какие шаги он предпринимает для ее решения. При этом во внимание принимается то, как он объясняет свои идеи, обсуждает их с другими, оценивает и оптимизирует систему.

Здесь нет единственно правильных ответов. Как и в реальной жизни, на интервью обсуждают самые разные системы, каждую со своими нюансами. Претендент должен предложить архитектуру для достижения поставленных целей. Ход обсуждения может быть разным в зависимости от того, кто проводит интервью. Кто-то может выбрать общую архитектуру, чтобы пройтись по всем компонентам, а кто-то предпочитает сосредоточиться на одной или нескольких областях. Обычно ход мыслей всех участников интервью определяется тем, насколько хорошо они понимают системные требования, ограничения и узкие места.

Цель этой книги — предоставить надежную стратегию для решения задач по проектированию систем. Правильная стратегия и знания являются ключевыми факторами успешного прохождения интервью.

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

От издательства

Ваши замечания, предложения, вопросы отправляйте по адресу [email protected] (издательство «Питер», компьютерная редакция).

Мы будем рады узнать ваше мнение!

На веб-сайте издательства www.piter.com вы найдете подробную информа­цию о наших книгах.