«System Design. Подготовка к сложному интервью», Алекс Сюй
В продолжение темы книг по system design я решил сделать обзор на уже прочитанную (и недавно перечитанную) книгу Алекса Сюя «System Design. Подготовка к сложному интервью».
В своё время по этой книге я готовился к прохождению сисдиза на текущее место работы. Книга тогда мне изрядно помогла, поэтому мне стало вдвойне интересно перечитать её на фоне крайне неудачной книги Чжиюна Таня «System Design. Пережить интервью».
⭐️ О чём книга
Книга содержит алгоритм прохождения собеседования по архитектуре и примеры подобных собеседований. Также Сюй верхнеуровнево касается тем масштабирования систем для работы под высокой нагрузкой.
В книге раскрываются следующие темы: ➡️ Сценарий прохождения собеседования по дизайну ➡️ Какие вопросы нужно обязательно задать интервьюеру ➡️ Примеры проектирования систем «как бы на собеседовании»
⭐️ 3 идеи из книги 🟡Разберитесь в задаче до начала проектирования. Эту ошибку я много раз видел на опыте: кандидат бросается проектировать систему, толком не разобравшись даже с функциональными требованиями. Чаще всего такой подход приводит к тому, что систему приходится переделывать.
🟡Нет правильных или неправильных ответов. Конечно, у интервьюера в голове есть некоторое «эталонное решение», но оно не является единственно правильным. Важно не просто предложить какое-то решение, а ещё и обосновать его.
🟡Проектируйте от общего к частному. Иногда кандидаты закапываются в какие-то малозначимые детали и в итоге не завершают проектирование системы в целом. Сначала предложите верхнеуровневую архитектуру, а потом уже занимайтесь детализацией.
⭐️ Мои впечатления
На второе прочтение книга Сюя мне понравилась ещё больше, чем в первый раз. Она представляет собой пример хорошо спроектированного читательского опыта: сначала даётся теоретический минимум, а затем эта теория разбирается на задачках. При этом задачки тоже выстроены в логическую цепочку, в которой наработки из предыдущей задачи могут использоваться в последующих (например, проектирование Twitter Snowflake в дальнейшем применяется ещё в нескольких системах).
Но стоит отметить, что книга очень поверхностная. Это нормально — впихнуть все покрытые автором темы с высокой детализацией в одну книгу просто физически невозможно. Поэтому не рассчитывайте получить из неё глубокие технические знания или идеи — она скорее подойдёт как справочник и даст направление для дальнейшего изучения.
В целом книгу очень рекомендую, даже если вы не планируете в ближайшее время проходить сисдиз. Как минимум, вы посмотрите на проектирование разных систем и найдёте у себя слабые места, которые стоит подтянуть. Ну или поймёте, что вы капитальный красавчик и всё знаете :)
P.S. Со следующей недели автор канала в лице меня уходит в отпуск на две недели. Я решил провести небольшой эксперимент и писать от вдохновения. Поэтому будет парочка постов с циклами, которые у меня всё руки не доходили собрать, парочка обзоров книг по пятницам и что-то импровизированное :)
Все мои обзоры книг доступны по тегу #обзор_книги и в этом посте.
➖➖➖➖➖➖➖➖➖➖➖ 📝 @ulshinblog
В этом посте были ссылки, но мы их удалили по правилам Сетки