Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Страшные сказки про PHP5, рассказанные на ночь… (https://forum.antichat.xyz/showthread.php?t=101294)

Trieg 15.01.2009 08:36

Страшные сказки про PHP5, рассказанные на ночь…
 
*статья не моя (внизу коперы)... просто понравилось как изложено (полезно почитать *оптимизаторам)

1) Какой бы ерундой вы не занимались с PHP, узкое место _всегда_ - БД. PHP - он как Буратино - тупОЙКАк... дрова. Lighttpd и Nginx позволяют разнести его по множеству физических серверов на раз без шума и пыли. Зарплата адекватного спеца по PHP в Москве - 30-45 тыс. рублей в месяц, стоимость аренды нормального сервера - от 3 тыс. рублей в месяц. А вы не знали ;) ?

2) Какой бы ерундой вы не занимались - 30-60% производительности (возможно и больше) PHP-кода решит правильно выбранный и настроенный акселератор.

3) Серебряной пули нет. Не важно, какой концепт вы применяете - строгое ООП (в стиле Zend Framework), функции в стиле PHP4 (или ограниченное ООП) или вообще лапшу в стиле "PHP для чайников" - ни одна из этих парадигм не даст ощутимый прирост производительности, если конечно ваши программисты не выше как минимум на голову.


4) Самый быстрый код - это код, которого нет. И уж точно - когда нет запросов к БД (см. п.1). Так что кеширование - это безусловно то, с чего начинается высокая производительность. Смело забивайте на _любую_ оптимизацию, пока есть возможность что-то закешировать. Закешировать можно все. Вопрос лишь в том, как посылать уведомления о необходимости обновить определенные части кеша. (Возможно кто-то помнит баги сайта free-lance.ru, когда в разных местах одни и те же цифры были разными, из-за чего было много недоразумений. Это позор.) И как правило, чем выше уровень абстракции, тем меньше производительность кода, и тем больше возможность кеширования при тех же затратах человеко-часов. И в итоге на более высокой абстракции можно выжать большую конечную производительность за счет кеширования. Но это уже кто как умеет:) (см. п. 3).

5) Если вы считаете, что echo быстрее print - вы неудачник. В современных MVC-проектах как правило подобные фичи вызываются как максимум три раза: во front-контроллере, в AJAX-контроллере и в RSS-контроллере - то есть максимум три оператора вывода в стандартный поток на весь ваш большущий проект.

6) Если вы молитесь на Front-контроллер Zend Framework - это ваше право. Но его концепт "/key/value/" считают революционным люди, не видевшие ничего кроме ?key=value&foo=bar, но кто-то заюзал концепт /virtdir1/virtdir2/virtfile/, используя грязные хаки ERROR 404, задолого до повсеместного появления на виртхостингах (и очень задолго до появления VDS) mod_rewrite (и PHP5;). Конечно, фронт-конроллер ZF очень гибкий, но не легче ли написать свой? Все вышенаписанное справедливо только для больших проектов, если вы пишете много маленьких - это не для вас (заюзайте стандартный Front Controller ZF и сосредоточтесь на легкости поддержки).

7)
echo "preved $foo $bar";
echo 'preved ' . $foo . ' ' . $bar;
echo 'preved ', $foo, ' ', $bar;
sprintf('preved %1$s %2$s', $foo, $bar);
Вы, как матерый профессионал хайлоада можете с закрытыми глазами сказать, какая конструкция быстрее? Расслабьте анус, батенька - вы неудачник.
Вы можете точно и аргументированно сказать, какую концепцию выбрать в качестве стандартной в рамках большого проекта - респект.

8) Забудьте и навсегда пошлите в глубокий анус виртуальные хостинги, как ваш самый страшный сон. Идите и купите себе виртуальный выделенный сервер с правами root за >=150 рублей в месяц. И поставьте туда ваш любимый Debian/Gentoo/FreeBSD, и управляйте им как Root Всемогущий! Отныне вы свободны! :)

9) Если на вашей рабочей машине PHP работает под Windows - вы нюхаете цветы в противогазе. Если вы хотите стать профессиональным серверным программистом под *nix - смело сносите Windows и ставьте *nix (Linux, FreeBSD, OpenSolaris, etc...) Если такой цели нет - можете запускать *nix-сервер в виртуальной машине (Virtual Box, VMvare, etc...), но пожалуйста, не мучайте PHP - не гоняйте его под Windows...

10) Если на вашей рабочей машине PHP работает без акселератора - вы нюхаете цветы в противогазе, надетом на респератор, а поверх этих гламурных шмоточек на вас еще надет... ТАНК! Установите уже акселератор, черт возьми! (upd: имеется в виду development-машина)

11) Если вы считаете, что постигли PHP5 в совершенстве - вы неудачник. Всегда есть, чему научиться. Если вы точно знаете, у кого вам есть чему поучиться - можете дальше не читать.

12) PHP5 (PHP4 забудьте, как страшный сон!) - очень коварная штука. Людей там слишком много. Большинство программистов находятся на уровне "ниже плинтуса". Причем некоторые из них умудряются писать умные книги (кстати, я до сих пор не видел ни одной нормальной книги по PHP5), и учить людей "тонкостям программирования на PHP" множеством других способов. Научитесь отделять зерна от плевел - то есть чайников от профессионалов, этот навык будет для вас одним из важнейших. Учитесь у профессионалов. Может быть, вы не представляете, сколько можно потерять времени, пытаясь учиться чему-то у чайников (и мне кстати тоже не верьте;)

13) И не верьте никому, кто заявляет, что PHP5 - "плохая" технология, пока не врубитесь в нее хотя бы на 90% и точно не будете знать, чего вам в ней не хватает ;)

автор: AirWorker
Источник:http://habrahabr.ru/blogs/php/22881/

nerezus 15.01.2009 10:37

Цитата:

10) Если на вашей рабочей машине PHP работает без акселератора - вы нюхаете цветы в противогазе, надетом на респератор, а поверх этих гламурных шмоточек на вас еще надет... ТАНК! Установите уже акселератор, черт возьми! (upd: имеется в виду development-машина)
Нах?

Цитата:

(кстати, я до сих пор не видел ни одной нормальной книги по PHP5)
Я видел 3 штуки. 2 выложены в теме.

Цитата:

И не верьте никому, кто заявляет, что PHP5 - "плохая" технология, пока не врубитесь в нее хотя бы на 90% и точно не будете знать, чего вам в ней не хватает
Я врубился на 90%. Она плохая.

a1ex 15.01.2009 10:39

ТС +1.
nerezus,вау,ку,куда пропадал?давно тя невидал.

KaZ@NoVa 15.01.2009 10:41

Информативно!!!...)) первый раз читаю такое!!

Dronga 15.01.2009 15:39

Цитата:

Сообщение от nerezus
Я врубился на 90%. Она плохая.

И чего же в ней тебе не хватает??

mr.The 15.01.2009 16:43

Цитата:

9) Если на вашей рабочей машине PHP работает под Windows - вы нюхаете цветы в противогазе....

10) Если на вашей рабочей машине PHP работает без акселератора - вы нюхаете цветы в противогазе....
+1 нах?

Цитата:

5) Если вы считаете, что echo быстрее print - вы неудачник.
никогда об этом не задумывался. всегда юзал echo.


а в целом.. ооп я использую очень редко. php5 юзаю только по тому, что там больше функций.
но частичто согласен со статьёй. особенно с
Цитата:

11) Если вы считаете, что постигли PHP5 в совершенстве - вы неудачник. Всегда есть, чему научиться.

life_is_shit 15.01.2009 17:00

"и мне кстати тоже не верьте"

не буду, ибо не информативно и не обосновано.

Pashkela 15.01.2009 17:12

Ну так, есть парочка интересных моментов, но в основном всё [:]|||||[:]

D Mak 15.01.2009 18:16

ну дык echo набрать быстрее..

rushter 15.01.2009 18:36

Цитата:

Сообщение от D Mak
ну дык echo набрать быстрее..

А если бы print быстрее был,все бы echo набирали ? :D


Время: 19:06