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

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

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

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

В форматах:a4.pdfиios.ePubпредставлены файлы от издательства.

Жанры: Программирование, Зарубежная компьютерная литература
Цикл: Не является частью цикла
Год публикации: 2018

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



2018

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

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

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

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

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

ISBN 978-5-4461-0772-8


© ООО Издательство "Питер", 2018


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

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


Предисловие

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

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

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

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

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

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


Вам будет интересно
Прошло почти двадцать лет с тех пор как появился Манифест Agile. Легендарный Роберт Мартин (Дядя Боб) понял, что пора стряхнуть пыль с принципов Agile, и заново рассказать о гибком подходе не только новому поколению программистов, но и специалистам из других отраслей. Автор полюбившихся айтишникам книг «Чистый код», «Идеальный программист», «Чистая архитектура» стоял у истоков Agile. «Чистый Agile» устраняет недопонимание и путаницу, которые за годы существования Agile усложнили его применение п...
Читать онлайн
Всех программистов, которые добиваются успеха в мире разработки ПО, отличает один общий признак: они больше всего заботятся о качестве создаваемого программного обеспечения. Это – основа для них. Потому что они являются профессионалами своего дела.В этой книге легендарный эксперт Роберт Мартин (более известный в сообществе как «Дядюшка Боб»), автор бестселлера «Чистый код», рассказывает о том, что значит «быть профессиональным программистом», описывая методы, инструменты и подходы для разработки...
Читать онлайн
В данной части учебного пособия излагаются основы организации и функционирования компьютеров. Рассматриваются показатели производительности компьютеров и процессоров, приведена структура компьютера, описаны её основные компоненты. Подробно рассмотрен центральный процессор, включая его структуру, особенности системы команд, принцип конвейерной обработки команд, основные режимы работы, особенности построения и функционирования современных микропроцессоров. Рассмотрены основные характеристики и раз...
Читать онлайн
В книге рассказывается о целостном подходе к оценке кандидатов при приёме на работу в сфере IT. Большое внимание уделено оценке личностных качеств кандидатов. Также рассказано о методах саморазвития качеств самих интервьюеров, необходимых для успешной работы в этой роли. Описанные в книге концепции проиллюстрированы реальными историями из богатой практики автора.Книга будет полезна тем, кто занимается собеседованиями разработчиков, а также всем, интересующимся темой найма в области IT.Рисунки, и...
Читать онлайн
Учебник состоит из трех основных разделов. Первый раздел содержит описание стандартной библиотеки шаблонов C++, во втором приводятся примеры ее применения, а третий представляет собой задачник из 300 учебных заданий, охватывающих все разделы стандартной библиотеки. При описании библиотеки учитываются нововведения стандарта С++11. В четвертом, дополнительном разделе дается обзор средств электронного задачника Programming Taskbook for STL, позволяющих выполнять учебные задания более быстро и эффек...
Читать онлайн
Эта книга поможет быстро приступить к созданию смарт-контактов Solidity и распределенных приложений DApp для блокчейна Ethereum. Она состоит из 12 уроков с практическими заданиями. Выполнив их, читатель сможет создавать собственные локальные узлы Ethereum, публиковать смарт-контракты и вызывать их методы, обмениваться данными между реальным миром и смарт-контрактами с помощью оракулов, работать с сетью Rinkeby. Книга адресована всем, кто интересуется передовыми технологиями в области блокчейнов ...
Читать онлайн
Данный материал предназначен в первую очередь для тех, кто только начал осваивать веб, не знает за какие ниточки потянуть и что сделать, чтобы понять, как это все работает. Не менее полезен материал будет и дизайнерам, которые рисуют макеты и слабо представляют, что с этим потом делает верстальщик. Скорее, он даже очень нужен, так как давно существует проблема взаимопонимания между дизайнерами и верстальщиками. В целом данный материала создавался для повышения компьютерной грамотности среди люде...
Читать онлайн
"Elastix – общайтесь свободно" – наиболее полная документация на русском языке по открытой платформе Elastix, предназначенной для создания Унифицированных Коммуникаций (Unified Communications). Во втором томе описано подключение Elastix к глобальным сетям коммуникаций, интеграция с сетью Skype, подключение абонентов к Elastix. На примере шлюзов Yeastar NeoGate GSM/E1/FXO рассмотрено подключение к мобильным сетям GSM, к цифровым сетям PRI ISDN, к аналоговым сетям PSTN. Разобраны варианты подключе...
Читать онлайн
В этой книге автор, сам прошедший путь от разработчика до менеджера в сфере IT, рассказывает неочевидные моменты, которые являются критически важными для правильного управления. Почему разработчики увольняются после повышения зарплаты? Как делать FixedPrice проекты? Почему Scrum не упрощает менеджмент? Книга содержит ответ на эти и многие другие вопросы. В книге есть много баек, которые показывают тяжёлую, но интересную жизнь менеджера в разработке. Иллюстратор обложки: Ксения Ерощенко. Иллюстра...
Читать онлайн
Цель этой книги – максимально быстро научиться применять нейросети (НС) для решения задач. Вы научитесь: создавать и обучать НС; обрабатывать изображения, цифры и тексты; встраивать НС в реальное приложение через REST API; выбирать архитектуру НС: число слоев, нейронов, функции активации, оптимизаторы, коэффициенты скорости обучения, функции ошибки, эпохи, батчи; работать с НС на основе многослойного перцептрона, свёрточными и рекуррентными; и даже сделать НС без ML-библиотек на чистом C#!...
Читать онлайн
Американский предприниматель Джон Дэвисон Рокфеллер – богатейший из богачей своего времени, первый в истории миллиардер, основатель нефтяной компании Standard Oil, которая занималась полным циклом производства и сбытом готовой продукции, рассказывает о главных событиях и людях своей жизни, деловых качествах, которые позволили ему, выходцу из обычной семьи, добиться колоссальных результатов в бизнесе и высокого общественного положения. Разносторонний опыт столь успешной личности, отношение к делу...
Читать онлайн
Авторы приглашают читателей в увлекательную прогулку по Загородному проспекту, который славится далеко не рядовой историей. Вы увидите не похожие друг на друга здания, познакомитесь с владельцами и архитекторами строений, а также жильцами домов: именитыми чиновниками, врачами, литераторами, драматургами, режиссерами, актерами, музыкантами и самыми обычными людьми.На страницах книги вы найдете множество любопытных фактов из истории Загородного проспекта. Узнаете о названиях проспекта, закрепивших...
Читать онлайн
Это была война на уничтожение и порабощение миллионов советских граждан – русских и евреев, белорусов и украинцев. Непосильный труд, насилие, голод, лагеря, сожженные вместе с жителями деревни, бесконечные рвы с телами расстрелянных. Оккупанты не щадили ни грудных детей, ни женщин, ни стариков. Это не было случайностью, не было сумасшествием и жаждой крови, это была заранее разработанная система уничтожения и порабощения народов нашей страны.Перед вами книга-напоминание, основанная на документах...
Читать онлайн
Умирающая планета, которая вот-вот столкнется с вторгшейся в ее систему планетой-гигантом. Ее давно уже сочли не представляющей научной ценности, но теперь – слишком поздно! – на ней обнаружены следы сразу нескольких цивилизаций.Для спасения хотя бы части бесценных археологических артефактов на планету отправляются сразу несколько экспедиций.Но почти все корабли землян гибнут во время землетрясения, и единственная надежда людей на спасение – долгий и смертельно опасный переход к последнему уцеле...
Читать онлайн