Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
книги хакеры / Питер_Гудлиф_Ремесло_программиста_Практика_написания_хорошего_кода.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

 

 

 

360m

 

 

 

 

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

 

 

 

 

 

 

Глава 14. Программная архитектураClick

 

 

 

 

 

m

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

 

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

.c

 

 

 

.

 

 

 

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

 

-x cha

 

 

 

 

Хорошие программисты…

Плохие программисты…

 

 

 

 

 

 

 

 

 

 

Понимают архитектуру своего Пишут код, не обращая внима%

программного продукта и пи% шут код в ее рамках

В каждом проектном сценарии могут подобрать подходящую архитектуру

Создают простые архитектуры, обладающие красотой и изяще% ством – ценят эстетические до% стоинства программного про% екта

Описывают архитектуру систе% мы в документе, который по% стоянно обновляется

Сообщают о проблемах струк% туры системным архитекто% рам, пытаясь улучшить проект

ния на общие архитектурные представления, что приводит к порочному коду и неинтегри% руемым компонентам

Начинают писать код, не выпол% нив проектирования на верхнем уровне и игнорируя альтерна% тивные архитектуры

Хранят данные об архитектуре у себя в голове или в недопусти% мо устаревших спецификациях

Смиряются с неадекватными ар% хитектурами, добавляя новый плохо спроектированный код и тем самым усугубляя лежащие в основе проблемы; они не пони% мают, что их ждут более круп% ные неприятности

См. также

Глава 12. Комплекс незащищенности

Вопросы безопасности должны учитываться в архитектуре систе% мы.

Глава 13. Важность проектирования

Проектирование кода – необходимый элемент создания кода.

Глава 15. Программное обеспечение – эволюция или революция?

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

Глава 22. Рецепт программы

Какое место архитектурный проект занимает в процессе разработ% ки программного продукта.

Контрольные вопросы

Подробное обсуждение этих вопросов можно найти в разделе «Ответы и обсуждение» на стр. 646.

Вопросы для размышления

1.Объясните, где кончается архитектура и начинается проектиро# вание программного продукта.

 

 

 

 

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

 

 

 

 

 

361Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

.c

 

 

.

 

 

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

2.Как плохая архитектура может сказаться на качестве системы? Есть ли такие части, на которые недостатки архитектуры не оказы% вают влияния?

3.Трудно ли исправить выявившиеся недостатки архитектуры?

4.В какой мере архитектура оказывает влияние на:

a.Конфигурацию системы

b.Ведение журналов

c.Обработку ошибок

d.Безопасность

5.Какой опыт или подготовка необходимы для того, чтобы называть% ся программным архитектором?

6.Должна ли стратегия рыночного поведения оказывать влияние на архитектуру? Если да, то каким образом? Если нет, то почему?

7.Какими особенностями должна обладать архитектура, рассчитан% ная на расширение? Рассчитанная на максимальную производи# тельность? Какое влияние эти проектные цели оказывают на сис% тему и в каких отношениях они находятся между собой?

Вопросы личного характера

1.Насколько широк диапазон архитектурных стилей, которые вы применяете в своей работе? В каком из них у вас больше опыта и как это влияет на программы, которые вы пишете?

2.Каков ваш личный опыт работы с архитектурами, оказавшимися успешными или неудачными? Какие особенности сделали их пра%

вильным выбором или помехой в работе?

 

 

 

 

hang

e

 

 

 

 

 

 

C

 

E

 

 

 

X

 

 

 

 

 

-

 

 

 

 

 

d

 

F

 

 

 

 

 

 

t

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

to

 

 

 

 

w Click

 

 

 

362m

 

 

 

 

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

 

 

 

 

 

Глава 14. Программная архитектураClick

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

.c

 

 

.

 

 

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

3.Предложите каждому разработчику в вашем текущем проекте изо% бразить архитектуру системы – самостоятельно (без обсуждения с коллегами) и без обращения к системной документации или коду. Сравните их схемы. Что вас больше всего поражает в результатах их труда (исключая чисто художественные достоинства)?

4.Есть ли в вашем текущем проекте общедоступное описание архи% тектуры? Давно ли оно обновлялось? Какими видами представле% ния вы пользуетесь? Если вам потребуется рассказать о системе но% вому сотруднику или будущему клиенту, какие данные вам реаль% но потребовались бы в документе?

5.Сравните архитектуры своей системы и ваших конкурентов. Благо% даря каким особенностям своей архитектуры вы рассчитываете до%

биться успеха своего проекта?