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

 

 

 

372m

 

 

 

 

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

 

 

 

 

 

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

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

.c

 

 

.

 

 

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Проект «на вырост»

Часто бывает понятно, каким образом код станет расширяться в бу% дущем; например, некоторые функции просто отложены в расчете включить их в следующую версию. Можно специально спроектиро% вать систему так, чтобы в будущем было проще вносить в нее допол% нения. Как правило, это не слишком осложняет проектирование.

Даже если вы не знаете, какие функции будут добавляться в про% ект, тщательное проектирование оставляет пространство для буду% щего роста. Расширяемая система предоставляет специальные точ% ки, в которых можно подключать новые функции. Однако имейте в виду, что это не погоня за ветром,1 когда вы пытаетесь предска% зать будущее, не имея понятия о том, как будет развиваться систе% ма. Расширяемость достигается за счет роста сложности системы. Если вы правильно угадаете, где эта сложность понадобится, ваша взяла; если догадка окажется неправильной, вы сделаете неоправ% данно сложную систему. Так можно переусердствовать в проекти# ровании, что особенно часто случается, когда проектированием за% нимается комитет.

Существует теоретическое направление, в которое входит экстре# мальное программирование, требующее разрабатывать самый про% стой проект, который должен быть применим в любой ситуации. Это может противоречить духу «проектирования на вырост» (в зависи% мости от того, насколько податлив окажется первоначальный про% стой проект). Определение того, в какой мере ваш проект должен быть ориентирован на рост, является сложной, но важной задачей.

Вера в невозможное

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

Менеджеры в компаниях часто рассчитывают на то, что ошибка будет быстро исправлена. Не так сложно убедить менеджера в том, что тяже% лая бетонная плита недолго продержится на верхушке хрупкого шес% та. Труднее заставить его встать под ней внизу. И гораздо труднее до% нести ту же мысль, если дело касается программного обеспечения. До менеджеров она просто не доходит. По их представлениям программи% сты – это волшебники, занимающиеся черной магией и обладающие

1Экклезиаст 2:11