Длинные имена переменных - PullRequest
16 голосов
/ 05 июня 2010

Допустим, у меня есть переменная, которая содержит количество имен поисковых систем в файле, как бы вы назвали это?

  • number_of_seach_engine_names
  • search_engine_name_count
  • num_search_engines
  • 1010 * Двигатели *
  • engine_names
  • другое имя?

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

Ответы [ 10 ]

26 голосов
/ 05 июня 2010

Как насчет numEngineNames?

Выбор имен переменных - это больше искусство, чем наука. Вы хотите что-то, что не требует эпохи, чтобы напечатать, но достаточно долго, чтобы быть выразительным. Это субъективный баланс.

Спросите себя, если кто-то смотрел на имя переменной впервые, вполне вероятно, что человек поймет ее назначение?

16 голосов
/ 05 июня 2010

Имя слишком длинное, когда существует более короткое имя, которое в равной степени передает назначение переменной.

Я думаю, engineCount здесь будет хорошо. Число названий двигателей предположительно равно количеству двигателей.

См. Сообщение JaredPar .

6 голосов
/ 05 июня 2010

Это зависит от области действия переменной. Локальная переменная в короткой функции обычно не стоит «идеального имени», просто назовите ее engine_count или что-то в этом роде. Обычно значение будет легко определить, если не комментарий, может быть лучше, чем имя переменной из двух строк.

Переменные с более широкой областью действия - то есть глобальные переменные (если они действительно необходимы!), Переменные-члены - заслуживают ИМХО имени, которое является почти само документальным. Конечно, поиск оригинального объявления не сложен, и большинство IDE делают это автоматически, но идентификатор переменной не должен быть бессмысленным (т.е. number или count).

Конечно, все это во многом зависит от вашего личного стиля кодирования и соглашений на вашем рабочем месте.

2 голосов
/ 23 июня 2010

См. вопрос

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

На одном конце спектра у вас есть для итераторов цикла и индексов.У них могут быть такие имена, как i или j, потому что они просто и распространены.Если дать им более длинные имена, это только приведет к еще большей путанице.

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

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

2 голосов
/ 23 июня 2010

Зависит от контекста, если это локальная переменная, например,

int num = text.scan(SEARCH_ENGINE_NAME).size();

чем яснее правая часть выражения, тем короче имя, которое я выбрал бы. Рациональным является то, что мы находимся в ограниченном объеме, возможно, в 4-5 строк, и поэтому можем предположить, что читатель сможет установить связь между коротким именем и выражением в правой части. Однако, если это поле класса, я бы предпочел быть как можно более подробным.

1 голос
/ 06 марта 2012

Я бы назвал его "search_engine_count", потому что он содержит количество поисковых систем.

1 голос
/ 23 июня 2010

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

Наличие действительно длинных имен переменных ухудшит читабельность вашего кода, поэтому вы должны избегать их. Но на другом конце спектра вы хотите избегать сверхкоротких имен или сокращений, таких как «n» или «ne». Короткие, загадочные имена, подобные этим, заставят кого-то пытаться прочитать ваш код, чтобы вырвать им голову Обычно одно-двухбуквенные переменные используются для небольших задач, например, для увеличения в цикле for.

Так что у вас остается баланс между этими двумя крайностями. «Num» - это часто используемое сокращение, и любой полуопытный программист сразу поймет, что вы имеете в виду. Так что что-то вроде «numEngines» или «numEngineNames» будет хорошо работать. В дополнение к этому, вы также можете поместить комментарий в свой код рядом с переменной при первом использовании. Это позволит читателю точно знать, что вы делаете, и поможет избежать путаницы.

0 голосов
/ 06 мая 2017

Используйте Esc + _ + Esc , чтобы написать:

this_is_a_long_variable = 42

Esc + _ + Esc и _ - не идентичные символы в Mathematica. Вот почему вы можете использовать первое, но не второе.

0 голосов
/ 05 июня 2010

Зависит от срока службы или предполагаемых целей. Тем не менее, это включает в себя срок разработки. Я недавно назвал вектор «материалом», потому что он использовался только в эксперименте.

Если переменная объявлена ​​или определена только рядом с ее использованием, то я не буду беспокоиться о выразительном имени. Если нет, то я бы выбрал имя средней длины. Я никогда не могу понять, почему люди используют имена, скажем, более 10 символов. Что-то вроде enames было бы моим выбором для вашего вопроса.

0 голосов
/ 05 июня 2010

Если это локальная переменная в функции, я бы назвал ее n или ne. Большинство функций содержат только две или три переменные, поэтому длинное имя не требуется.

...