Именование в javascript
Содержание
Именование в программировании играет большую роль. Ведь от того, как будут названы сущности зависит качество кода и его восприятие.
Цель этого всего не заставлять человека читающего код думать, имя сущности должно само за себя говорить.
Программист - не должен додумывать смысл, а просто читать код.
Пример названия переменной
В качестве примера разберем названия переменной для книги:
let s = 'Война и Мир'; // Ничего не понятно
let string = 'Война и Мир'; // Тоже ничего не понятно
let book = 'Война и Мир'; // Книга, но какая
let bookName = 'Война и Мир'; // Уже лучше, подойдет
let bookNameIsMyRead = 'Война и Мир'; // Излишняя информация
let bookNameIsMyReadTheLastYear = 'Война и Мир'; // Еще больше лишней информация
Здесь главное найти золотую середину, в нашем случае - это bookName
Типы нотаций
Какие нотации именования самые ходовые:
- Верблюжья нотация
camelCaseNotation - Нотация Паскаля
PascalCaseNotation - Змеиная нотация
shake_case_notation - Шашлычная нотация
kebab-case-notation - Плоская нотация
flatcasenotation - Для констант
CONSTANT_CASE
Какую и в каких конструкциях использовать, зависит от языка. В javascript используется верблюжья нотация camelCaseNotation.
Соглашения об именовании
- Избегать одно буквенных названий
qquery - Используйте
camelCaseнотацию для именования объектов и функцийMYSUPER_objectmySuperObject - Конструкторы и классы именовать в
PascalCaseнотацииclass clientServerclass ClientServer - Не использовать
_в начале или в конце названий сущностей__myVariable_myVariable - При экспорте функции использовать нотацию
camelCaseи должно совпадать с названием функцииexport default mySuperPuperExtraFunction; - При экспорте классов, конструкторов, объектов использовать
PascalCaseнотациюexport default AnimalClass; - Сокращения и аббревиатуры должны быть в верхнем или нижнем регистре
HtTpRequestshttpRequests HTTPRequests
Именование переменных
- Переменная может содержать буквы, цифры,$,_ , но не может начинаться с цифры.
- Все остальные символы недопустимы.
- Переменная
aиAразные переменные. - Переменные нельзя называть зарезервированными словами
- Имя должно быть коротким, интуитивно понятным и описательным.
Предикаты и коллекции
- Функция-действие-глагол
- Переменная-существительное
Предикаты (проверки) начинать с префикса is
isValid()isNull()isTest()isEmpty()
Количество чего-то в чем-то
hasUsers(1)- есть ли в списке пользователи с типом 1hasListeners()
Переменная обозначающая количество.
Сущность во множественном числе + count.
symbolsCountcharsCountstringsCountanimalsCount
Коллекция - это всегда элемент во множественном числе:
errorscollectionspeoplescarsnumbersitems
Парные слова
begin-endbest–worstbig-littleclean-dirty
Думай, прежде чем назвать
Что хранится в переменной, например file, но файл это большое понятие, как правило, это какая-то часть файла.
fileNamefilePathfileExtensioncontentheader
Если в переменной храниться строка, то здесь зависит от ее происхождения.
text- произвольная строкаsentencecharwordstring
Потрать время и подумай как назвать переменную, которая будет отражать суть, что в ней лежит.
unpaidOrdersInPreviousQuarterCount - количество неоплаченных заказов в предыдущем квартале.
sistersAndBrothersOfKingCount - количество сестер и братьев короля
До и после
Правильно именовать такие переменные нужно так, чтобы они отражали суть, предмета который там находится
valueBeforeProcess- значение до процессаvalueAfterProcess- значение после процессаcontentBeforeMove- контент до перемещенияcontentAfterMove- контент после перемещения
Функция - это всегда действие
Функция всегда что-то возвращает, даже если она пустая. Порядок именования приблизительно такой. Что делаем? Над чем делаем?
Примеры названий функций
getNamesetNameparsegetValuerenderbuildgenerateSymbolenableUsermakePhpcreateFormcheckPermission
Одна функция – одно действие
Еще примеры функций
showMessage- показать сообщениеcalculateSum- считает и возвращает суммуupdateForm- обновляет формуinsertDataTable- вставить данные в таблицу
Функция конструктор называется с большой буквы, устоявшиеся соглашение
Кратко
- По возможности не писать сокращения в названиях переменных, исключения это счетчики и циклов (i, j, k, l, t)
camelCaseнотация для объявления переменных, для константCONSTANT_CASE- Одна функция – одно действие
is_(isBark,isTest) - состояние текущего контекстаhas_(hasProducts) - количество чег-то в чем-тоgetFruitsCount()- вернуть что-то из функцииsetFruits()- установить какое-либо значениеresetFruits()- сбросfetchPosts()- сделать ассинхронный запросremoveFilter- удалить что-то откуданоselectedFilters- указать что выбраноdeletePost- полное удаление сущностиcomposePageUrl- создать новые данные из существующихhandleLinkClick- совершить действие