• Как защититься от двойного списания в многопоточном приложении?

    @Vitsliputsli
    DevMan, просто транзакции здесь недостаточно.

    Stalker_RED, а если 2 разных запроса с разными order_id?

    user_of_toster, а вы применяли его на хорошо нагруженной системе?
  • Как можно ускорить работу Exception?

    @Vitsliputsli
    Максим Федоров, 15000 исключений при работе с СУБД, это 15000 ошибочных sql-запросов, так? Я не могу придумать ни одного варианта, когда такое было бы оправдано.
  • Как можно ускорить работу Exception?

    @Vitsliputsli
    Максим Федоров, да это я понял, но мне интересен пример бизнес-логики, которая при нормальной работе использует 15000 исключений.
  • Как можно ускорить работу Exception?

    @Vitsliputsli
    HellWalk,
    мне не интересно сейчас спорить по поводу терминов.

    Для меня удаление 99 из 100 Exception в коде - это удаление exception. Для кого-то это "правильное использование" (хотя для меня это костыли), сути правок не меняет.

    ну да, т.е. если, например, есть говнокод, в котором на каждый чих создается новый коннект к базе, вы убираете эти лишние ненужные коннекты - то вы отказались от коннектов к базе. Охренетительная логика.
    Дело не в терминах, а в корректном использовании исключений с одной стороны, и демагогии которую вы разводите с другой стороны.
  • Как можно ускорить работу Exception?

    @Vitsliputsli
    Максим Федоров, а можно пример?
    Я понимаю ситуацию, когда мы обратились к базе, а там не нашлось объекта (например, он динамически создается) - упали в исключение, обработали его, т.е. создали нужный объект, и вернулись к нормальной работе.
    Но что за ситуация, когда нужно 15000 исключений?
  • Как можно ускорить работу Exception?

    @Vitsliputsli
    HellWalk, неа, он говорит об использовании исключений по их назначению - для исключительных ситуаций.
  • Как устроиться консультантом по ИБ?

    @Vitsliputsli
    Круто, подводя итог, с тем, кто соответствует хотелкам конторы.
  • Как улучшить код?

    @Vitsliputsli
    Удалите все и будет идеально.
    Иначе, не совсем хорошо расписан phpdoc, плохо выбрано название, и т. д., и т. п. Конечно, все это так. Но работающий код гораздо эффективнее грёз об идеальном. Это не значит что нужно писать говно, просто находить баланс между сроками и требованиями, и кодом, который им удовлетворяет. Да, нужно правильно выбирать названия методам и переменным, но мы все не идеальны. Да, нужны проверки и защиты, но не всюду и везде.
    Поэтому в отрыве от всего кода, вопрос бессмысленен.
    Хотя вопрос есть, вы что phpdoc вручную писали? Есть же ide.
  • Сколько времени должен занимать такой запрос MySQL?

    @Vitsliputsli
    Откуда взялись индексы умноженные на 2? И почему только индексы, он и сами данные запихнул в память, быть может даже полностью.
  • Есть ли такая книга-учебник по PHP, в которой описан стиль программирования близкий к эталону?

    @Vitsliputsli
    Роми, стандарт в php - это PSR. В ООП почти все признают SOLID и наверное GRASP, но это не стандарты, а принципы, т.к. не несут чётких требований. Всё остальное, ещё менее чёткое и ещё более спорное, в том числе шаблоны проектирования.
  • Как протестировать производительность функций начинающему php-разработчику?

    @Vitsliputsli
    AgentSmith72,
    дело в том что вы просто нарисовались здесь не принеся ни байта полезной информации. Во мне ли дело или в вас пустословах?

    так ты не меня риторически спрашивай, спроси себя. Представь говорит тебе какая-нибудь персона: "Все кругом имбицилы, которых головой роняли в детстве, и один я охрененно классный парень". Какие ты сделаешь предварительные выводы о нем?
    Тебе могут принести диск с терабайтами полезной информации, но если ты их не сможешь прочитать, они действительно бесполезны. И ладно, что не сможешь, всякое бывает, но обвинять других, если что-то не осилил, тупо.
  • Как протестировать производительность функций начинающему php-разработчику?

    @Vitsliputsli
    AgentSmith72,

    Vitsliputsli, ты ничего не понял.

    Тебя что головой роняли в детстве? Я спросил о подходе, а именно как люди делают, гоняют переменные или хранят в свойствах, а вы имбецилы мне тут дичь втираете про мой идеальный код.

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

    @Vitsliputsli
    AgentSmith72,
    Знакома вам функция?

    $data = getrusage();

    Вы опрос проводите?

    Я так и написал..

    Неа, вы предлагали с точностью наоборот.

    Да я уже понял, что вас отвлекает код от сути вопроса.

    Ага, код в разработке - это отвлекающий фактор, философия на первом месте.

    Дело не в объекте рефлексии, сама рефлексия подразумевает проанализировать свой код.
    Разумеется так никто писать не будет. Это просто метафора на подход к работе с информацией из памяти.

    Именно, дело не в рефлексии, а в объекте.
    Да, я уже понял, что вы к разработке подходите только с точки зрения пофилософствовать.
  • Как протестировать производительность функций начинающему php-разработчику?

    @Vitsliputsli
    AgentSmith72,
    ..причём тут код, вопрос о разнице в подходах, измерении скорости скрипта и затрат памяти.

    Когда обсуждаем код, он всегда причем. Какие еще подходы в измерении скорости и затрат памяти? Кроме как засечь время и посмотреть расход памяти.

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

    Логично, если все работает без дичи, то она и не нужна.

    Хотите оценить мой код, изучите мои комментарии с ThunderCat, там внизу присутствует код RouteController.

    Речь не про оценку, а про то что по коду гораздо проще понять что вы имеете ввиду, чем по словесному описанию. И уж тем более не проводить розыск кода.

    ..написали бы как и для чего выделяется память, было бы полезней намного..

    Да не вопрос. Конкретно в этом случае, передача аргументом функции не будет практически ничего стоить, т.к. передача идет по ссылке, а объект в любом случае должен быть создан. А вот создание дополнительных объектов рефлексии - это затраты как памяти, так и времени на создание объектов.
    Хотя эти затраты достаточно малы, и никому не интересны, если только вы не пишите высокопроизводительный код, а проблемный кусок повторяется бесконечное число раз.
  • Как очищать текст в php?

    @Vitsliputsli
    Роман Юрьевич Ипатьев,
    ну в реальной практике не обойтись без использования имён полей на основе пользовательского ввода

    Разумеется нужны динамические запросы, и они могут формироваться на основе запросов пользователей. Но поля в таких запросах не берутся из пользовательских данных, выбираются на их основе - да, но не сами пользовательские данные подставляются в запрос. А потому их можно подставлять прямо в запрос и никакие плейсхолдеры prepared statements здесь не нужны. Т.к. это не данные.

    Jesse Pinkman, неплохо, как функция в составе обертки для работы с БД. Пока сами разработчики не косячат вполне устойчива к инъекциям (т.е. названия таблиц и полей должны задаваться только внутри). Насчет global правильное замечание, но с этими проблемами столкнетесь тогда, когда будете подменять этот объект (при его расширении или при тестировании).
  • Как правильно переписать код из PDO в процедурный стиль?

    @Vitsliputsli
    krypt3r, заканчивается 2021 год, а Mysql до сих пор не умеет нормально работать с prepared statements. Что поделать, мир не совершенен.
    Здесь нет подстановки внешних данных, поэтому проблем не будет с sql-инъекциями. Хотя, конечно, лучше бы кастануть в int, чтобы не сомневаться. Да и вряд ли это сознательное решение автора. А замена на mysqli с его убогим синтаксисом - очень странное решение.
    Даже иинтересно, что сподвигло автора на такой шаг.
  • Что лучше использовать доктрину, ActiveRecord и Миграции в yii2?

    @Vitsliputsli
    Active Record и Doctrine принципиально разные подходы. К yii2 active record прибит гвоздями, поэтому возможны сложности при отказе от него. Обычно модели в yii2 генерятся на основе таблиц в базе.
    Кто-то скажет что Доктрина лучше, т.к. все описываем в моделях, а база формируется на этой основе. Кто-то скажет, что yii2 много удобных инструментов именно под AR. А кто-то скажет, что с ORM теряем контроль над базой, что недопустимо для больших проектов.

    цель использования фреймфорка использовать rest запросы на сторонний сервис.

    Только для этого фреймворк не нужен.
  • Как заставить использовать индекс в сортировке?

    @Vitsliputsli
    Ни один из индексов не используется полностью, только первая часть user_id, по которой делили таблицу. Поэтому эти индексы практически равнозначны, а short_ndx выбран лишь потому, что он меньше по объему.
    Если у вас версия MySQL младше 5.7.3, то она не поддерживает индексы для партиционированных таблиц.
  • Где найти примеры качественной архитектуры на PHP?

    @Vitsliputsli
    Валентин, я в общем согласен, но вот в каких случаях "прямые селекты в БД из шаблона будут оправданы", даже интересно?