Как стать автором
Обновить

System Design для начинающих: всё, что вам нужно. Часть 1

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров55K
Всего голосов 26: ↑24 и ↓2+24
Комментарии19

Комментарии 19

Не подскажете хорошую книжку по System Design на английском? Популярные "System Design Interview" "Grokking the System Design" читал, они плохо систематизированы. То концепции без примеров, то примеры вида "сделать твиттер за 15 минут", то описание конкретных продуктов. Выглядит как компиляция разных статей без структурированного подхода. Например, клиент-сервер это не единственная архитектура. CAP теорема вне проблематики распределенных систем бессмысленна. Качественных характеристик, по которым можно сравнивать те или иные альтернативы, больше 30. Итд... Может есть фундаментальное, но более читабельное Кнута?

Мне в чате сильных программистов и уже архитекторов посоветовали данное произведение, оригинал на английском, так что должно подходить.

Ричардc М., Форд Н. - Фундаментальный подход к программной архитектуре

Мне очень нравится, обрывочные знания после неё структурировались

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

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

В этом контексте, если нету возможности изучать на реальных примерах на работе, можно изучать, как делали другие. Особенно полезно при этом смотреть на статьи про то, как что-то переделывал, обращая особое внимание на то, почему переделывали, какие были проблемы, как их решили.

Спасибо за комментарий, но интересует именно книга по System Design как референс студентам iSAQB.

Такой нет и быть, увы, не может. Системный дизайн - не какая-то дисциплина, а просто тип собеседований в некоторых компаниях.
Есть литература по архитектуре, есть много разных практик по конкретным направлениям, но все это недостаточно для даже очень базовой практики.

На английском среднее между фундаментальной теорией и "спроектировать твиттер за 15 минут" могу посоветовать книгу "Web Scalability for Startup Engineers". В ней последовательно освещены основные аспекты проектирования высоконагруженных систем.

Полистал. 10 летней давности, первое и видимо единственное издание, еще доконтейнерная эпоха. Но некоторые темы вроде SOLID и Asynchronous Processing актуальны, доступно и последовательно описаны. Спасибо, однозначно в закладки.

В ответ подскажу Software Architecture in Practice 4 - образец маппинга качественных характеристик на паттерны, где Microservice Architecture это лишь один из вариантов достижения Deployability.

Тебе для проектирования или для прохождения интервью? Обычно книжки, пригодные для одного - не пригодны для другого.
Фундаментальных книг, увы, нет, так как нет фундамента. Есть множество книжек по архитектуре, но все они бесполезны без реального практического опыта (да и с ним далеко не все полезны).
Для собеседований - надо читать ту книжку, которую читал конкретный интервьюер. Обычно это Алекс Чу. Для реальной работы книжки по интервью - бесполезны (скорее даже вредны)

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

Автор, подскажите пожалуйста, что переводили?

Киньте ссылку на оригинал.

Заранее спасибо!

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

Спасибо. Прошу прощения.

Шикардосная статья! Узнал кучу терминов на русском :) ибо проектирую 10+ лет для европки на английском.

Требую продолжения банкета перевода!

Спасибо за обратную связь. Будет продолжение) Вместе с этим вопрос для освещения в будущих материалах - какие части System Design хотите рассмотреть, изучить подробней?

>Общее время обработки процессором:
(10 000 запросов в секунду) * (10 мс) = 100 000 мс в секунду.

10К запросов в секунду умножаем на 10 миллисекунд и получаем 100К миллисекунд в секунду? Чивоооо?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации