Представим себе, что программа из прошлого урока выглядит так:
<?php
$x = 'Father!';
print_r($x);
print_r($x);
Она по прежнему работает, но в ней изменилось имя переменной на $x
. Компьютеру без разницы, как мы называем переменные — это просто бездушная машина, но вот программистам — нет. Мы гораздо чаще читаем код, чем пишем. Причём не свой, а написанный другими людьми. От качества и понятности имён переменных зависит половина успеха в анализе кода.
Лучше посидеть и придумать название, которое описывает суть, смысл переменной, чем назвать её как попало, а в будущем переделывать. Постарайтесь давать им такие имена, чтобы они были максимально понятны без контекста, без изучения окружающего кода.
Среди разработчиков есть шутка: «самое сложное в программировании — названия переменных и инвалидация кеша». Придумывать названия и правда сложно. Как бы вы назвали переменную, в которой хранится количество неоплаченных заказов от клиентов, имеющих задолженность в предыдущем квартале?
Самопроверка. Придумайте название для переменной, в которой будет храниться «количество братьев и сестёр короля». Запишите его в блокноте или отправьте себе на почту. Не указывайте там ничего, кроме названия переменной. А через несколько уроков мы вернёмся к этой теме ;-)
$greeting
— пример простого имени, но не все имена так просты. Довольно часто они составные, то есть включают в себя несколько слов. Например, «имя пользователя». В разных языках применяются разные стили кодирования, и имя переменной будет отличаться.
В именовании переменных можно выделить три основных подхода, которые иногда комбинируют друг с другом. Все эти подходы проявляют себя, когда имя переменной состоит из нескольких слов:
my-super-var
.my_super_var
.MySuperVar
.mySuperVar
.В PHP используется CamelCase и его вариация lowerCamelCase, при котором первая буква первого слова — строчная. Именно lowerCamelCase применяется для переменных. Это значит, что имена соединяются друг с другом, при этом все имена кроме первого становятся с заглавной буквы: $userName
. С тремя словами это выглядит так: $mySuperVariable
.
Другое общепринятое правило гласит: не используйте транслит для имён, только английский язык. Если вы испытываете сложности с английским, то пользуйтесь переводчиком. Со временем, копаясь в чужом коде, вы сформируете правильные понятия для именования.
Названия должны не только передавать смысл, но и соответствовать синтаксическим правилам, которые обычно никак не проверяются на уровне языка, но нужны во время разработки. Процесс написания программ в современном мире — коллективная работа, и для лучшего взаимодействия в команде код пишется в едином стиле, как если бы над ним работал один человек. В каждом языке свои правила. В PHP долгое время творился хаос. Да и сам язык соткан из противоречий, причём не только в названиях. С этим вы столкнетесь и в следующих уроках, и в реальной работе. Относительно недавно в PHP появился общепринятый стандарт кодирования, к которому все так или иначе стремятся. Подобные стандарты описывают множество аспектов. Советуем с самого начала завести привычку заглядывать в стандарт и писать код в соответствии с ним.
К счастью, сегодня не нужно помнить все правила из стандарта, потому что существуют специальные программы, которые проверяют код автоматически и сообщают о нарушениях. Такие программы называются линтерами, и вы начнёте их использовать немного позже, когда у вас появится чуть больше опыта.
Стиль именования функций в PHP такой же, как и стиль именования переменных: lowerCamelCase. Но при выборе самих слов есть важное отличие. Функция — действие, вызов функции всегда подобен указанию «сходи», «возьми», «напечатай», «положи» и так далее. Вспомните, какие функции были в предыдущих уроках:
showDate
(«показать дату»)sub
(subtract — «вычесть»)print_r
(«напечатать»)round
(«округлить»)gettype
(«получить тип»)Переменная — сущность, поэтому мы используем существительные:
$child
$result
$euros
Берите на вооружение следующую структуру: функция — глагол, переменная — существительное.
Жизнь программиста наполнена такими моментами: открыть старый код и попытаться понять его. Будьте добры к будущему себе и к коллегам, давайте переменным и функциям понятные названия.
Посмотрим ещё раз на код:
<?php
$eurosCount = 1000;
$dollarsCount = $eurosCount * 1.25; // 1250
$rublesCount = $dollarsCount * 60; // 75000
print_r($rublesCount);
С точки зрения профессиональной разработки, такой код «пахнет». Так описывают код, который не соответствует так называемым лучшим практикам (best practices). И причина здесь вот в чём: уже сейчас, глядя на числа 60
и 1.25
, вы скорее всего задаетесь вопросом: «что это за числа?». А представьте, что будет через месяц! А как его поймет новый программист, не видевший код ранее? В нашем примере контекст восстанавливается благодаря грамотному именованию, но в реальной жизни код значительно сложнее, и поэтому догадаться до смысла чисел зачастую невозможно.
Этот «запах» вызывают магические числа (magic numbers). Числа, происхождение которых невозможно понять без глубокого знания происходящего внутри данного участка кода. Выход из ситуации прост: достаточно создать переменные с правильными именами, как всё встанет на свои места.
<?php
$dollarsPerEuro = 1.25;
$rublesPerDollar = 60;
$eurosCount = 1000;
$dollarsCount = $eurosCount * $dollarsPerEuro; // 1250
$rublesCount = $dollarsCount * $rublesPerDollar; // 75000
print_r($rublesCount);
Обратите внимание на следующие детали:
Вам ответят команда поддержки Хекслета или другие студенты.
Выделите текст, нажмите ctrl + enter и отправьте его нам. В течение нескольких дней мы исправим ошибку или улучшим формулировку.
Загляните в раздел «Обсуждение»:
Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно.
Наши выпускники работают в компаниях:
С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.
Зарегистрируйтесь или войдите в свой аккаунт