Явное лучше неявного. Не нужно использовать сокращения для имён, даже если кажется, что эти сокращения общеизвестны. Другой человек, возможно, раньше с ними не сталкивался. Также сокращения вынуждают держать в голове контекст их использования:
console.log(e); // что такое e?
// Плохо, сокращение требует контекста:
document.addEventListener('click', (e) => {
console.log(e);
});
try {} catch (e) {
console.log(e);
}
// Хорошо, явное имя
document.addEventListener('click', (event) => {
console.log(event);
})
try {} catch (error) {
console.log(error);
}
Имена предикатов должны быть вопросами, на которые можно ответить «да» или «нет». Если вопрос сам по себе не является глаголом (например, includes, equals), имя предиката должно начинаться с is, are, has, can и т. п.:
// плохо
const authorisation = Boolean(state.currentUser);
const allowPublishing = state.currentUser.permissions.includes('publishing');
const strictEquality = (a) => (b) => a === b;
// хорошо
const isAuthorised = Boolean(state.currentUser);
const canPublish = state.currentUser.permissions.includes('publishing');
const hasFriends = state.currentUser.friends.length > 0;
const strictEquals = (a) => (b) => a === b;
Имя переменной должно описывать суть хранимого значения и начинаться с существительного (или прилагательного, а затем существительного):
// плохо, начинается с глагола
const getUserName = 'andrew-r';
// хорошо
const userName = 'andrew-r';
const currentPageNumber = 1;
Имя функции должно начинаться с глагола:
// плохо
function nextPageNumber() {}
// хорошо
function getNextPageNumber() {}
Имя функции должно описывать не момент вызова, а совершаемое действие:
// плохо
function onClick() {}
// хорошо
function goToNextPage() {}
Если функция возвращает или устанавливает какое-либо значение, её имя должно начиться с get
или, соответственно, set
:
// плохо
function userAge() {}
function userName(name) {}
// хорошо
function getUserAge() {}
function setUserName(name) {}