Книга

«System Design. Пережить интервью», Чжиюн Тань

КнигаSystem Design. Пережить интервьюЧжиюн Тань

Обложка книги «System Design. Пережить интервью»

Эту книгу можно прочитать выборочно как дополнение к более цельным материалам по системному дизайну. Для первого знакомства с дизайн-интервью я бы её не советовал: автор пытается охватить слишком много тем, поэтому большинству из них не хватает глубины.

Мне книга была интересна с позиции интервьюера. System Design — одна из самых сложных секций в инженерной воронке найма: здесь нет готовых ответов, а проверять нужно не запоминание шаблонов, а умение мыслить в масштабе больших систем.

О чём книга

Книга разделена на две части. Примерно треть посвящена ходу собеседования и базовым техникам проектирования: сбору требований, анализу подводных камней, масштабированию и другим основам. Остальные две трети занимают разборы Flickr, CDN, Airbnb и других систем.

Из книги можно узнать:

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

Три идеи из книги

  1. Продумайте и обсудите снижение функциональности системы при сбоях. На интервью обычно проектируется высоконагруженная система, поэтому нужно учитывать ошибки и отказы её компонентов.
  2. Не забудьте про логирование, мониторинг и алертинг. Делать сложную архитектуру без наблюдаемости — медленное самоубийство. Необязательно проектировать каждую деталь: достаточно обозначить решение и углубиться, если интервьюер попросит.
  3. Не стесняйтесь спрашивать: «Есть ли другие пользовательские требования?» Интервьюер выступает в роли заказчика и помогает собрать требования. Из-за нервов легко упустить небольшое, но значимое ограничение.

Что мне не понравилось

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

Разборы систем понравились ещё меньше. Эта часть показалась мне перегруженной ненужными деталями, а некоторые решения вызвали вопросы. Большинство кейсов не привносят ничего нового: мессенджер и ленту Twitter уже только ленивый не проектировал.

Интересно было прочитать два менее типовых примера: сервис пакетного аудита баз данных и дашборд для топ-10 товаров Amazon. Ещё в книге много отсылок к другим материалам, на которые опирался автор.

Стоит ли читать

Если вы ещё ничего не читали по системному дизайну, лучше начать с книги Алекса Сюя: она понятнее и лучше структурирована. «Пережить интервью» стоит использовать как дополнение и выбирать только те главы, которые закрывают конкретный пробел в подготовке.