Pull to refresh
106
10.3
FanatPHP @FanatPHP

User

Send message

Ну вот кстати я бы посмотрел на реальный проект, который был ускорен таким способом.
Причем именно на проект целиком, а не на специально написанный цикл на 100500 итераций :)

Мне кажется, это зависит от предназначения функции. Если это проверка, которая и должна вернуть 0 или 1 в зависимостиот переданного параметра, то исключение не нужно.
А если функция должна как-то обработать и вернуть введенное значение, то исключение — это как раз идеальный способ сообщить об ошибке. Но это будет именно ошибка, а не результат работы.

Честно говоря, в РНР это делается простым условием. Если, скажем, мы ожидаем int, то


$int = filter_var($raw_input, FILTER_VALIDATE_INT);
if (is_int($int)) {
    // число, производим операции над $int
} else {
     // в $raw_input строка, парсим её
}

или я неверно понял задачу

Да, я согласен. Сам такого не видел, но слышал, что иногда throw используется тупо как замена goto, и в итоге throw используется при штатном выполнении кода, а не только при возникновении ошибок. Но что характерно — здесь опять же, в первую очередь это bad design, а уже во вторую — производительность. То есть, плохой код надо исправлять потому что он плохой, а не потому что он на пару миллисекунд медленнее.

Так в том-то и дело что и не должны помнить. Это будет счастье, если вырастет такое поколение. Поскольку сама постановка вопроса неверная, а единственное, что показывают такие тесты — это криворукость тестировщика.


Вот разбор косяков подобных "тестов", как раз на примере данной статьи, https://phpdelusions.net/articles/single_vs_double


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

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


Но новость все равно очень оптимистичная

Роман, спасибо за отличный, как обычно дайджест.


Только одна ссылка вызывает недоумение. Зачем же было эту глупость про "Бенчмарки типичных кусков кода в PHP" включать? То, что лемминги на реддите наголосовали аж 30 попугаев, не делает эту статью менее вредной и хоть сколько-нибудь осмысленной.


Я думал что статьи из серии "какие кавычки быстрее" уже лет 10 как вышли из моды. Это не говоря о том, что даже и по своим собственным стандартам (мерять кривыми руками производительность заведомо бессмысленных кусков кода) качество тестов не выдерживает никакой критики.

to cock a gun, at length и over-the-counter мне не нужно угадывать, я их уже знаю(причем таки из контекста, да :), а bibliopole действительно непонятно, но тут слишком мало контекста. Вот взять at length к примеру. Обычно это употребляется после того, как герой что-то долго и безуспешно ищет или ждет. Не знаю, возможно это моя личная когнитивная особенность, но at length не вызывало у меня затруднений, а органично вливалось в повествование.
Да, ложные друзья переводчика тут всегда начеку. Но здесь уже надо подключать логику. Если от перевода смысл теряется, то "отключаем" буквальное толкование и берем смысл из контекста.


Но я встречал людей, которые хоть убей не обладают такой вариативностью восприятия, возможностью мысленно поиграть смыслами и подогнать под контекст (причем все это в фоновом режиме!). Им как раз нужно внятное толкование. Поэтому я и говорю о разных подходах.


Но мы здесь в принципе говорим о разном. Вы говорите конкретном значении. Я же говорю об оттенках, коннотациях. Которые всегда богаче. Когда знаешь несколько слов, обозначающих сходное явление, то именно коннотации помогают выбрать, какое слово выбрать в том или ином случае (или наоборот — ощутить оттенок при чтении). Вот у Даррелла, к примеру, которого я сейчас перечитываю, хоть и весьма однообразный словарный запас, но Ларри у него сморкается vigorously, чихает violently, а собаки лают vociferously. Ни одно из этих слов я в словаре не смотрел (первые два, впрочем, легко выводятся из соответствующих им существительных). Но при этом если бы сам строил фразу мне бы никогда не пришло в голову их использовать — где у нас vigor, а где насморк? — а вот поди ж ты.


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


все «смыслы и нюансы» в иностранном языке вы сможете понять, только для наиболее распространенного толкования слова.

Даже если сразу и не смогу, то после того как слово встретится два-три раза, становится уже сильно понятнее.
В словарь я лезу разве что за этимологией. Интересно же, как получился key в смысле залива, а sound — пролива.


