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

Чистая архитектура. Искусство разработки программного обеспечения
Название: Чистая архитектура. Искусство разработки программного обеспечения
Автор:
Жанры: Программирование | Зарубежная компьютерная литература
Серии: Нет данных
ISBN: Нет данных
Год: 2018
О чем книга "Чистая архитектура. Искусство разработки программного обеспечения"

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

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

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

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



2018

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

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

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

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

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

ISBN 978-5-4461-0772-8


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


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

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


Предисловие

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

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

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

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

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

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

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

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

Вильям Шекспир[1]

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

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

Гради Буч

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

Если вы думаете, что хорошая архитектура стоит дорого, попробуйте плохую архитектуру.

Брайан Фут и Джозеф Йодер

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

Это ведет нас прямиком к большой физической проблеме: путешествиям во времени. Как узнать, какие типичные изменения будут происходить, чтобы на основе этого знания принять важные решения? Как уменьшить трудозатраты и стоимость разработки без машины времени и гадания на кофейной гуще?

Архитектура – это набор верных решений, которые хотелось бы принять на ранних этапах работы над проектом, но которые не более вероятны, чем другие.

Ральф Джонсон

Анализ прошлого сложен; понимание настоящего в лучшем случае переменчиво; предсказание будущего нетривиально.

К цели ведет много путей.

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

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


С этой книгой читают
Прошло почти двадцать лет с тех пор как появился Манифест Agile. Легендарный Роберт Мартин (Дядя Боб) понял, что пора стряхнуть пыль с принципов Agile, и заново рассказать о гибком подходе не только новому поколению программистов, но и специалистам из других отраслей. Автор полюбившихся айтишникам книг «Чистый код», «Идеальный программист», «Чистая архитектура» стоял у истоков Agile. «Чистый Agile» устраняет недопонимание и путаницу, которые за г
Всех программистов, которые добиваются успеха в мире разработки ПО, отличает один общий признак: они больше всего заботятся о качестве создаваемого программного обеспечения. Это – основа для них. Потому что они являются профессионалами своего дела.В этой книге легендарный эксперт Роберт Мартин (более известный в сообществе как «Дядюшка Боб»), автор бестселлера «Чистый код», рассказывает о том, что значит «быть профессиональным программистом», опи
Эта книга состоит из двух частей: художественной, где рассказывается удивительная история мальчика, захотевшего стать белым хакером (хотя в ней, конечно же, есть и девочка, а также его друзья), и научно-популярной, в которой дается обучение (она так и называется в книге, ты увидишь ее, когда начнешь читать) программированию и разным другим компьютерным вещам, очень нужным в современном мире. Но на самом деле это единая история, позволяющая задума
Увлекательная книга, которая знакомит юных читателей с основами программирования через простые примеры и интерактивные задания. В каждой главе раскрываются ключевые концепции, такие как алгоритмы, переменные, циклы, ветвления и функции. Дети узнают, как составлять инструкции для компьютеров, решать задачи и создавать свои первые программы на языке Python. Простые объяснения, аналогии из повседневной жизни и практические задания помогут начинающим
Telegram Bot V2. Создание бота и Монетизация для профессионалов – это практическое руководство, которое шаг за шагом проводит вас через все этапы разработки и монетизации Telegram-ботов. В книге раскрыты технические аспекты настройки, интеграции API, UX/UI дизайна, а также современные стратегии монетизации, включая подписки, рекламу, партнёрские программы и донаты. Она подходит для опытных разработчиков, которые хотят создать востребованного бота
Python. Первый шаг в программировании для детей и начинающих – это практическое руководство, которое откроет дверь в мир программирования для самых юных и начинающих разработчиков. Книга объясняет основы Python простым и понятным языком, сопровождая каждую тему живыми примерами, увлекательными задачами и веселыми проектами. Читатели узнают, как создавать программы, игры и графические рисунки, а также поймут, как решать задачи с помощью кода.Эта к
Книга «Стань архитектором своей жизни» поможет вам, дорогой читатель, во всей полноте оценить свою многоплановость, реализовать свой потенциал, научиться по новому мыслить и проявлять чудеса предпринимательства. Вы научитесь не только находить и реализовывать свои мечты, а также научитесь понимать и ценить мечты других людей. Наша жизнь – это наш выбор, который мы делаем каждый день! Книга содержит авторские рисунки и стихи. Пишите: anita.arslano
– Как моему ученику удалось получить заказ на 9 млн рублей за 1,5 недели? – Кто ваш наиболее желанный клиент? – «Почему я должен дать денег вам, а не кому-то другому?» – Что вы знаете про дифференциацию и поляризацию и чего не знают про них ваши конкуренты? – Как сохранять клиентов и не дать их увести? – Как заставить людей думать, что отдать вам деньги является офигенской идеей? – Маркетинг «на коленке»? – Что вы знаете про подход «Яма»? И еще к
Сила в знаниях, у кого больше знаний то и сильней пусть успеха начинается с них, но не будь обманут мнимой безупречностью своих красивых слов и мыслей, говорить недостаточно, надо еще действовать, начни читать. Эта очень краткая книга о том, как найти путь успеха скорректировав свое мышление, а для молодых, определить путь взросления построить свое мышление. Она поможет сформировать правильный менталитет мужского мышления о фундаментальных вопрос
Романи таърихии "Нигина ва Мирмалик" рӯйдодҳои сӣ соли аввали қарни сенздаҳуми милодиро аз ҷулуси Хоразмшоҳи сонӣ то ҳуҷуми Чингизхон дарбар мегирад. Ҳоким ва сипаҳсолори диловари Хуҷанд Мирмалик ибни Мирраҳмат, ки бо лақаби "Темурмалик" машҳур аст ва раққосаи дарбори Султон Муҳаммади Хоразмшоҳ Нигина бинти Абдул Сайид, ки "кабӯтари ҳарам" лақаб дошту "ситораи тобони осмони Мовароуннаҳр" пазируфта шуда буд, қаҳрамонҳои асосии асар буда, ибтидою и