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

 

 

 

 

 

487Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

.c

 

 

.

 

 

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Глава 18. Защита исходного кода

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

Глава 20. Рецензия на отстрел

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

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

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

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

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

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

1.Что лучше – плохая спецификация или ее полное отсутствие?

2.Насколько детальной должна быть хорошая спецификация?

3.Нужно ли требовать, чтобы все документы в компании/проекте бы% ли выдержаны в одинаковом стиле?

4.Как нужно хранить документы? Например, стоит ли создавать для них указатель (по типу или проекту)?

5.Как организовать рецензирование спецификации?

6.Делает ли самодокументирование кода ненужными все специфика%

ции? А какие%либо отдельные типы спецификаций?

 

 

 

 

hang

e

 

 

 

 

 

 

C

 

E

 

 

 

X

 

 

 

 

 

-

 

 

 

 

 

d

 

F

 

 

 

 

 

 

t

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

to

 

 

 

 

w Click

 

 

 

488m

 

 

 

 

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

 

 

 

 

 

Глава 19. СпецификацииClick

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

.c

 

 

.

 

 

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

7.Как можно организовать работу над документом, если авторов не% сколько?

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

1.Кто решает, что должно содержаться в ваших документах?

2.Рассмотрим ваш текущий проект. Есть ли у вас для него:

a.Спецификация требований?

b.Архитектурная спецификация?

c.Проектная спецификация?

d.Функциональная спецификация?

e.Какая%нибудь еще спецификация?

Являются ли они актуальными? Являются ли они полными? Знае% те ли вы, где находятся самые свежие версии? Есть ли у вас доступ

к старым версиям?

3.Есть ли у вас контроль версий ваших документов? Если да, то как он организован?

 

 

 

 

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

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

20

Рецензия на отстрел

Рецензирование кода

В этой главе:

Что такое рецензирование кода?

Что оно дает?

Как его организовать?

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

Джордж Бернард Шоу

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

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

 

 

 

 

hang

e

 

 

 

 

 

 

C

 

E

 

 

 

X

 

 

 

 

 

-

 

 

 

 

 

d

 

F

 

 

 

 

 

 

t

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

to

 

 

 

 

w Click

 

 

 

490m

 

 

 

 

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

 

 

 

 

 

Глава 20. Рецензия на отстрелClick

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

.c

 

 

.

 

 

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

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

Рецензирование кода (называемое также инспекцией, или критическим анализом) напоминает модель разработки open source – оно предостав% ляет возможность другим лицезреть ваш бесценный код, а вам – по% смотреть, как работают другие. Оно облегчает обмен знаниями. Но глав% ная задача рецензирования – повысить качество кода. С его помощью можно найти ошибки прежде, чем они повлекут за собой катастрофу.

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

Звучит соблазнительно, не правда ли? Что ж, заглянем на кухню и по% смотрим, что там делается…

Что такое «рецензирование кода»?

Рецензирование помещает код под микроскоп, имея задачей подверг% нуть его критике и проверке. Его цель не высмеять автора, а повысить качество программного обеспечения, создаваемого командой. Обычно в его процессе создается список исправлений, которые нужно сделать (его размер отражает уровень вашего мастерства!). Иногда отмечаются усовершенствования, заниматься которыми в данный момент не стоит; возьмите эти открытия на заметку, чтобы заняться ими в будущем.

Мы ищем ошибки и код, который можно исправить. Рецензирование кода выявляет проблемы разного уровня:

Общая конструкция (проверяем выбор алгоритмов и внешних ин% терфейсов).

Выражение конструкции в коде (разбиение на классы и функции).

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

Отдельные операторы кода (соответствие их стандартам, принятым в проекте, и лучшей практике).

Рецензии кода бывают:

Личные

Автор тщательно и методично изучает свою работу, проверяя ее каче% ство. Это не то же самое, что перечесть код, напечатав его; самостоя% тельное рецензирование кода – более детальная и сложная задача.