На работе началась настоящая война - сколько строк кода допустимо в одном файле php? У кого какое мнение по этому поводу?
код разделяется по логике, а не строкам или символам. Так, чтобы можно было без проблем делать один модуль вдвоем параллельно. Методично разделяю 100кб-ные файлы на несколько. Меньше 20к не получается, разрастаются )).
Ну, в среднем сколько строк. Имеется ввиду что пока ничего не оптимизировано, после ";" идет перенос строки и т.д.
Это положило начало... Чему-то PHP: if($a) echo $b; if($a) { echo $b; echo $c; } Вот содержание кода PHP: if(isset($_SESSION['user_num'])) { $q="SELECT id_comm FROM comments WHERE add_time >= NOW() - INTERVAL 1 HOUR AND user_id = {$_SESSION['user_num']} AND news_id = {$_GET['n']}"; if($r=mysql_query($q)) { if( mysql_num_rows($r) < 1 ) { mysql_free_result($r); DrawCommentForm(); } } } elseif($r=mysql_query("SELECT news_id FROM comm_spam WHERE ip_adress='{$_SERVER['REMOTE_ADDR']}' AND news_id={$_GET['n']}")) if( mysql_num_rows($r) < 1 ) { mysql_free_result($r); DrawCommentForm();} И так 3000 строк.
не, ну 3000 это много. Дело не в каком то техническо параметре — а в банальном человеческом восприятии. Я например знаю, что у меня предел нормального осмысления — около 1200 строк. Но у молодняка в моем отделе около 300-400 строк. Надо разбивать на функциональные блоки, разносить функции... Тут с ООП удобен принцип — один класс - один файл.
Осмысление здесь не при чем, главное что бы сервер не обращался к одному и тому-же файлу. Посетителей будет много, а почти весь код в "index.php" . Я то в коде без проблем разбираюсь, просто код трудно разбить на файлы. Как начали разбивать один файл - приходиться практически все остальные подключать.
Вот те которые нужно подключать не всегда можно отделить, те которые вообще редко отделить обязательно, остальные отделять нет никакого смысла кроме эстетического (что тоже немаловажно)
плохо читаемо, надо разворачивать ифы. И осмысление вполне причем, напрямую влияет на скорость отладки и модификации. 3000 много. Один класс на 50к еще кое-как туда-сюда, дальше уже пора задумываться "а правильно ли я делаю"
Я то все прочитать смогу, мне и не такое давали смотреть, хотя рука непроизвольно тянется подправить. Думаю если я понял, что написали - значит и остальные программеры поймут ( тем более опытным прогером меня трудно назвать). Здесь эстетический момент или понимание кода ничего не играет, тем более в конце концов проверять код буду только я ( предположительно), и вся ответственность за все проекты на мне будет лежать ( ошибка - виноват я, а не прогер ). Мне важна только скорость сервера. Так что здесь вопрос был только в целесообразности такой разбивки.
Ещё раз повторяю, что никто кроме меня и программиста код пересматривать не будет, соответственно читабельность необходима только нам. Прошу обосновать.
Серверу глубоко пофиг, он все равно соптимизирует скрипт перед исполнением. А вот про пофигизм к чистете кода... чтож, опыт обоснует. Потом. И больно. )
+ не более 200 строчек кода/метод + не строить слоёный пирог из IF-ов + форматирование + документация. Не код будет, а конфетка
Я наверное не пуганый . Когда на C# или Delphi програмил, согласен, держать в чистоте все надо было. Но в сайтостроении (тем более когда проект не будет переделываться) такого не замечал. Пол тыщи мой выбор, или сайт превращается в нагромождение файлов. P.S. Вижу тема была создана не напрасно.
Имхо 1000 строк в файле - предел нормальной читабельности. И даже эти 1000 строк должны быть грамотно оформлены. Разумная экономия развёртывания(if ($a) echo 1, максимальное уменьшение дублируемости, объявление функций отдельно - модуль отдельно и т.д.
DZEN да вот как раз наоборот, имхо, в Дельфи и С дебаг-онлайн, по процедуркам можно прыгать, пошагово отлаживать, а в ПХП только эхи расставлять... вроде у пхп предел на файл около 2Гб, не парьтесь лучше скажите, а есть ли ограничение на длину строки? а то у меня некоторые регулярки в блокноте на несколько строк сами складываются (уж больше 1024 символов)
Я когда по субботам подрабатывал преподом, у меня был студент который называл все переменные: BOLT1, BOLT2, BOLT3, BOLT4, BOLT5 ... Читабельность была нулевая на первой же строке .
DZEN мало информации, может там подбор остнастки для станков каких, и болты там нужны, вот и переменные
К вопросу об свертке кода. 0) if ($a) $b=$c; я стараюсь писать if ($a) { $b=$c; } потом меньше проблем с циклами, читается вроде нормально. Если одна длинная строка - разворачиваю 1) PHP: if($tz==9 && $time9 ==1) $treug=1; if($tz==10 && $time10==1) $treug=1; if($tz==11 && $time11==1) $treug=1; if($tz==12 && $time12==1) $treug=1; if($tz==13 && $time13==1) $treug=1; if($tz==14 && $time14==1) $treug=1; if($tz==15 6 && $time15==1) $treug=1; if($tz==16 && $time16==1) $treug=1; if($tz==17 && $time17==1) $treug=1; if($tz==18 && $time18==1) $treug=1; if($tz==19 && $time19==1) $treug=1; if($tz==20 && $time20==1) $treug=1; заменил на $tzz='time'.$tz; if ($$tzz) $treug=1; коротко, но не нравится само использование $$ 2) (!empty($_SESSION['filter'])) ? $smarty->assign("filter", $_SESSION['filter']) : $_SESSION['filter'] = ''; коротко, но имхо уже хуже читаемо. 3) всякие наборы case и elseif стараюсь превращать в $choise=array(); $choise[0]="Вариант 0"; ... $out=$choise[$n];
Вообще все переменные и в любых прогах,так что там не про станки, там что-то личное . Может в понедельник с утра будет ничего не понятно - но написано то профессионально!
armadillo, в третьем случае можно просто array('choise1', 'choise2',...,'choiseN'); записать. $$ тоже почти не использую, ибо пока мышление не то. Ну а первый случай мне непонятен. Какие проблемы с циклами? Кстати, ещё, когда много элементов в массиве объявляю, пишу примерно так: PHP: $arr = array( 'element1', 'element2, 'element3', 'element4', 'element5', 'element6' );