Использование имен переменных большой длины

Статус
В этой теме нельзя размещать новые ответы.

Гриша К.

Новичок
Использование имен переменных большой длины

Здравствуйте.

В скрипте используются переменные большой длины:
$privilege_catalog_category_delete = 1; // (35 символов) привилегия_каталог_категория_удаление
$privilege_help_category_delete = 1; // (30) привилегия_помощь_категория_удаление

Используются в скрипте они в среднем 5-10 раз.

(В некоторых скриптах, $privilege_catalog_category_edit может иметь имя $privilege_edit -
но не во всех криптах сриптах переменные могут быть такими короткими, я не имею ввиду тот факт, что их можно так сокртить: $priv_catal_catag_edit - такой вариант мне кажется мене удобным в плане читабельности)


Как написано в статье: http://php.spb.ru/php/speed.html
переменные длиной более 8 символов тормозят программу на 15%, переменные длинной более 32 символов тормозят программу почти на половину.

Я попробовал вывести на странице различные переменные, циклом (10 000 интераций), смотрел скорость выполнения при помощи WinCacheGreed (http://phpclub.ru/faq/wakka.php?wakka=PhpProfiling&v=14i0):
echo $privilege; (0,26ms)
echo $privilege_catalog_category_delete; (0,28ms)
echo $privilege['catalog_category_delete']; (0,29ms)
Ну при интерации в 10 раз, раpница не определна. Насколько эти результаты точны незнаю.

Скажите пожалуйста, каких разумных ограничений длины переменных вы стараетесь придерживаться? Стоит ли бороться с переменными длинной в среднем 25 символов (+- 10), при их использовании на странице до 10 раз? оправданы ли моя настороженность по поводу переменных большой длинны?
 

ForJest

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

hermit_refined

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

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

Фанат

oncle terrible
Команда форума
мда. и только личное знакомство с Димой мешает мне высказывать всё, что я о ней думаю, в своих обычных выражениях...
 

Гриша К.

Новичок
Спасибо всем за ответы.

Frol, поискал в google, нашел кратоке понятное оперделение сути:
открытая Фибоначчи последовательность 1, 1, 2, 3, 5, 8 и так далее, где каждое следующее число является суммой двух предыдущих. Щас уже голова не варит разбираться с тем как это применить в именовании переменных, но мне интересно, еще в этом поразбираюсь.


ForJest,
несовсем я вас понял, вот пример:
$privilege_catalog_category_delete = user_privilege_check('catalog.category.delete'); (79 символов )

Идентификатор переменной - "$privilege_catalog_category_delete";
Оператор присвоения - "="
Все что справа - "user_privilege_check('catalog.category.delete');"

В данном случае рекуомендуется уложиться в 80 символов? Если это так, то я думаю у меня есть места где и 90 символов есть, есть причины для беспокойства?. Да уж.

Но мне вот непонятно по поводу идентификатора переменной не длинее 200 символов, если "ИД переменной" + "=" + "значение" - должно быть не более 80 символов.

Запутался я с этим.


hermit_refined, по поводу порядка, в моем случае он оправдан, пример:
Для того чтобы в шаблоне определить, выводить ли ссылку (/catalog/category.php?mode=delete&category_id=1) пользователю на удаление категории,
в срипте я определяю переменную привилегии (catalog.category.delete):
$privilege_catalog_category_delete - теперь я думаю логика видна
 

Андрейка

Senior pomidor developer
Гриша К.
строки скрипта длинной более 80 символов хранятся не в оперативке, а в файле подкачки, а это, как ты понимаешь, намного тормозит скрипт.. кстати, в эти 80 символов входит и символ перевода строки, который может быть как "\r\n"(2 символа), так и "\r"(1 символ).. поэтому скорость скрипта еще очень сильно зависит от редактора, в котором он писался... у вас наверняка там 79+2=81 - и все, тормоза будут

и вообще нет смысла использовать имена переменных длиннее 1 символа.. все равно редко использюутся одновременно больше 26 переменных. а переменные, которые уже не используются не забывай unsetить.
 

Гриша К.

Новичок
Андрейка, спасибо за разъяснения,
по данному вопросу мне многое стало ясно,
и я знаю теперь новые критерии написания кода (ограничение строки до 80 символов - рекомендуется).
 

vovanium

Новичок
Андрейка
Ты хоть бы смайлик поставил, а то некоторые примут это как руководство к действию :)
 

boombick

boombick.org
Андрейка
Чтож ты так издеваешься-то? =)

-~{}~ 05.12.06 09:27:

Имхо, в юмор надо...
 

Гриша К.

Новичок
Спасибо всем за ответы.
Много разных ответов, каков же правильный ответ на поставленные вопросы?

Если учесть, то что название используемых переменных, понятно, легко читаемо и легко по памяти воспроизводимо,
повлияет ли cущественно длинна переменной ну в среднем в пределах 80 символов, на производительность скрипта.

Пример:
PHP:
// 1) 
$privilege_catalog_category_delete = user_privilege_check('catalog.category.delete'); (~ 85 символ)
// 2) 
$privilege_catalog_category_delete = 0;
if(user_privilege_check('catalog.category.delete'))
         $privilege_catalog_category_delete = 1;
В данном случае есть приоритет в использовании одного из вариантов, в плане повышения производительности скрипта?

В большинстве случаев, в реальности используется имя переменной $privilege_delete (на странице /catalog/category.php)
Иногда - $privilege_category_delete (/catalog/product.php)
И предположительно в некоторых скриптах может быть переменная - $privilege_catalog_category_delete (/help/category.php)
 

hermit_refined

Отшельник
ну всё.
теперь новички будут шепотом передавать друг другу тайное знание про строки, хранящиеся в файле подкачки.
кто бы рассказал - ни за что бы не поверил...

P.S. Гриша К., не принимайте близко к сердцу, Андрейка просто коварно пошутил. Но реальность такова, что если вы не перестанете думать о производительности и длине названий переменных, вы непременно сойдете с ума. Завязывайте.
 

Гриша К.

Новичок
Ну спасибо hermit_refined, Фанат за внесение ясности.
Все я завязываю с этим вопросом, действительно закипаю,
и буду ориентироваться на понятность названия, легкость читаемости и воспроизводимости по памяти, имен переменных.
 

ForJest

- свежая кровь
Гриша К.
Главное при всё при этом не забывай про 80 символов.
 

mak_sim2001

Новичок
$variable_login_that_me_recive_from_form_method_POST = $_POST['from_form_login_field_username_method_POST'];
:) зато можно читать как книгу
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху