Именование в 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
.
Соглашения об именовании
- Избегать одно буквенных названий
q
query
- Используйте
camelCase
нотацию для именования объектов и функцийMYSUPER_object
mySuperObject
- Конструкторы и классы именовать в
PascalCase
нотацииclass clientServer
class ClientServer
- Не использовать
_
в начале или в конце названий сущностей__myVariable_
myVariable
- При экспорте функции использовать нотацию
camelCase
и должно совпадать с названием функцииexport default mySuperPuperExtraFunction;
- При экспорте классов, конструкторов, объектов использовать
PascalCase
нотациюexport default AnimalClass;
- Сокращения и аббревиатуры должны быть в верхнем или нижнем регистре
HtTpRequests
httpRequests HTTPRequests
Именование переменных
- Переменная может содержать буквы, цифры,$,_ , но не может начинаться с цифры.
- Все остальные символы недопустимы.
- Переменная
a
иA
разные переменные. - Переменные нельзя называть зарезервированными словами
- Имя должно быть коротким, интуитивно понятным и описательным.
Предикаты и коллекции
- Функция-действие-глагол
- Переменная-существительное
Предикаты (проверки) начинать с префикса is
isValid()
isNull()
isTest()
isEmpty()
Количество чего-то в чем-то
hasUsers(1)
- есть ли в списке пользователи с типом 1hasListeners()
Переменная обозначающая количество.
Сущность во множественном числе + count.
symbolsCount
charsCount
stringsCount
animalsCount
Коллекция - это всегда элемент во множественном числе:
errors
collections
peoples
cars
numbers
items
Парные слова
begin
-end
best
–worst
big
-little
clean
-dirty
Думай, прежде чем назвать
Что хранится в переменной, например file
, но файл это большое понятие, как правило, это какая-то часть файла.
fileName
filePath
fileExtension
content
header
Если в переменной храниться строка, то здесь зависит от ее происхождения.
text
- произвольная строкаsentence
char
word
string
Потрать время и подумай как назвать переменную, которая будет отражать суть, что в ней лежит.
unpaidOrdersInPreviousQuarterCount
- количество неоплаченных заказов в предыдущем квартале.
sistersAndBrothersOfKingCount
- количество сестер и братьев короля
До и после
Правильно именовать такие переменные нужно так, чтобы они отражали суть, предмета который там находится
valueBeforeProcess
- значение до процессаvalueAfterProcess
- значение после процессаcontentBeforeMove
- контент до перемещенияcontentAfterMove
- контент после перемещения
Функция - это всегда действие
Функция всегда что-то возвращает, даже если она пустая. Порядок именования приблизительно такой. Что делаем? Над чем делаем?
Примеры названий функций
getName
setName
parse
getValue
render
build
generateSymbol
enableUser
makePhp
createForm
checkPermission
Одна функция – одно действие
Еще примеры функций
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
- совершить действие