Комментарии 74
Я собираюсь перевести как только пыль чуть поуляжется.
С удовольствием помогу тебе в этом деле, если потребуется помощь. Обращайся.
Учитывая твой опыт, будет намного лучше, если это сделаешь ты )
Пользуясь случаем, хочу поинтересоваться…
А как продвигается (продвигается ли вообще) перевод книги по Yii?
А как продвигается (продвигается ли вообще) перевод книги по Yii?
И в итоге это добро да и в pdf одним файлом, было бы очень здорово.
Задумка хорошая, но что-то использование github pages/Jekyll/блог-движка/линейной структуры не воодушевляет. Или я плохо представляю их возможности и возможно создавать, скажем, таксономии типа как в Drupal, позволяющие классифицировать один объект контента по многим измерениям? Да и возможности коллобрации, имхо, не самые лучшие у github pages. Есть же вики.
Капитан PHP тут как тут! Всегда настороже.
itmages.ru/image/view/585443/11cf38f0
itmages.ru/image/view/585443/11cf38f0
верной дорогой идете, товарищи! :)
Сайт не открывается. Хабраэффект?
Хороший язык PHP, особенно 5.4. Сам на нем пишу. Проблема у него в основном с производительностью. Конечно на микро скриптах и минисайах это не так заметно, а вот в больших проектах уже реальная проблема. Выезжает это все пока на внедрении кеширования везде где это только возможно — парсинг аннотаций, маршрутизация, кеширование классов, конфигов, шаблонов на всех уровнях построения системы
Вы серьезно? А мне всегда казалось, что в больших проектах основное время работы приложения тратится на операции с БД. Что касается производительности, то в PHP с ней все очень даже неплохо — быстрее чем Perl, Python или большинство Java-веб-приложений. Пруфлинк не запрашивайте — это известный факт.
Уточнение: хорошо оптимизированному и написанному прямыми руками Java-приложению сложно составить конкуренцию в производительности, но большинство Java-приложений не могут этим похвастаться.
> А мне всегда казалось, что в больших проектах основное время работы приложения тратится на операции с БД.
Это, если вы, не додумались массово рефлексировать объекты, для того, чтоб реализовать подобие аннотаций.
Это, если вы, не додумались массово рефлексировать объекты, для того, чтоб реализовать подобие аннотаций.
www.gotsulyak.com/wp-content/uploads/2010/08/groovy-php-python-ruby-performance-comparison.png вот не запрашиваемый пруф.
где показывается что скорость работы у питона и перла выше, чем у пхп.
И вообще известный факт что пхп не самый быстрый язык, но и не самый медленный.
Но откуда вы взяли что он быстрей питона и перла я не представляю.
да и как сказали в соседнем комментарии — все зависит от конкретного разработчика.
где показывается что скорость работы у питона и перла выше, чем у пхп.
И вообще известный факт что пхп не самый быстрый язык, но и не самый медленный.
Но откуда вы взяли что он быстрей питона и перла я не представляю.
да и как сказали в соседнем комментарии — все зависит от конкретного разработчика.
На самом деле нормальных сравнительных тестов так похоже никто и не проводил на реальных задачах.
Ну т.е. написать одинаково хорошо один и тот же высоконагруженный проект на двух языках и посмотреть что будет.
А так конечно глупо сравнивать ROR к примеру c ORM и т.д. и т.п. с native PHP и чистыми sql запросами.
Мое чисто субъективное мнение, что PHP все-таки немного быстрее, чем к примеру Perl, но это вполне возможно связано с тем, что особенности PHP я знаю на порядок лучше.
Ну т.е. написать одинаково хорошо один и тот же высоконагруженный проект на двух языках и посмотреть что будет.
А так конечно глупо сравнивать ROR к примеру c ORM и т.д. и т.п. с native PHP и чистыми sql запросами.
Мое чисто субъективное мнение, что PHP все-таки немного быстрее, чем к примеру Perl, но это вполне возможно связано с тем, что особенности PHP я знаю на порядок лучше.
shootout.alioth.debian.org/u64/benchmark.php?test=all&lang=php&lang2=python3
немного другой пруф
немного другой пруф
Вы сравнимаете 3й питон, хотя в веб разработке сейчас все используют 2й.
Что самое интересное — второго питона я в этом списке не вижу.
Что самое интересное — второго питона я в этом списке не вижу.
Во-первых, сравниваю не я.
Во-вторых, 2й питон медленнее 3го, равно как и php 5.2 медленнее чем php 5.4
Во-вторых, 2й питон медленнее 3го, равно как и php 5.2 медленнее чем php 5.4
вы мне даете ссылку.
вы не верно рассуждаете, и судя по всем кроме php ничего не видели, к сожалению
вы не верно рассуждаете, и судя по всем кроме php ничего не видели, к сожалению
Ох, я вам даю ссылку на достаточно известный ресурс. Чтобы вы поимели хотя бы немного понимания о том, как сложно комплексно оценить производительность языков.
А вот тот факт, что вы его не знаете, говорит о том, сколько всего видели вы.
Ну и тесты на которые вы ссылаетесь…
danvk.org/josephus.html
Говорят о вас больше, чем вы того сами быть может желали бы.
Что касается «рассуждений», то это не рассуждения. Вы можете установить все 4ре версии и проверить самостоятельно.
php 5.2.13 420 microseconds per iteration
php 5.2.17 429 microseconds per iteration
php 5.4.4 172 microseconds per iteration
python 2.6.6 83 microseconds per iteration
python 3.2.3 90 microseconds per iteration
python 3.3.0 70 microseconds per iteration
Я доступно для вас излагаю?
А вот тот факт, что вы его не знаете, говорит о том, сколько всего видели вы.
Ну и тесты на которые вы ссылаетесь…
danvk.org/josephus.html
Говорят о вас больше, чем вы того сами быть может желали бы.
Что касается «рассуждений», то это не рассуждения. Вы можете установить все 4ре версии и проверить самостоятельно.
php 5.2.13 420 microseconds per iteration
php 5.2.17 429 microseconds per iteration
php 5.4.4 172 microseconds per iteration
python 2.6.6 83 microseconds per iteration
python 3.2.3 90 microseconds per iteration
python 3.3.0 70 microseconds per iteration
Я доступно для вас излагаю?
Вполне доступно.
я не знаю где вы взяли эти тесты, я пологаюсь на свой опыт. Но даже по текстам ним видно что питон быстрей пхп.
B второе — в продакшене найти питон 3.3.0 на данный момент довольно сложно, если вы конечно пишите на питоне, то вам это должно быть известно. Плюс ко всему если эти тесты верны — то разница скорости работы питона по сравниную с разницой пхп — не существенна.
PS к сожалению дальше спор продолжать не вижу смысла :)
я не знаю где вы взяли эти тесты, я пологаюсь на свой опыт. Но даже по текстам ним видно что питон быстрей пхп.
B второе — в продакшене найти питон 3.3.0 на данный момент довольно сложно, если вы конечно пишите на питоне, то вам это должно быть известно. Плюс ко всему если эти тесты верны — то разница скорости работы питона по сравниную с разницой пхп — не существенна.
PS к сожалению дальше спор продолжать не вижу смысла :)
Я не утверждал что пхп быстрее питона (что именно я утверждал, вы можете попытаться осилить прочитать несколькими комментариями выше habrahabr.ru/post/147535/#comment_4977472 )
Тесты я взял ровно те, что использовались в вашем пруфе.
Но в виду вашей общей альтернативной одаренности вы даже этого понять не смогли.
Прискорбно… для вас.
Тесты я взял ровно те, что использовались в вашем пруфе.
Но в виду вашей общей альтернативной одаренности вы даже этого понять не смогли.
Прискорбно… для вас.
«Пруф», на котором просто картинка без единого слова и хоть какого-то описания, не воспринимается как-то серьезно.
www.gotsulyak.com/2010/08/post404 Вот пруф.
Кстати вы можете просто в гугле вбить скорость работы пхп, питон, перл и почитать статьи на эти темы, если вы мне не верите.
Кстати вы можете просто в гугле вбить скорость работы пхп, питон, перл и почитать статьи на эти темы, если вы мне не верите.
БД обычно неплохо кэшируется, основная нагрузка таки падает на php (ну или не php) бэки, а не базу.
Обычно (встроенными средствами СУБД), имхо, плохо, приходится принимать специальные меры (кэширование на уровне приложения, а не СУБД).
Ну да, на уровне приложения, конечно. Кеширование популярных выборок в мемекеше (а то и вообще на уровне nginx proxy cache) очень сильно снижает нагрузку на базу, этим очень глупо не пользоваться.
Не помню: инвалидация кэша — это первая или вторая по значимости проблем программирования вкупе с именованием сущностей языка? :)
Есть очень много задач, где эта проблема решается встроенным в memcache таймаутом;)
Очень редко встречаю на практике задачи, где инвалидации по TTL хватает. Обычно нужна оперативная: отправил POST запрос с комментом и он должен появиться у всех кто отправил GET на пост после окончания обработки этого POST. Заказчики на вопрос «допустимо ли что после того как коммент появился в базе была задержка перед его отображением в том или ином виде у посетителей?» отвечают однозначно — «нет!».
Во-первых, имхо, слвао хайлоад и заказчик не сильно совместимы. Бэки по нагрузке перевешивают базу, обычно, где-то начиная с 50-100 хитов в секунду и выше.
Во-вторых, для многих видов обновлений данных, кэш можно прогреть при обновлении.
В третих, задержка 1-10с при отображении данных у других пользователей, в 99.99% случаев некритична, если заказчик требует обратного и не слушает доводы против, пусть покупает сервера, вряд ли, другуй язык с самодуром справится лучше.
Во-вторых, для многих видов обновлений данных, кэш можно прогреть при обновлении.
В третих, задержка 1-10с при отображении данных у других пользователей, в 99.99% случаев некритична, если заказчик требует обратного и не слушает доводы против, пусть покупает сервера, вряд ли, другуй язык с самодуром справится лучше.
Иии вот опять любой пост про PHP скатился к обсуждению насколько php быстрый/кривой/медленный/правильный VS любой_другой_язык ))
Вообще о конкретном языке практически не говорим, вообще-то. А о соотношении нагрузки на базу и на интерпритируемый код.
Это да, но почему-то любой пост о php в итоге к этому приходит (:
Хотя это логично в принципе
Хотя это логично в принципе
Ну давайте об автомобилях поговорим. Мне вот только ручная коробка по душе…
А я два года проездил на ручной, а потом год на хорошем автомате и по моему мнению оба варианта имеют плюсы и минусы, но для этого у нас есть автокадабра )
DSG обходит и первую и вторую. Пруфлинк не запрашивайте — это известный факт.
А у меня автомат тоже от VAG — типтроник 6ст )) Так что про dsg я и сам в курсе, следующая моя машина будет скорее всего на ней
Холивар;) Не обходит, ездил на множестве машин с разными коробками, был большего мнения о роботе до того, как поездил на нем. Резвее получается ручка, но я соглашусь с тем, что, в целом, она для энтузиастов.
З.Ы. Резвость ручки обеспечивается тем, что нужную передачу можно воткнуть заранее и получить в нужный момент, мгновенный «кикдаун».
Ну и в моменты, когда машине не заводится и неплохо бы толкнуть, тоже начинаешь очень ценить именно ручку)
З.Ы. Резвость ручки обеспечивается тем, что нужную передачу можно воткнуть заранее и получить в нужный момент, мгновенный «кикдаун».
Ну и в моменты, когда машине не заводится и неплохо бы толкнуть, тоже начинаешь очень ценить именно ручку)
PHP жрет память ведрами, а это означает, что количество нод для PHP в высоконагруженных проектах растет вместе с кодовой базой.
> быстрее чем Perl, Python или большинство Java-веб-приложений. Пруфлинк не запрашивайте — это известный факт
Это неизвестный нефакт. Пруфлинк обязателен, ИМХО.
> быстрее чем Perl, Python или большинство Java-веб-приложений. Пруфлинк не запрашивайте — это известный факт
Это неизвестный нефакт. Пруфлинк обязателен, ИМХО.
Имхо, производительность на уровне других интерпретируемых языков с динамической типизацией. Где-то выше, где-то ниже, но порядок один.
И в чем конкретно заключается это проблема?
Что понимается под «большой проект»?
Что понимается под «большой проект»?
Я по воле судьбы админю проект на asp.net
До этого работал с проектами на PHP.
asp.net после PHP очень тормозной. ОЧЕНЬ. Чисто субъективно для меня как для админа.
До этого работал с проектами на PHP.
asp.net после PHP очень тормозной. ОЧЕНЬ. Чисто субъективно для меня как для админа.
Просто крутатенюшка, чего уж тут!
Ждем перевода. Удачи вам :)
Отличный ресурс — много полезных ссылок собрано.
НЛО прилетело и опубликовало эту надпись здесь
а вот тут интересно написано:
не, ну я понимаю что данные надо фильтровать, но зачем фильтровать фильтровать?
а вот если уж «быдлокодить»:
то хотя бы так:
зачем лукавить и сразу смещать фокус:
Плохо, если человек не будет понимать, почему его инжектнули в случае «быдлокода».
<?php
$pdo = new PDO('sqlite:users.db');
$stmt = $pdo->prepare('SELECT name FROM users WHERE id = :id');
$stmt->bindParam(':id', filter_input(INPUT_GET, 'id', FILTER_SANITIZE_NUMBER_INT), PDO::PARAM_INT);
$stmt->execute();
не, ну я понимаю что данные надо фильтровать, но зачем фильтровать фильтровать?
а вот если уж «быдлокодить»:
<?php
$pdo = new PDO('sqlite:users.db');
$pdo->query("SELECT name FROM users WHERE id = " . $_GET['id']); // <-- NO!
то хотя бы так:
<?php
$pdo->query("SELECT name FROM users WHERE id = " . ($_GET['id'] * 1)); // intval($_GET['id'])
зачем лукавить и сразу смещать фокус:
This is terrible code. You are inserting a raw query parameter into a SQL query. This will get you hacked in a heartbeat.
Плохо, если человек не будет понимать, почему его инжектнули в случае «быдлокода».
Дельно. Пулл-реквестните чтоли…
Последние 7-мь лет применяю полное преобразование всех пост/гет переменных в get_* post_* массив. С обработкой mysql real escape и с проверкой на sql комманды get_sql_* post_sql_* массивы. Таким образом можно и хайджекинг проверить, и собрать ай-пи «взломщиков» (в купе с првоеркой заголовков, ну это конечно для «начинающих взломщиков»).
Также один раз имел взлом по загрузке пхп-файла, вместо картинки. Теперь все картинки при загрузке проверяю на соотвесттвие типу и делаю им -х.
Также один раз имел взлом по загрузке пхп-файла, вместо картинки. Теперь все картинки при загрузке проверяю на соотвесттвие типу и делаю им -х.
полное преобразование всех пост/гет переменных в get_* post_* массив. С обработкой mysql real escape
простите, но это получается маджик квотс прям.
Имхо, неоправданный оверхед. Я экранирую данные перед выводом и именно тем способом, который для вывода нужен. Под выводом понимаю и вызовы любого внешнего сервиса типа mysql.
github codeguy
Josh Lockhart
знакомые личности :)
Josh Lockhart
знакомые личности :)
Может он и гуру пехапе, но в html/css ему много нужно ещё наверстать:
Если кому-то, пусть даже начинающему разработчику, нужно объяснять необходимость хеширования паролей, то я на это могу сказать только одно:
d23d74af6d760a8db5f76dac9ba5a690
Это MD5 без соли, чтобы не так сложно было догадаться.
d23d74af6d760a8db5f76dac9ba5a690
Это MD5 без соли, чтобы не так сложно было догадаться.
Если кому-то, пусть даже начинающему разработчику, нужно объяснять необходимость хеширования паролей...
Вы родились с этим знанием?
Вы родились с этим знанием?
Надеюсь ресурс не перестанет обновляться как подобный phpfaq.ru, интересно будет следить за развитием
www.slideshare.net/jsmith92/unsung-heroes-of-php больше конкретно полезных примеров.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Используем PHP правильно