Выбор наименования

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

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

<span style="color: #ff0000;">void init (int elem[], int nelems)
	{
		int i;

		for (i=0; i &lt; nelems; i++)
			elem[i] = i;
	}</span>

А теперь сравним его со следующим.

<span style="color: #0000ff;">void initialiseElementArray (int elementArray[],
		int numberOfElements)
	{
		int theElementIndex;

		for (theElementIndex = 0;
			theElementIndex &lt; numberOfElements;
			theElementIndex++)
		    elementArray[theElementIndex] = theElementIndex;
	}</span>

Переменные цикла очень часто именуются, к примеру i, и нет смысла менять это. Т.к. это локальная переменная, нет необходимости  в более детальном ее описании. Чем больше имя, тем менее понятным может стать код.

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

<span style="color: #0000ff;">if (string_is_int("1234")) ...</span>

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

<span style="color: #ff0000;">if (checkString("1234")) ...</span>

Или с именем этой же функции, но не содержащей глагола :

<span style="color: #ff0000;">if (stringint("1234")) ...</span>

Задолго до того, как были изобретены компьютеры,  в английском языке (?как и во многих других) использовались следующие правила: заглавные буквы – для обозначения важности, и  пробелы для разделения слов (естественно, что криптографические языки, как, к примеру, китайский использовали одиночные символы для обозначения слов, и следовательно, не имеют ни разделителей, ни заглавных букв). Мы с Вами не можем использовать пробелы в большинстве языков программирования для обозначения разделения между словами, однако для данной цели хорошо подходить знак подчеркивания.

<span style="color: #ff0000;">if (next_entry == maximum_value)
		return 1;</span>

Как и всеми вещами, этим не нужно злоупотреблять. Очень часто имена могут быть достаточно короткие, так что нет необходимости использовать интервал для обозначения отдельных слов, как во многих библиотечных функциях ANSI C :

<span style="color: #0000ff;">str[i] = toupper(ch);</span>

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

Оставить комментарий

Вы должны быть зарегистрированы чтобы комментировать.