Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: php и "оптимизация"

Сообщения:  [1-10]    [11-20]   [21-30]  [31-40] 

 
 автор: Николай2357   (04.01.2010 в 17:16)   письмо автору
 
   для: Trianon   (04.01.2010 в 16:58)
 

>Исходник - это то, что пишет, читает и правит человек. Вот о такой.

А разве не он же пишет HTML? Тот же исходник.
Что касается цвета - зависит от редактора. Нормальный редактор подсвечивает не только PHP, но и HTML, если тот представлен в виде гипертекста, а не в виде исходного текста для конструкции echo. Так что по хорошему вариант с переходами разбора читабельнее, чем куча echo. А если это простой редактор, без подсветки, то никакой разницы - нет там красного, все черное.

Так что игра стоит свеч. Причин несколько.
1. Читабельность исходного кода в редакторе с подсветкой html.
2. Простая стилизация и как следствие - читабельность результирующего кода в браузере
3. Скорость генерации.

Единственно, где этот вариант явно проиграет, это при экономии трафика и выдаче html одной строкой. Что актуально только на оооочень больших нагрузках. Но опять же при больших нагрузках стоит задуматься и о ресурсах сервера, а значит и неоптимальности варианта с последовательным вызовом echo.

>Потому как разработка и сопровождение станут процесс останавливать.
Ну смотря как это все организовать. Ничего пока нативные шаблоны не остановили.

  Ответить  
 
 автор: Trianon   (04.01.2010 в 16:58)   письмо автору
 
   для: Николай2357   (04.01.2010 в 16:09)
 

>Если нет разделения бизнесс-логики и представления, то о какой исходности идет речь?

Исходник - это то, что пишет, читает и правит человек. Вот о такой.

>И уж коли на то пошло, чем это читабельнее этого:
Практически ничем. Кроме разве тем, что данные отделены лексически от кода.
>Тем что в первом варианте html красный, а во втором - черный?
а подсветка это показывает.


>можно спокойно ответить:
>"Плохо. echo, будучи несколько раз последовательно вызванным, будет тормозить процесс."

И тут уже придется добавить - если вызывать echo 1 раз - станет отвратительно.
Потому как разработка и сопровождение станут процесс останавливать.

>Справедливости ради нужно отметить, что не особо.
Вот и стоит дли игра свеч?

  Ответить  
 
 автор: Николай2357   (04.01.2010 в 16:09)   письмо автору
 
   для: Trianon   (04.01.2010 в 15:28)
 

>Это верно. Но тогда сперва придется отмести, как несущественный, вопрос о стилевом оформлении исходного текста.

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

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

Если нет разделения бизнесс-логики и представления, то о какой исходности идет речь? Это просто код и границы стилей и читабельности тут весьма прозрачны.
Особенно в примере (03.01.2010 в 22:51)
Если о стилизации PHP говорить можно, то результирующий код будет представвлен полной кашей.
А если это сделано в целях экономии трафика клиента, то зачем там пробелы? Померла так померла, все равно это не разметка. И echo вызывать стопицот раз - это читабельно? Тогда уж и впрямь интереснее с конкатенацией.

>Вообще без echo придется помещать голый выходной код в файл исходного текста.
Исходный текст перестанет быть не то что читабельным, а таковым (исходным) вообще.


Это тоже весьма субъективно и спорно. Покажите пожалуйста стандарт, который регламентирует "исходный" код. И уж коли на то пошло, чем это
<?php 
  
echo "<table><tr><td>&bnsp;</td></tr></table>"
?>

читабельнее этого:
?>
<table><tr><td>&bnsp;</td></tr></table>
<?php 
? Тем что в первом варианте html красный, а во втором - черный?

Я бы мог понять, если бы текст вывода формировался гдето в функциях и выдавался бы не echo а return... Но тут то простое, прямое формирование вывода. Так к чему эти танцы с бубном, если можно к разметке применить стиль разметки, а к php стиль php?
Тогда и на это:

>А IceGhost спросил - а как оно по скорости?

>Ответ: А никак. К нему и требований-то таких не ставят.


можно спокойно ответить:
"Плохо. echo, будучи несколько раз последовательно вызванным, будет тормозить процесс."

Справедливости ради нужно отметить, что не особо.

  Ответить  
 
 автор: Trianon   (04.01.2010 в 15:28)   письмо автору
 
   для: Николай2357   (04.01.2010 в 15:09)
 

>Вообще то я не знаю, чем руководствовался автор данного кода, специально он игнорировал пробелы или это по недосмотру (сам стиль заставляет задуматься об этом).

