Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
книги хакеры / Питер_Гудлиф_Ремесло_программиста_Практика_написания_хорошего_кода.pdf
Скачиваний:
16
Добавлен:
19.04.2024
Размер:
9.23 Mб
Скачать
Архитектура
в «макаронном» стиле:
Готовые равиоли
По большей части работа уже сделана за вас. Остается сварить и подать на стол.

 

 

 

 

hang

e

 

 

 

 

 

 

C

 

E

 

 

 

X

 

 

 

 

 

-

 

 

 

 

 

d

 

F

 

 

 

 

 

 

t

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

to

 

 

 

 

w Click

 

 

 

Резюмеm

 

 

 

 

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

.

 

 

 

 

 

.c

 

 

p

 

 

 

 

g

 

 

 

 

df

 

 

n

e

 

 

 

 

-xcha

 

 

 

Каркасы

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

359Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

.c

 

 

.

 

 

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Вместо того чтобы разрабатывать новую архитектуру для конкретного проекта, может оказаться удобным воспользовать% ся каркасом (структурой) существующего приложения и доработать его. Каркас (fra% mework) – это расширяемая библиотека

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

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

Каркасы отличаются от обычных библиотек способом взаимодействия с вашим кодом. Используя библиотеки, вы явным образом обращаетесь к компонентам в своем собственном потоке управления. С каркасом все наоборот: он несет ответственность за структуру и поток управления. Он по мере необходимости посылает вызовы в добавленный вами код.

Близко к готовым каркасам лежат паттерны архитектурных проек% тов. Не будучи самостоятельным архитектурным стилем, паттерны представляют собой малоразмерные архитектурные шаблоны. Это микроархитектуры для нескольких взаимодействующих компонент, вобравшие в себя повторяющуюся структуру обмена данными. Архи% тектурные паттерны описывают стандартные структуры компонент на уровне архитектурного проектирования, разъясняя, как они удовле% творяют требованиям данного контекста. Паттерны – это набор луч% ших приемов проектирования, описанных в вездесущей книге «банды четырех» (Gamma et al. 94) и многочисленных последующих публика% циях (см. врезку «Шаблоны проектирования» на стр. 334).

Резюме

Римский архитектор Витрувий сделал бессмертное высказывание по поводу того, что составляет хороший архитектурный проект: проч% ность (firmitas), полезность (utilitas) и красота (venustas). Это вполне справедливо в отношении архитектуры программного обеспечения. В отсутствие четко определенной архитектуры с четкими коммуника% циями программному проекту будет не хватать связной внутренней структуры. Он станет хрупким, нестабильным и уродливым. В конеч% ном итоге в нем возникнут разрушительные напряжения.

После всех этих разговоров о еде я проголодался. Иду строить семи% уровневый эталонный бисквит…