
Сегодня в официальной документации PHP появилась новая фича: почти любой пример кода можно выполнить и сразу посмотреть результат.
User
Сегодня в официальной документации PHP появилась новая фича: почти любой пример кода можно выполнить и сразу посмотреть результат.
На Хабре есть такая штука, как рейтинг авторов. Ну то есть формально это рейтинг пользователей, но в реальности вряд ли в него сможет попасть даже супер-активный читатель. Так что остаются только авторы.
В списке много прославленных имён, но нас сейчас интересует самое первое. Чемпион Хабра. Тот автор, чьи работы посетители сочли самыми интересными, самыми полезными, самыми результативными. Я предлагаю познакомиться с ним поближе. К сожалению, мы не так много знаем о нём. Даже реального фото у меня нет, так что пришлось немного пофантазировать вместе с нейросетью Кандинский.
Недавно я обратил внимание на одно заблуждение, связанное с генераторами, а точнее — с тем, как они позволяют экономить память. Такое ощущение, что многие воспринимают генераторы как инструмент, который позволит им получить "большой прирост производительности" из ничего. Или за такую шляпу фокусника, в которую можно засунуть бесконечное количество данных и не тратить память в самом скрипте.
Сначала я удивился — откуда взялись такие идеи? Ведь мы много лет работали с большими объемами данных без всяких генераторов. Лучшая статья про генераторы в РНР, опубликованная ещё десять лет назад, Что генераторы могут для вас сделать Антонио Феррары тоже практически не упоминает экономию памяти. У меня и у самого всегда было чёткое ощущение, что хотя генераторы — это совершенно отличное изобретение, у которого есть множество разнообразных применений, но вот только экономии памяти среди них нет.
В итоге у меня разыгралось любопытство и я решил разобраться с этим вопросом.
Меня всегда очень интересовала довольно грустная ситуация с языком РНР. Из неказистого шаблонного движка для веб-страничек, к середине 2010-х он вырос в мощный, современный и аккуратный язык программирования… в то время как практически все обучающие материалы в сети выставляют его всё тем же неуклюжим уродцем, который с огромным трудом, не соблюдая никаких стандартов, позволяет разве что сделать примитивную веб-страничку с кучей уязвимостей. Что, разумеется, уже давно совершенно не так. Поэтому когда на форуме РНР клуба появился пост о наборе "наставников" на курс по РНР в HTML Academy, я не раздумывая подал заявку. Чтобы посмотреть как с обстоит с этим дело на платных курсах, а так же по возможности поделиться своим опытом в этой области.
Что вам сказать? "Если хотите, чтобы вам и дальше нравилась колбаса, не берите экскурсию на мясокомбинат"
Небольшой дисклеймер от переводчика: в РНР сложилась парадоксальная ситуация. Сам язык ушёл далеко вперёд, но изучают его по жутко устаревшим материалам. Собственно, постоянный кринж от кода на Тостере (как в вопросах, так и в ответах) и побудил к переводу данной статьи.
Кроме того, переводчик, также как и вы, считает, что PDO является более продвинутым API для работы с БД, чем mysqli. Но поскольку новички в подавляющем большинстве всё равно начинают с mysqli, то нужен хотя бы один нормальный материал по этому расширению. Не можешь противостоять — возглавь!
Не говоря уже о том, что в последнее время mysqli была сильно улучшена, и из совершенно неюзабельной превратилась в довольно сносную библиотеку, в которой из принципиальных отличий от PDO осталось разве что отсутствие именованных плейсхолдеров. Так что даже (особенно) если вы учили РНР 20 лет назад и всё знаете вдоль и поперёк, то всё равно сможете найти для себя что-то новое.
Честно говоря, самому не верится, что я пишу о спаме, который процветает на ключевом вайти ресурсе Рунета.
Ну ладно, первый раз был про англоязычную версию, которую никто не читает. Но когда запаршивел вполне себе посещаемый qna.habr.com - это уже как-то совсем странно. Я понимаю что Хабр Q&A - это не только веб-разработка. Но вот как-то так исторически сложилось, что половина вопросов именно про неё. И уж казалось бы, разработчики веб-сервиса посвященного программированию должны что-то понимать в защите от спама?
В культовом фильме "Ва-банк" есть сцена, где антагонист Крамер говорит главгерою Квинте: "от селедки ухо!", в смысле "я и сам крутой, и ничего у тебя не получится, получишь дырку от бублика (от селедки ухо)". Но в итоге сам остаётся в дураках. Вот администрация Хабра оказывается в роли такого крамера.
Примечание переводчика: я тоже думал, что время статей "Что быстрее — двойные или одинарные кавычки?" прошло еще 10 лет назад. Но вот подобная статья ("What performance tricks actually work") недавно собрала на Реддите относительно большой рейтинг и даже попала в PHP дайджест на Хабре. Соответственно, я решил перевести статью с критическим разбором этих и подобных им "тестов".
Есть множество статей (и даже целых сайтов), посвященных запуску разнообразных тестов, сравнивающих производительность различных синтаксических конструкций, и заявляющих на этом основании что одна быстрее другой.
Такие тесты являются неверными по многим причинам, начиная с постановки вопроса и заканчивая ошибками реализации. Но что важнее всего — подобные тесты бессмысленны и в то же время вредны.
Этого должно быть достаточно, чтобы закрыть вопрос. Но даже если принять правила игры и притвориться, будто данные "тесты" имеют хоть какой-то смысл, то выяснится, что их результаты сводятся лишь к демонстрации необразованности тестировщика и отсутствия у него всякого опыта.