При погружении все эти моменты проходят сами собой. Отвлекаться же на словарь — это портить себе все удовольствие. Плюс к тому, механическое заучивание, "сериз — вишня, патесериз — пирожное", как здесь неоднократно отмечали, является весьма неэффективным. Поди зазубри десяток значений одного и того же слова. Поэтому я за погружение :)

Про строгий контроль это вас занесло куда-то не туда. Еще скажите, что во время чтения над вами стоял строгий папа и "контролировал" понимание прочитанного. Ну по крайней мере меня никто не контролировал.
Есть два подхода к чтению — скрупулезно выписывать на бумажку незнакомые слова и смотреть их словаре, или читать подряд, пргружаясь в повествование. Кому-то подходит один вариант, кому-то — другой.


Я давно убедился, что все люди разные, особенно в подходе к изучению языков. Если вы не чувствуете сами, как "играет" слово в контексте, и вам проще заведомо ограниченное, но формальное толкование из словаря — то смотрите в словаре. мне же больше по душе первый вариант — просто я читаю не столько для изучения языка, сколько для удовольствия, а язык идет уже приятным дополнением.

Никакое объяснение не передаст всех нюансов и коннотаций, которые дает живой контекст. Не говоря уже о том, что никакого чтения при таком подходе не получится. Если получается читать с погружением, то лучше так и делать, читать не прерываясь. Носители языка ведь так и делают. Они не лезут в словарь каждый раз, когда слышат или видят новое слово. Читаешь описание ржачной сцены, видишь слово hilarious, примерно понимаешь, что оно означает и что это смешнее, чем funny. Встретил еще 3 раза — уже пришло понимание, или даже скорее "ощущение" смысла данного слова, которое куда полнее, чем вычитанное объяснение.

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

Это идеальный подход. Точно так же мы читаем книжки в детстве на родном языке — не зная значения некоторых слов, но догадываясь из контекста (контекст вообще великая вещь).


Читать подряд, не отвлекаясь на словарь, погружаясь с головой в повествование — это великолепный способ начитать себе не только словарный запас, но и грамматику! Есть такое понятие, "врожденная грамотность". Разумеется, это полная ерунда — никакой врожденной грамотности не бывает, бывает "начитанная" (понятно, что разным людям нужно разное количество книг, но это уже другой вопрос). В итоге чтение позволяет твердо запомнить, как пишутся слова и устойчивые словосочетания, а также стандартные синтаксические конструкции. И когда начинаешь писать, то фразы строятся сами собой. Так что настоятельно рекомендую продолжать.


Кроме того, слово, узнанное из контекста, играет более яркими красками, дает больше смыслов, чем сухая строчка из словаря. Проблема бывает с одинаковыми словами, которых в английском миллион. Rock или sound например. Или ass. Но это тоже разруливается со временем.

Мне тебя немного жаль, конечно, но почему я должен при этом хлопать дверью, не очень понятно. Впрочем, тема дверей мне уже не настолько интересна.
Будут еще вопросы по базам данных — обращайся, я всегда помогу!

Ради бога, ты можешь воображать все что тебе угодно :)
Твоя убежденность в собственной правоте умиляет не меньше, чем твоя убежденность в том, что кому-то интересно твое мнение :)

Твой прогресс просто потрясает воображение. Ты бы, конечно, мог прийти к этому выводу и раньше, если бы прочитал статью, которую комментируешь — в ней этот пример как раз присутствует. Кстати, если осилишь еще и комментарии к ней, то получишь ответ и на свой предыдущий вопрос.

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


Все верно, PDO::prepare с идентификаторами не работает. Но главное здесь в том что prepare сразу не даст так сделать, а escape_string молча проглотит и ты заложишь первоклассную инъекцию в свой код. Теперь ясно?

Я что-то подобное и подозревал. Данное предубеждение мешает тебе воспринимать информацию. То есть ты сам же себе мешаешь.

Увы, ты не читаешь то, что я так талантливо и образно формулирую. Это пустая трата времени :(

Information

Rating
660-th
Registered
Activity

Specialization

Backend Developer, Web Developer
Middle
From 140,000 ₽
PHP
OOP
MySQL
Linux
Git
SQL
Database
Nginx
Bash
Laravel