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

    +158

    1. 1
    ($property['valid'] == 'ошибка') !== TRUE

    вот и бери стажеров на работу

    Запостил: CRRaD, 15 Апреля 2013

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

    • А что тут не так?
      Ответить
      • Моветон сравнивать булево значение с константой.
        Ответить
        • > Моветон сравнивать булево значение с константой.
          Okay. Сравним с переменной:
          $true_val = TRUE;
          ($property['valid'] == 'ошибка') >= $true_val
          Ответить
          • Я так и не понял, что тут не так.
            Ну может быть кривенькое логическое выражение, ну работает оно со статичной строкой, ну и что?
            Работает то оно ведь правильно.
            false - ошибка.
            true - все нормально.
            Похоже, что у кого-то перфекционизм.
            Ответить
            • читается и понимается оно не за полсекунды, а должно как бы
              Ответить
              • Ну да, я же сказал, что немного кривенько, но опять же это джуниор.
                Ответить
            • Да строка тут не при делах вообще. Говно в !== TRUE из-за которого этот код намного сложнее читать, чем если бы написали $property['valid'] != 'ошибка'. Это же классика boolshit'a.

              P.S. Но тред минуснул т.к. бульшиты уже наскучили.
              Ответить
              • Я это и сам понял.
                Кривенько конечно же, но постить джуниоровский код на говнокодру, не комильфо.
                Я думал, что тут какая-то специфика php, что-то очень смешное, а так.
                Ничего особенного же. Просто условие сложно написано.
                Ответить
          • Ещё можно добавить кастов, немного битовой магии, переводов во что-нибудь.
            Ответить
      • 1.
        $property['valid'] != 'ошибка'


        2.
        > $property['valid']
        > 'ошибка'
        Ответить
        • Нет, не то.

          1. Магическая константа в конце выражения. Избавляемся: TRUE → intval('')

          2. Магическая константа в квадратных скобках. Избавляемся: $property['valid'] → (object)$property->valid

          3. Слишком мало полосочек и неявное приведение типа. Исправляем: == → ===

          4. Слишком мало явных приведений типов. Итого получаем:
          strlen(strval((object)$property->valid === 'ошибка')) !== intval('')
          Ответить
          • "Магические литералы в квадратных скобках" в питоне используются очень даже нередко.
            Ответить
          • А 'ошибка' убирать не нужно?
            Ответить
          • Как жестоко. Не видел больших извращений. Еще и с гайдом
            Ответить
    • И действительно, не бери, нормально плати нормальным программистам.
      Ответить
    • $property['valid'] = 'ошибка'
      это он тоже сам придумал или ему по-старше подсказали?

      Если это у вас такая передача ошибок, то можете повышать своего стажера и увольнять по-старше
      Ответить

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