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

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

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

Не так давно вышла новая книга с громким названием «Пережить интервью». Конечно же, мне стало интересно её прочитать.

⭐️ О чём книга

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

В книге раскрываются следующие темы: ➡️ Как обычно проходит интервью по системному дизайну ➡️ Как собирать функциональные и нефункциональные требования ➡️ Как учесть нагрузку и масштабирование при проектировании системы ➡️ Как (в очередной раз) спроектировать мессенджер или ленту новостей

⭐️ 3 идеи из книги 🟡Продумайте и обсудите снижение функциональности системы при сбоях. Обычно на интервью проектируется высоконагруженная система, поэтому нужно заложить потенциальные ошибки и отказы в каждом её компоненте.

🟡Не забудьте про логирование, мониторинг и алертинг. Делать сложную архитектуру без наблюдаемости — медленное самоубийство. Не обязательно проектировать каждую деталь, достаточно будет просто упомянуть и немного углубиться при необходимости.

🟡Не стесняйтесь спрашивать: «Есть ли другие пользовательские требования?» Интервьюер обычно выступает в роли бизнес-заказчика и помогает собрать требования. На собеседовании могут шалить нервишки, поэтому упустить какое-то небольшое, но крайне значимое требование очень легко.

⭐️ Мои впечатления

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

Дизайн систем мне понравился ещё меньше. Эта часть книги показалась мне излишне перегруженной ненужными деталями, а некоторые решения вызывают большие вопросы. К тому же большинство дизайнов не привносят ничего нового, а просто дублируют то, что уже есть в открытом доступе (тот же мессенджер или ленту Twitter уже только ленивый не проектировал).

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

Если вы ни разу не читали ничего по дизайну, лучше начните с книги Сюя (обзор напишу через недельку-две). Она гораздо понятнее и лучше структурирована. Эту же можно прочитать выборочно, как дополнение.

Все мои обзоры книг доступны по тегу #обзор_книги и в этом посте.

➖➖➖➖➖➖➖➖➖➖➖ 📝 @ulshinblog


В этом посте были ссылки, но мы их удалили по правилам Сетки

«System Design. Пережить интервью», Чжиюн Тань
System Design — одно из самых сложных интервью в инженерной воронке найма | Сетка — социальная сеть от hh.ru «System Design. Пережить интервью», Чжиюн Тань
System Design — одно из самых сложных интервью в инженерной воронке найма | Сетка — социальная сеть от hh.ru