На сайте интернет библиотеки вы можете начать читать книгу Чистая архитектура. Искусство разработки программного обеспечения - Роберт Мартин онлайн бесплатно и без регистрации. Электронная (цифровая) литература удобна тем, что читать романы online с телефона можно абсолютно везде. Вы нашли версию издания Чистая архитектура. Искусство разработки программного обеспечения, так как интересуетесь работами автора Роберт Мартин или жанром в стиле зарубежная компьютерная литература. Помимо чтения, книгу можно скачать в популярном формате fb2, перейдя на соседнюю страницу. Читайте актуальные новинки и скачивайте их на свои гаджеты.

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

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

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

Страница 1

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

Предисловие

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

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

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

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

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

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

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

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

    Вильям Шекспир [1 - Перевод Т. Гнедич. – Примеч. ред. ]

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

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

    Гради Буч

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

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

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

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

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

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

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

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

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

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

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

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

Архитектура – это гипотеза, которую требуется доказать реализацией и оценкой.

    Том Гилб

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

Предыдущая стр. 1 Следующая

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

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

В книге описывается около 100 объектов самой неоцененной эпохи советской архитектуры. Это первый путеводитель по Моск­ве, который рассматривает как целостное явление архитектуру тридцатилетия от Хрущёва до Горбачёва – от наивного модернизма оттепели до постмодернизма, включая Дворец пионеров, Останкинскую телебашню, кинотеатр «Россия», здание ТАСС, «золотые мозги» Академии наук, а также менее известные проекты, например, «Дом нового быта» или музей АЗЛК. Авторы предлагают увидеть эти

Задумались ли вы, как много можно узнать о европейской истории и развитии архитектуры, просто прогуливаясь по улицам Парижа? Перестроенный с нуля, сегодняшний Париж – результат масштабного эксперимента второй половины XIX века. Лучше всех об этом сможет поведать архитектурный гид и автор телеграм-канала «А как там в Париже?», специалист по творчеству Ле Корбюзье, Мария Троицкая. Прочитав эту книгу, вы не только начнете разбираться в архитектурных стилях, но и узнаете, какие процессы в обществе

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

Книга историков архитектуры Елены Овсянниковой и Николая Васильева посвящена жилому комплексу, широко известному как Дом Наркомфина, примечательному своим архитектурным решением.

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

Архитектуру называют музыкой, застывшей в камне. Сколько же архитектурных «жанров» накопила цивилизация? Архитектура Древней Греции, готика, рококо, хай-тек: изучая архитектуру, мы узнаем историю. Эта книга поможет читателю разобраться в архитектурных стилях от ранних цивилизаций до современного периода. Издание призвано рассказать простым языком о точной и красивой науке, восполнить возможные пробелы в знаниях и побудить читателя на более глубокое изучение предмета.

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

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

Из-за глупого стечения обстоятельств я, Кира Иванова, студентка 4 курса, осталась без практики в крупной компании и подработки одновременно. Остро нуждаясь в деньгах, я согласилась пусть и на сомнительное, но все же выгодное предложение стать уборщицей в доме богатого человека. По правилам я бы никогда не встретила владельца квартиры, в которой усердно начищала до блеска полы, если бы вновь не случайность, перевернувшая не только мою жизнь, но и изменившая чужую судьбу. Но обо всем по порядку.