Как многословность идентификаторов влияет на производительность программиста? - PullRequest
10 голосов
/ 05 августа 2009

Я всегда задавался вопросом: существуют ли какие-либо неопровержимые факты, которые указывали бы на то, что более короткие или более длинные идентификаторы лучше?

Пример:

clrscr()

против

ClearScreen()

Короткие идентификаторы должны быть быстрее для чтения, потому что символов меньше, но более длинные идентификаторы часто лучше напоминают естественный язык и, следовательно, также должны быть быстрее для чтения.

Существуют ли другие аспекты, которые предлагают короткий или подробный стиль?

РЕДАКТИРОВАТЬ: Просто чтобы уточнить: я не спрашивал: «Что бы вы сделали в этом случае?». Я спросил о причинах, чтобы предпочесть одно другому, то есть это не вопрос опроса.

Пожалуйста, , если можете, укажите причину , почему один предпочитает один стиль другому.

Ответы [ 19 ]

4 голосов
/ 05 августа 2009

Как программист, я гораздо больше думаю о программировании, чем о наборе текста. Поэтому дополнительное время для ввода более длинного идентификатора не имеет значения. И сегодня моя IDE поддерживает меня, теперь мне нужно только набрать несколько букв, и IDE позволяет мне выбирать из допустимых идентификаторов. Таким образом, аргумент производительности против более длинных идентификаторов сегодня более недействителен, чем несколько лет назад.

С другой стороны вы получите удобочитаемость, если выберете более значимые идентификаторы. Поскольку вы будете читать исходный код чаще, чем писать, это очень важно. Другое дело, что аббревиатуры часто бывают неоднозначными. Таким образом, вы сокращаете число как нет или как число? Это делает ошибки более вероятными, так как вы выбираете неправильный идентификатор.

4 голосов
/ 05 августа 2009

Каждый разработчик должен знать, как правильно печатать. Добавление нескольких дополнительных символов не является производительной проблемой, если вы не любитель охоты и пека.

С учетом сказанного я согласен с предыдущими комментариями по поводу баланса. Как и в случае с таким количеством ответов, «это зависит». Но я предпочитаю многословие и ясность. Вынос гласных для старых администраторов баз данных.

3 голосов
/ 05 августа 2009

Я думаю, что вы найдете несколько ценных фактов, но много мнений по этому вопросу.

Страница Википедии по этой теме ссылается на документ по анализу затрат / выгод проблем с именами идентификаторов (раздел «Внешние ссылки»), но ни один из известных мне языков не основывает свои официальные или принятые соглашения об именах на основа "научного" исследования.

Глядя на код в социальном контексте, вы должны следовать соглашениям об именах, установленным:

  1. Проект
  2. Компания
  3. Язык программирования

.. в таком порядке.

2 голосов
/ 05 августа 2009

Большинство современных IDE (и даже более старых) имеют функцию автозаполнения, поэтому на самом деле не требуется больше времени для ввода длинного идентификатора (если он, конечно, объявлен). Так что я бы пошел для ясности по краткости, это делает программу намного проще для чтения и более понятной

2 голосов
/ 05 августа 2009

Все дело в том, чтобы найти баланс между ними, который достаточно прост для чтения и в то же время не слишком многословен. Многие люди испытывают личную неприязнь к сложным именам функций / классов Java или Win32, но многие другие также не любят очень короткие идентификаторы.

1 голос
/ 05 августа 2009

Соглашения об именах и стиль кодирования часто обсуждаются.
Тем не менее, соглашения об именах всегда очень субъективны - для людей и платформы.

Итог всегда - пусть вещи имеют смысл (да, очень субъективно).
Wikibook search - Именование идентификаторов

1 голос
/ 05 августа 2009

Нет ничего плохого в коротком идентификаторе, если его значение очевидно.

Лично я бы склонялся к последнему, потому что я предпочитаю быть многословным (хотя я стараюсь не быть таким многословным, как MS и их функция CoMarshallInterthreadInterfaceInStream), но пока ваша функция Clear Screen не называется "F ()", я не вижу проблемы:)

0 голосов
/ 09 сентября 2015

Никто не упомянул негативное влияние на читаемость слишком длинных идентификаторов. Как только вы начнете создавать идентификаторы длиной 20, 30, 40 или более символов, вы не сможете написать разумное утверждение на одной строке текста, которая будет удобочитаемой. Строки кода должны быть ограничены до 80 символов. Что-нибудь дольше невозможно прочитать. Вот почему газеты печатаются в колонках. Даже эта веб-страница удерживает текстовый столбец узким, чтобы его можно было читать без необходимости сканировать назад и вперед.

0 голосов
/ 05 августа 2009

Также следует подумать о , где идентификатор равен , хорошо известный i как счетчик итераций является допустимым примером:

for(int i=0;i<10;i++){
    doSomething();
}

Если контекст простой, идентификатор должен отражать это соответствующим образом.

...