Автор не игнорировал пробелы.
Автор наоборот применил их для формирования отступов в исходном тексте программы.
Сделал он это намеренно, руководствуясь соглашениями о стиле, вполне понятном.
В коде автора нет ни малейшего люфта недосмотра или неаккуратности.

>Но вопрос задал не автор кода,
Конечно.
>и вопрос недвузначный:
совршенно однозначный.
>
>IceGhost (03.01.2010 в 22:06)
>В phpbb3 очень любят делать подобным образом:
>
<?php 
>  echo "<table>"
>  echo   
"<tr>"
>  echo     
"<td>"
>  echo       
"&nbsp;"
>  echo     
"</td>"
>  echo   
"</tr>"
>  echo 
"</table>"
>
?> 

>Что думаете по этому поводу?
>Сильно ли отличается по скорости интерпретирования такая реализация от одного echo:

>
<?php 
>  echo "<table><tr><td>&bnsp;</td></tr></table>"
>
?>

>

>Я просто напомнил, что в данном случае корректнее вообще обойтись без echo.

Это верно. Но тогда сперва придется отмести, как несущественный, вопрос о стилевом оформлении исходного текста.
В том-то и суть, что автор базового примера (вернее стилевого паттерна), этот вопрос полагал в высшей степени важным, считая скорость интерпретации вторичной (если не более низкого порядка) проблемой. А IceGhost спросил - а как оно по скорости?

Ответ: А никак. К нему и требований-то таких не ставят.


Вообще без echo придется помещать голый выходной код в файл исходного текста.
Исходный текст перестанет быть не то что читабельным, а таковым (исходным) вообще.

  Ответить  
 
 автор: Николай2357   (04.01.2010 в 15:09)   письмо автору
 
   для: Trianon   (04.01.2010 в 14:57)
 

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

IceGhost (03.01.2010 в 22:06)
В phpbb3 очень любят делать подобным образом:
<?php 
  
echo "<table>"
  echo   
"<tr>"
  echo     
"<td>"
  echo       
"&nbsp;"
  echo     
"</td>"
  echo   
"</tr>"
  echo 
"</table>"
?> 

Что думаете по этому поводу?
Сильно ли отличается по скорости интерпретирования такая реализация от одного echo:

<?php 
  
echo "<table><tr><td>&bnsp;</td></tr></table>"
?>


Я просто напомнил, что в данном случае корректнее вообще обойтись без echo.

  Ответить  
 
 автор: Trianon   (04.01.2010 в 14:57)   письмо автору
 
   для: Николай2357   (04.01.2010 в 14:51)
 

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

Кстати есть еще один вариант.

echo ''
    .'1'
    .'2'
    .'3'
    .'4'
;

  Ответить  
 
 автор: Николай2357   (04.01.2010 в 14:51)   письмо автору
 
   для: Trianon   (04.01.2010 в 14:42)
 

Пусть неправомочно, неточно, но корректно и вполне наглядно. Если бы результат был бы не в пользу перехода разбора из php в гипертекст, тогда да. А так, даже с несколькими тысячами лишних символов вариант выигрывает по скорости, а значит более логичен.
И уж тем более нескольким последовательным вызовам конструкции echo.

  Ответить  
 
 автор: Trianon   (04.01.2010 в 14:42)   письмо автору
 
   для: Николай2357   (04.01.2010 в 14:30)
 

Если мы опираемся на характеристику кода - ответ жесткий: сравнение неправомочно, т.к. выходной код не совпадает.

  Ответить  
 
 автор: Николай2357   (04.01.2010 в 14:30)   письмо автору
 
   для: Trianon   (04.01.2010 в 14:25)
 

Имелась ввиду не логика ответа, а характеристика кода.))
Вот цитата:
neadekvat (03.01.2010 в 22:14)
А про первое - может, им так читать удобнее? Как-нибудь так было бы логичнее:
<?php 
  
echo "<table>\n";  
  echo 
"  <tr>\n";  
  echo 
"    <td>\n";  
  echo 
"      &nbsp;\n";  
  echo 
"    </td>\n";  
  echo 
"   </tr>\n";  
  echo 
"</table>\n";


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

  Ответить  
 
 автор: Trianon   (04.01.2010 в 14:25)   письмо автору
 
   для: Николай2357   (04.01.2010 в 14:00)
 

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

  Ответить  

Сообщения:  [1-10]    [11-20]   [21-30]  [31-40] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования