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

 

 

 

598m

 

 

 

 

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

.

 

 

 

 

 

.c

 

 

p

 

 

 

 

g

 

 

 

 

df

 

 

n

e

 

 

 

 

-xcha

 

 

 

Foo &getFoo();

void setFoo(const Foo &) const;

или

Foo &foo();

void setFoo(const Foo &) const;

или, может быть

Foo &foo();

void foo(const Foo &) const;

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

Ответы и обсуждениеClick

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

.c

 

 

.

 

 

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Выбор может определяться стандартом кодирования или вашими лич% ными эстетическими пристрастиями. В этом случае я бы нарушил пра% вило «Имя функции всегда должно содержать глагол» и выбрал вто% рой вариант, поскольку он выглядит в коде наиболее естественно. Смотрите сами.

Если метод чтения при первом запуске должен выполнить длинные вычисления (даже если результат буферизуется для следующих обра% щений), то я бы поостерегся. Это уже не обычная функция, извлекаю% щая значение, и приведенные схемы не отражают этого. Tree::numAp ples – хорошее имя для метода чтения, если только он не замирает на минуту, пока система распознавания образов не обнаружит все ябло% ки. В этом случае я бы предпочел, чтобы имя отражало такое поведе% ние. Tree::countApples() наводит на мысли о существенных действиях благодаря глаголу в имени.

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

1.Искусны ли вы в выборе имен? Какими из предложенных правил вы пользуетесь на сегодняшний день? Занимаетесь ли вы составлением имен и применением этих правил сознательно или это происходит сти хийно? В какой области вы могли бы улучшить свою практику?

Вернитесь к разделу «Технические подробности» на стр. 79. Сравните приведенные там правила и последний написанный вами фрагмент ко% да. Есть ли соответствие? В какой мере ваши имена определяются су% ществующими правилами кодирования (к чему вас призывали на стр. 86), а в какой вы используете собственные правила?

2.Есть ли в вашем стандарте кодирования правила для выбора имен?

a.Охватывает ли он все рассмотренные нами ситуации? Достаточ но ли он полон? Есть ли от него польза или он представляет собой формальность?

b.Насколько детализированными должны быть правила именования в стандарте кодирования?

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