System Design: чьё кунг-фу сильней

Мы все в той или иной степени архитекторы. А для архитектора всегда была важна насмотренность и широта знаний. Но где её получить, сидя на одном проекте долгие годы? Как минимум, часть информации можно найти в книгах. Конечно, никто не будет досконально описывать архитектуры реальных систем, но принципы построения больших систем найти можно.

Если цель – расширить кругозор и понять базовое устройство крупных распределённых систем, лучше начать с книг по System Design (Interview). Формат подобных книг позволяет за раз рассмотреть несколько кейсов и увидеть, как теория применяется на практике.

Для обозначенной цели могу порекомендовать две книги:

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

Книга Alex Xu ценна тем, что идёт от простого к сложному. Содержимое предыдущих глав используется в последующих. В итоге получается целостный материал, который будет понятен без особой предварительной подготовки. В каждом кейсе автор четко выдерживает формат повествования, к которому привыкаешь практически сразу. Кейсы описаны кратко, но в то же время достаточно понятно. В конце решения накидываются варианты возможных дополнительных вопросов, но практически не рассматриваются альтернативные архитектуры. Пожалуй, лаконичность и легкость подачи материала – главные драйверы успеха этой книги.

Книга Zhiyong Tan выполнена в похожем стиле, но требует от читателя гораздо больше подготовки. Иначе говоря, новичкам чтение может не принести пользу. В первой части автор заставляет вспомнить минимально необходимый базис, не пытаясь даже объяснить некоторые детали. Если Alex Xu пытается заполнить пробел, то Zhiyong Tan в конце каждой главы даёт ссылки на дальнейшее изучение. В связи с этим по началу не понимаешь, что происходит, но основная задумка в том, чтобы читатель понял, что ещё нужно изучить прежде, чем начинать что-то проектировать или пойти на интервью. Вторая часть посвящена разбору кейсов; и главы также логически взаимосвязаны. Ключевое и самое ценное в повествовании – это рассмотрение нескольких возможных архитектур и векторов развития. С этой целью от начала и до конца каждого кейса накидывается куча вопросов, которые должен задавать архитектор. Вместе с этим идеи некоторых возможных решений формулируются настолько кратко и небрежно, что без наличия опыта понять их будет очень трудно. По сути, книга активно демонстрирует архитектурное мышление и процесс поиска компромиссов.

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


Кстати, если вы решитесь купить книгу Zhiyong Tan в русском переводе, то сразу скажу, что перевод читается тяжело, а некоторые термины переведены крайне отвратительно. В этом отношении перевод книги Alex Xu выполнен почти идеально.



Понравилась статья?

Посмею напомнить, что у меня есть Telegram-канал Архитектоника в ИТ, где я публикую материал на похожие темы примерно раз в неделю. Подписчики меня мотивируют, но ещё больше мотивируют живые дискуссии, ведь именно в них рождается истина. Поэтому подписывайтесь на канал и будем оставаться на связи! ;-)

Статьи из той же категории: