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

 

 

 

88m

 

 

 

 

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

 

 

 

 

 

Глава 3. Что в имени тебе моем?Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

.c

 

 

.

 

 

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Во французском, как и в большинстве романских языков, есть две формы местоимения 2#го лица: tu и vous. Выбор той или иной из них определяется степенью вашей близости с тем, к кому вы обра% щаетесь. Точно так же имя, с помощью которого вы обращаетесь к переменной, может зависеть от контекста, в котором она находит% ся. Пример: разные имена переменных в открытых объявлениях функций и в их реализациях.

Тип

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

Неопытный программист может назвать переменную, содержащую строку адреса, как address_string. И какая польза от суффикса _string? Никакой, поэтому уберите его.

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

Извлекайте выгоду из выбора имени

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

Резюме

…и уповать на имя Твое, ибо оно благо…

Псалтирь 52:9

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

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

 

 

 

 

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

 

 

 

 

 

89Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

.c

 

 

.

 

 

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Что можно и чего нельзя

Разнообразные советы, приведенные в этой главе, можно свести к ряду правил. Избегайте в своих именах таких качеств, как:

Загадочность

Есть много способов создания непонятных имен. Акронимы и сокращения вполне могут оказаться бессмысленными, а од% нобуквенные имена – слишком загадочными.

Многословие

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

Неточность или обманчивость

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

Орфографические ошибки – это минное поле всякой путани% цы. Ищу переменную ignoramus и нигде не могу ее найти. Вы% ясняется, что я по ошибке назвал ее ignoramous. Разобрались.

Двусмысленность или неясность

Не выбирайте имен, которые можно истолковать по%разному. Не выбирайте совершенно туманные имена типа data или val ue, если только обстановка не указывает точно, что они собой представляют. Избегайте неопределенных temp или tmp, если в этом нет прямой необходимости.

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

Не создавайте без особых причин локальные переменные с та% кими же именами, как объекты во внешней области видимости.

Заумь

Следует избегать симпатичных аббревиатур, остроумных, но трудно запоминаемых сокращений, а также толковательного применения числительных. Распространенное сокращение i18n для слова internationalization кажется полной чепухой непосвященным.

Напротив, выбирайте правильные имена, которые понятны, точ% ны, конкретны, коротки и недвусмысленны. Пользуйтесь стан% дартными терминами и принципами. Выбирайте слова из пред% метной области и применяйте наглядные схемы составления имен. (Gamma et al. 94)