В информатике есть только две сложные вещи: инвалидация кеша и именование вещей. - Фил Карлтон

Переменные - это простейший элемент программирования, который используется для хранения информации, которая будет обрабатываться программами. У каждой переменной есть имя и значение. Значение может быть любым, в зависимости от потребностей программы. С другой стороны, при написании хорошего кода присвоение имен переменным - тривиальная задача.

Многие разработчики (что не исключает меня), как правило, портят переменные при написании кода. Даже иногда, когда разработчик запускает проект, он сначала правильно назвал переменную.

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

Почему программисты обычно пишут« Сложные имена переменных?»

Неопытный - не привык писать единообразно и не понимает важности последовательного письма.

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

Копировать и вставить. При использовании функций из внешнего проекта или обучении из другого источника, такого как Github и Stackoverflow, программисты слишком ленивы, чтобы изменить имя переменной.

Выглядит умно. Использование разнообразных и разных терминов делает код сложным и удовлетворительным для создателя.

Древний язык программирования. Некоторые старые языки программирования требуют записи короткого имени переменной, чтобы уменьшить использование памяти при компиляции.

Не существует абсолютного стандарта того, что могло бы сделать имя переменной хорошим или ужасным. Но хорошие переменные должны быть понятны, когда другие программисты читают код. Вот несколько советов по написанию четких переменных, вдохновленных книгой Чистый код.

# 1 Напишите имя, раскрывающее намерение

$w = 10;
$h = 5;
$l = 7;
$v = $w * $h * $l;

Когда вы впервые читаете эти коды, вам, возможно, стало сложнее понять, каково истинное назначение этих переменных. Но по сравнению с этим примером:

$width = 10;
$height = 5;
$length = 7;
$volume = $width * $height * $length;

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

Не бойтесь писать длинное имя переменной, если оно соответствует описанию цели переменной. $MAX_STUDENT_PER_CLASS лучше, чем $MAX_STUD, верно? Эта переменная не только более наглядна, но и более удобна для поиска, и ее легко найти, когда мы хотим отследить переменную. Ключ в том, чтобы избежать дезинформации при написании переменной.

Есть один пример сценария, когда можно использовать переменную с коротким именем, когда область действия мала (пример: цикл)

for ($x = 0; $x <= 10; $x++) {
    //Block of codes
}

# 2 Используйте согласованную нотацию для соглашения об именах

Это распространенные способы именования переменных:

Слова, разделенные регистром букв - каждое слово начинается с заглавной буквы, между словами нет разделителя.
Обычно используется в: JavaScript, Python, Ruby

$TaxRateInDecimal = 10/100;
$TotalPurchaseAmount = 520000;
$TaxAmount = $TotalPurchaseAmount * $TaxRateInDecimal;
$GrandTotal = $TotalPurchaseAmount + $TaxAmount;

Нижний регистр верблюда - каждое слово, кроме первого, начинается с заглавной буквы.
Обычно используется в: Java, Microsoft .NET, Swift

$firstName = "John";
$lastName = "Doe";
$fullName = $firstName." ".$lastName;

Слова, разделенные разделителями. Каждое слово разделяется дефисом («-») или подчеркиванием («_»), и все слова пишутся не заглавная буква.
Обычно используется в: Perl, PHP

$link_to_facebook = "https://www.facebook.com";
$link_to_most_popular_search_engine = "https://www.google.com";

Кому же мне тогда следовать? Фактически, разработчик должен решить, какой конвенции следовать. Но есть некоторая обычная практика для нескольких популярных языков программирования, которой программист может следовать. Например, PHP имеет руководство по стандарту именования от Pear. Однако эти соглашения об именах не являются абсолютным правилом, они только помогают разработчику иметь один и тот же стандарт во всем мире.

# 3 Используйте стандартные условия

Когда разработчики создают приложение, будут использоваться многие термины с похожими функциями.

$max_student_amount
$maximum_student_amount
$highest_student_amount
$student_amount_limit

Эти переменные, указанные выше, на самом деле имеют ту же цель. Он используется для установки максимального количества учеников в классе. Но использование различных терминов для кодов может раздражать, потому что другой разработчик должен заново понимать все термины и значение, стоящие за этим ключевым словом (в этом примере, ключевое слово maximum).

# 4 Не нумеровать имя переменной

Разработчики склонны называть переменные как можно быстрее, потому что создание функций для них уже достаточно сложно. Когда программисты взаимодействуют с программой, в которой хранится множество переменных и объектов, они часто называют ее одинаковыми именами и присваивают им порядковые номера.

Например, в одном классе контроллера необходимо передать в представление несколько данных, а имя переменной данных - $data, $data2, $data3 и $data4. Поначалу это не будет проблемой, потому что разработчик знает цель и содержание данных соответственно.

Вы знаете, что происходит дальше, когда к команде присоединяется новый разработчик.

# 5 Когда вы найдете другой способ назвать переменную, выполните рефакторинг как можно быстрее

Чтобы решить проблему, указанную в пункте 4, разработчик должен внимательно относиться к поиску имен переменных. Хотя они сосредоточены на функции, а не на именовании переменных, они не должны оставлять «безымянную» переменную (вы понимаете, о чем я).

Когда вы говорите: «Я реорганизую эту переменную позже», вы уже солгали себе. Потому что обычно вам это надоедает, и вы не хотите снова трогать эту функцию после 3 дней отладки. По сути, вы забываете провести рефакторинг. Чтобы преодолеть это, вы должны сформировать мышление, чтобы тратить больше времени на хорошее имя переменной.

Когда вы найдете другое слово или термин для замены и улучшения имени переменной, как можно скорее реорганизуйте этот код.

Наконец, я знаю, что иногда бывает трудно подумать о собственном имени в вашем коде, когда вы сильно беспокоитесь о сроках выполнения проекта или даже об алгоритмах. Вы просто стремитесь к функции, которая работает должным образом в соответствии с целью.

Однако у этого есть много преимуществ в будущем. Не только вы и ваши товарищи по команде лучше понимаете ваш код, это может улучшить устойчивость кода в будущем. Когда вы вернетесь к той же кодовой базе и перечитаете ее снова, вы поймете свои коды.

Лично я могу сказать, что написание правильного имени переменной может оказаться очень ценным вложением в ваши коды.