1. PHP / Говнокод #3909

    +151

    1. 1
    $o = ($o < 0) ? 0 : $o;

    Оооо, как меня задолбал такой код

    Запостил: sogekoder, 08 Августа 2010

    Комментарии (16) RSS

    • могло быть так:
      $o=$o<$O?$O:$o;

      или так:
      $o=$o<o?o:$o;

      зы: байан -)
      Ответить
    • $o = max(0, $o);
      Ответить
      • имхо, это будет хуже, чем сабж:
        ибо, вызов функции
        Ответить
        • Экономия на спичках - это лучше удобства?
          Ответить
          • не совсем уж и на спичках;
            вот результат теста:
            простой цикл:
            $c = ($a<$b)?$a:$b;
            
            стандартная функция:
            $c = max($a, $b);
            
            пользовательская функция:
            function max_ab($a, $b) { return ($a<$b)?$a:$b; }
            $c = max_ab($a, $b);
            
            количество тестов: 10 
            количество циклов: 1000000 
            
            среднее время выполнения:
            time[простой цикл]: 0.1905001c
            time[вызов стандартной функции]: 0.4586536c
            time[вызов пользовательской функции]: 0.4634484c


            как видно:
            - сам вызов функции занимает довольно много времени
            (в данном тесте, на вызов функции тратится времени больше, чем на выполнение тела этой же функции);

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

            (хотя если это работа фрилансера, то после сдачи проекта - дальнейшая судьба проекта фрилансера не волнует)
            Ответить
          • да ну его, такое удобство... мах-ом элементарные операции заменять - изврат.
            Ответить
          • блин надо еще для присваивания и инкремента ввести функции - ну так чисто для удобства.
            let($o,0)
            inc($o_0)
            Ответить
            • и для сравнения тож
              cmpEq($o,0)
              cmpLower($o,0)
              удобно, хуле
              Ответить
        • Мне всегда так нравится, когда в PHPшных проектах в серьез говорят об оптимизации
          Ответить
          • (чуть перефразируя)
            мне всегда так нравится, когда в серьезных проектах говорят о PHP
            Ответить
    • смайлокодер ))
      Ответить

    Добавить комментарий