Skip to content

Latest commit

 

History

History
84 lines (57 loc) · 4.94 KB

1-variable.md

File metadata and controls

84 lines (57 loc) · 4.94 KB

Переменные названы по-английски, в единственном числе

К переменным относятся свойства классов и объектов, параметры функций. Словосочетания допустимы:

const mascotName = 'Кекс';

const rectangle = {
    width: 10,
    length: 3,
    height: 5
};

function calculateRectangleSquare (width, length) {
    return width * length;
}

Для длинных слов можно использовать общепринятые сокращения: cb для единственного параметра-колбэка, evt для объектов события Event, err для объектов ошибок Error, src, img, btn и так далее.

Допускается использование «своих» сокращений, если они будут понятны проверяющему без объяснений.

Например, сокращённое название calcRectSquare вместо calculateRectangleSquare:

function calcRectSquare (width, length) {
    return width * length;
}

Слова calculate и Rectangle сокращены до calc и Rect соответственно. Но что делает функция по-прежнему понятно, а название стало короче.

А вот попытки сократить название функции ещё нарушат критерий, потому что сокращения вроде calcRSquare, calcRectSq, cRectSquare или cRS нельзя однозначно разгадать.

Обратите внимание, в циклах и цикличных методах можно использовать однобуквенные переменные i, j, k, l для индексов.

Почему нужно соблюдать этот критерий?

Сперва про английский язык. Всё просто — это стандарт. Разработчики во всём мире используют английский язык. Вы можете «встать в позу» и в своём проекте использовать транслит, код будет работать, но коллеги не оценят. В особенности иностранные коллеги. Если вы пока не знаете английский язык, пользуйтесь онлайн-переводчиком. Это нормально.

Теперь о сокращениях. Код читают программисты, компьютер лишь выполняет его. Все эти «читаемые имена» переменных нужны людям, и код вы пишете для людей. Относитесь к требованиями по именованию как к грамматике языка программирования. То, как разработчик следуюет требованиям, показывает насколько он образован.

Сравните транслит:

const kvadrat = {
    dlina: 10,
    shirina: 3,
    visota: 5
};

function poschitatPloschadKvadrata (dlina, shirina) {
    return dlina * shirina;
}

С английским языком:

const rectangle = {
    width: 10,
    length: 3,
    height: 5
};

function calcRectSquare (width, length) {
    return width * length;
}

Какой код проще читать? Думаю, ответ очевиден.

А теперь представьте, что разработчик не только пишет транслитом, но и сокращает имена: pschttPlschdKvdrt... Б-р-р.

Поначалу требования могут казаться странными. Это пройдёт, как только вам нужно будет разобраться в чужом коде, который игнорирует все требования. А разработчики гораздо чаще читают код, чем пишут. Причём чужой.


Правило «если сокращения будут понятны проверяющему без объяснений» не означает, что можно завернуть код студента по критерию, потому что вы привыкли использовать другое сокращение или полную форму слова. Если вам понятно, что кроется за именем переменной, критерий соблюдён.