Почему имена функций — это глаголы вроде get, set, is, has?
Заметил, что функции почти всегда называют английскими глаголами: getUser, setName, isValid, hasAccess. Это случайность или есть правило? И что значат эти приставки is и has?
2 ответа
Это негласное соглашение всех программистов, и оно реально удобное. Логика простая: функция что-то ДЕЛАЕТ, а действие в английском — это глагол. Поэтому имя функции читается как команда:
- get... — получить, вернуть значение:
getName()= «дай имя» - set... — установить, задать значение:
setName('Аня')= «поставь имя» - is... — проверка, отвечает true/false:
isEmpty()= «пусто ли?»,isValid()= «корректно ли?» - has... — проверка наличия, тоже true/false:
hasAccess()= «есть ли доступ?» - calc... / compute... — посчитать, create / make — создать, delete / remove — удалить, update — обновить
Красота в том, что по имени сразу понятно, что функция делает и что вернёт. isReady() — явно вернёт да/нет. getTotal() — явно вернёт число. А переменные наоборот называют существительными (name, count), потому что они — вещь, а не действие. Так читать код в разы легче.
Хороший побочный эффект: это правило подтягивает английский. Чтобы назвать функцию, надо вспомнить глагол — «сохранить» это save, «загрузить» load, «отправить» send. За полгода кодинга так выучиваешь десятки глаголов намертво, потому что используешь их каждый день.