Существует ли краткий каталог соглашений об именах переменных? - PullRequest
3 голосов
/ 25 октября 2008

Существует много разных стилей имен переменных, с которыми я сталкивался на протяжении многих лет.

Текущая запись в википедии по соглашениям об именах довольно легкая ...

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

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

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

Ответы [ 5 ]

4 голосов
/ 25 октября 2008

Лучший набор правил именования, который я видел, находится в книге " Code Complete ". У Стива Макконнелла есть отличный раздел, посвященный соглашениям об именах, и множество примеров. В его примерах используется ряд «лучших практик» для разных языков, но в конечном итоге решение о конкретном действии оставлено на усмотрение разработчика, менеджера разработчика или архитектора.

2 голосов
/ 25 октября 2008

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

Согласно PEP8: переменные, переменные экземпляра, функции и методы в стандартной библиотеке должны использовать строчные слова, разделенные подчеркиванием для удобства чтения:

foo
parse_foo
a_long_descriptive_name

Чтобы отличить имя от зарезервированного слова, добавьте подчеркивание:

in_
and_
or_

Имена, которые являются слабо частными (не импортированными 'из M import *'), начинаются с одного подчеркивания. Имена, конфиденциальность которых обеспечивается с помощью искажения имени, начинаются с двойного подчеркивания .:

_some_what_private
__a_slightly_more_private_name

Имена, которые являются «специальными» методами Python, начинаются и заканчиваются двойным подчеркиванием:

__hash__  # hash(o) = o.__hash__()
__str__   # str(o) = o.__str__()
1 голос
/ 25 октября 2008

Каково бы ни было ваше соглашение об именах, оно обычно не позволяет вам легко различить:

  • экземпляр (обычно частная) переменная
  • локальные переменные (используются как параметры или локально для функции)

Я использую соглашение об именах, основанное на использовании неопределенная статья (a, an, some) для локальных переменных, и нет статьи для переменных экземпляра, как объясняется в этом вопросе о переменной приставка .

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

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

1 голос
/ 25 октября 2008

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

Раздел о состояниях переменных

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

Имена переменных должны быть короткими, но значимыми. Выбор имени переменной должен быть мнемоническим, то есть предназначенным для указания случайному наблюдателю намерения ее использования. Следует избегать односимвольных имен переменных, за исключением временных «одноразовых» переменных. Общими именами для временных переменных являются i, j, k, m и n для целых чисел; c, d и e для символов.

Некоторые примеры включают

int             i;
char            c;
float           myWidth;
0 голосов
/ 27 октября 2008

Есть "Разговорник по Java-программистам" от Эйнара Хеста.

Он проанализировал грамматическую структуру имен методов вместе со структурой тел методов и собрал такую ​​информацию, как:

add- [имя существительное] - * Эти методы часто имеют параметры и создают объекты. Они очень редко возвращают значения полей. Фраза появляется практически во всех приложения.

и так далее ... собраны из сотен проектов с открытым исходным кодом.

Для получения дополнительной информации, пожалуйста, обратитесь к его SLE08 бумаге .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...