Часть 1
Глава 1. Обзор основных концепций проектирования систем....38
Глава 2. Типичный ход собеседования по проектированию систем....64
Глава 3. Нефункциональные требования....101
Глава 4. Масштабирование баз данных....130
Глава 5. Распределенные транзакции....169
Глава 6. Популярные сервисы для функционального секционирования....184
Часть 2
Глава 7. Дизайн Craigslist....212
Глава 8. Проектирование сервиса для ограничения частоты запросов....242
Глава 9. Проектирование сервиса уведомлений/оповещений....274
Глава 10. Проектирование сервиса пакетного аудита базы данных....305
Глава 11. Автозаполнение/опережающий ввод....331
Глава 12. Проектирование Flickr....357
Глава 13. Проектирование CDN....381
Глава 14. Проектирование приложения для обмена текстовыми сообщениями....406
Глава 15. Проектирование Airbnb....432
Глава 16. Проектирование ленты новостей....461
Глава 17. Проектирование дашборда для топ-10 товаров Amazon
по объему продаж....486
Приложение А. Монолитные архитектуры и микросервисы....511
Приложение Б. Авторизация OAuth 2.0 и аутентификация OpenID Connect....520
Приложение В. Модель C4....532
Приложение Г. Двухфазный коммит (2PС)....538
Собеседования по проектированию систем могут стать серьезной преградой даже для опытных разработчиков. К счастью, стоит немного подготовиться — и все эти вопросы, не имеющие однозначного ответа, и whiteboard-сессии станут вашим конкурентным преимуществом! В своей замечательной книге Чжиюн Тань делится практикой успешных собеседований и советами по дизайну систем, благодаря которым разработчики получали предложения от Amazon, Apple, ByteDance, PayPal и Uber.
«System design: пережить интервью» — мастер-класс по уверенному прохождению собеседования. Используя простые и легко запоминающиеся методы, вы научитесь быстро анализировать задачи, находить эффективные решения и четко объяснять свои идеи эксперту. В ходе работы с книгой вы не только приобретете навыки, необходимые, чтобы успешно пройти собеседование, но и попрактикуетесь в создании качественного дизайна.