Чистая архитектура. Искусство разработки программного обеспечения

Чистая архитектура. Искусство разработки программного обеспечения

Роберт С. Мартин

Описание

«Идеальный программист» и «Чистый код» – бестселлеры Роберта Мартина, раскрывающие секреты профессионализма. «Чистая архитектура» углубляет тему, предлагая не просто варианты, а четкие рекомендации по построению архитектуры программного обеспечения. Мартин отвечает на ключевые вопросы дизайна и архитектуры, предоставляя практические советы для разработчиков всех уровней, системных аналитиков и архитекторов. Книга важна для карьерного роста и влияния на процессы разработки. Погрузитесь в искусство создания надежных и масштабируемых программных систем с помощью этой практической книги.

<p>Роберт Мартин</p><p>Чистая архитектура</p><p><emphasis>Искусство разработки программного обеспечения</emphasis></p>

2018

Переводчик А. Макарова

Технический редактор Н. Суслова

Литературный редактор Е. Герасимова

Художники Л. Егорова, С. Заматевская, Р. Яцко

Корректоры С. Беляева, Н. Викторова

ISBN 978-5-4461-0772-8

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

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

<p>Предисловие</p>

О чем мы говорим, когда обсуждаем архитектуру?

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

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

Здания имеют очевидную физическую структуру, независимо от материала, из которого они построены, от их высоты или ширины, от их назначения и от наличия или отсутствия архитектурных украшений. Их структура мало чем отличается – в значительной мере она обусловлена законом тяготения и физическими свойствами материалов. Программное обеспечение, напротив, никак не связано с тяжестью, кроме чувства серьезности. И из чего же сделано программное обеспечение? В отличие от зданий, которые могут быть построены из кирпича, бетона, дерева, стали и стекла, программное обеспечение строится из программных компонентов. Большие программные конструкции создаются из меньших программных компонентов, которые, в свою очередь, построены из еще более мелких программных компонентов, и т. д., вплоть до основания.

Говоря об архитектуре, можно сказать, что программное обеспечение по своей природе является фрактальным и рекурсивным, выгравированным и очерченным в коде. Здесь важны все детали. Переплетение уровней детализации также вносит свой вклад в архитектуру, но бессмысленно говорить о программном обеспечении в физических масштабах. Программное обеспечение имеет структуру – множество структур и множество их видов, – но их разнообразие затмевает диапазон физических структур, которые можно увидеть на примере зданий. Можно даже довольно убедительно утверждать, что при проектировании программного обеспечения архитектуре уделяется куда больше внимания, чем при проектировании зданий, – в этом смысле архитектура программного обеспечения является более многообразной, чем архитектура зданий!

Но физический масштаб привычнее людям, и они часто ищут его в окружающем мире. Несмотря на привлекательность и визуальную очевидность, прямоугольники на диаграммах PowerPoint не являются архитектурой программного обеспечения. Да, они представляют определенный взгляд на архитектуру, но принимать прямоугольники за общую картину, отражающую архитектуру, значит не получить ни общей картины, ни понятия об архитектуре: архитектура программного обеспечения ни на что не похожа. Конкретный способ визуализации – не более чем частный выбор. Этот выбор основан на следующем наборе вариантов: что включить; что исключить; что подчеркнуть формой или цветом; что, наоборот, затенить. Никакой взгляд не имеет никаких преимуществ перед другим.

Возможно, нет смысла говорить о законах физики и физических масштабах применительно к архитектуре программного обеспечения, но мы действительно учитываем некоторые физические ограничения. Скорость работы процессора и пропускная способность сети могут вынести суровый приговор производительности. Объем памяти и дискового пространства может ограничить амбиции любого программного кода. Программное обеспечение можно сравнить с такой материей, как мечты, но ему приходится работать в реальном, физическом мире.

Похожие книги

Чистая архитектура. Искусство разработки программного обеспечения

Роберт Сесил Мартин, Роберт С. Мартин

«Идеальный программист» и «Чистый код» – бестселлеры Роберта Мартина, показывающие путь к профессионализму. «Чистая архитектура» углубляет тему, предлагая не варианты, а четкие решения для достижения успеха в разработке программного обеспечения. Книга дает прямые ответы на ключевые вопросы архитектуры и дизайна, обязательна для разработчиков всех уровней, системных аналитиков, архитекторов и всех, кто хочет продвинуться по карьерной лестнице. Книга детально рассматривает структуру программного обеспечения, учитывая физические ограничения и реальные условия работы.

Жизнь в мире компьютерных игр

Сид Мейер, Дженнифер Ли Нунан

Эта книга – увлекательное путешествие в мир компьютерных игр глазами Сида Мейера, легендарного разработчика. Автор делится своим сорокалетним опытом создания игр, рассказывая о создании таких знаковых проектов, как Civilization, Pirates! и Railroad Tycoon. Книга написана с теплотой и ироничным юмором, раскрывая закулисные истории и вдохновение, стоящие за разработкой этих популярных игр. Впервые на русском языке. Погрузитесь в историю становления игровой индустрии и узнайте, как создаются шедевры.

Искусство Agile-разработки. Теория и практика гибкой разработки ПО

Шэйн Уорден, Джеймс Шор

Книга "Искусство Agile-разработки" предлагает практические рекомендации по повышению гибкости команд разработки ПО. Автор, Джеймс Шор, с более чем 20-летним опытом в Agile, объединяет лучшие практики экстремального программирования, Scrum, Lean, DevOps и других методологий. Книга поможет разобраться в тонкостях Agile и понять, подходит ли он вашей команде. В ней вы найдете подробные рекомендации по планированию, разработке и управлению проектами, а также примеры из реальной практики. Книга написана доступным языком и содержит множество практических советов. Она предназначена для разработчиков, менеджеров проектов и всех, кто интересуется гибкой разработкой ПО.

Dark Souls: за гранью смерти. Книга 1. История создания Demon’s Souls, Dark Souls, Dark Souls II

Дамьен Мешери

Эта книга – подробный анализ создания культовой серии Dark Souls. Авторы Дамьен Мешери и Сильвен Ромье исследуют боевые механики, лор, персонажей и сюжеты Demon's Souls, Dark Souls и Dark Souls II. Подробно изучены игровой процесс, вселенная, музыка и тематика. Книга раскрывает, как серия Souls стала классикой, и как она достигла фантастического успеха, основываясь на отзывах игрового сообщества. Подробное описание процесса разработки, включая эволюцию идей и взаимодействие с игроками, делает книгу ценным ресурсом для поклонников серии.