Функциональные соглашения о присвоении имен

Я пишу библиотеку, таким образом, я хочу, чтобы ее функции были названы максимально ясно и умно. В настоящее время я использую следующие принципы:

  1. Очевидные имена: функция getName () скажет разработчику, что она возвращает, а также setAddress (), isMale (), и т.д.
  2. Короткий: имя функции должно быть максимально коротким так, чтобы было просто ввести, а также легкий помнить. Функция getNumberOfPagesInTheBook () не хороша, что-то как getBookPageCount () лучше.
  3. Использование префиксов: Я всегда использую префиксы в функциях, таких как getName (), setName (), hasHair (), isBlond (), и т.д.

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

35
задан Adriaan Stander 2 January 2010 в 11:35
поделиться

5 ответов

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

58
ответ дан 27 November 2019 в 07:02
поделиться

Другие префиксы? Возможно "isa", хотя это применимо только в некоторых ситуациях.

Некоторые языки могут общаться "get" и/или "set" с другими конструкциями (в частности, в Common Lisp вы можете заставить (setf (get* ...) blah) делать то, что вы бы хотели (set* ... blah) делать).

.
1
ответ дан 27 November 2019 в 07:02
поделиться

Еще один важный момент при написании библиотеки - каждый раз использовать одно и то же слово для описания одного и того же действия. Не пишите функцию с именем getName в одном классе, а функцию с именем getrieveNumber в другом классе.

4
ответ дан 27 November 2019 в 07:02
поделиться
  1. Соглашения об именах для Java
  2. Соглашения об именах для .Net
  3. Соглашения об именах для C ++
1
ответ дан 27 November 2019 в 07:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: