Страшные сказки про PHP5, рассказанные на ночь…

Discussion in 'PHP' started by Trieg, 15 Jan 2009.

  1. Trieg

    Trieg Elder - Старейшина

    Joined:
    26 Oct 2007
    Messages:
    82
    Likes Received:
    9
    Reputations:
    0
    *статья не моя (внизу коперы)... просто понравилось как изложено (полезно почитать *оптимизаторам)

    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/
     
    2 people like this.
  2. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    Нах?

    Я видел 3 штуки. 2 выложены в теме.

    Я врубился на 90%. Она плохая.
     
  3. a1ex

    a1ex Banned

    Joined:
    11 Oct 2006
    Messages:
    517
    Likes Received:
    130
    Reputations:
    -13
    ТС +1.
    nerezus,вау,ку,куда пропадал?давно тя невидал.
     
    1 person likes this.
  4. KaZ@NoVa

    KaZ@NoVa Elder - Старейшина

    Joined:
    5 Jul 2008
    Messages:
    368
    Likes Received:
    438
    Reputations:
    -16
    Информативно!!!...)) первый раз читаю такое!!
     
    1 person likes this.
  5. Dronga

    Dronga ВАША реклама ТУТ!!

    Joined:
    1 Jul 2005
    Messages:
    575
    Likes Received:
    239
    Reputations:
    249
    И чего же в ней тебе не хватает??
     
  6. mr.The

    mr.The Elder - Старейшина

    Joined:
    30 Apr 2007
    Messages:
    1,080
    Likes Received:
    456
    Reputations:
    38
    +1 нах?

    никогда об этом не задумывался. всегда юзал echo.


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

    life_is_shit Elder - Старейшина

    Joined:
    21 Aug 2007
    Messages:
    300
    Likes Received:
    149
    Reputations:
    19
    "и мне кстати тоже не верьте"

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

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    Ну так, есть парочка интересных моментов, но в основном всё [:]|||||[:]
     
  9. D Mak

    D Mak Elder - Старейшина

    Joined:
    23 Jun 2007
    Messages:
    136
    Likes Received:
    27
    Reputations:
    0
    ну дык echo набрать быстрее..
     
  10. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    А вот этого:
    В дополнение к этому нормальный менеджер памяти, который сможет отдать память обратно системе.

    Тут согласен - под винду многих вещей нет, многие ставятся через мегажопу.

    Ровно как ' быстрее ".
    Если считаете, что быстрее обратные варианты - тоже неудачник.
    Говорил в соседней теме об этом.
     
    1 person likes this.
  11. Doom123

    Doom123 Elder - Старейшина

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    а если не секрет чего нету в пхп под виндой ?
     
  12. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    getmxrr и подобные ф-ии.
    Расширения вроде ffmpeg
    Да и просто вещи из pcntl.
     
    1 person likes this.