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

    +162.5

    1. 1
    2. 2
    $require = 'email|name|phone';
    foreach (explode('|', $required) as $field)

    найдено при рефакторинге

    Запостил: Stormherz, 12 Января 2010

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

    • $required в начале, синтаксически все верно, случайно дел ткнул
      Ответить
    • в чем говнокод?
      Ответить
      • ну, к примеру, можно было бы не делать строку, чтобы потом разбить её на массив, а сделать сразу массив
        Ответить
    • Perl like код, я за такое руки рублю, сэкономил на коде, потратил на производительности.
      Ответить
    • -1.
      Порой такие конструкции удобнее, чем писать Array("word") etc, говно код, но НЕОДНОЗНАЧНЫЙ, может быть и полезен.
      Ответить
      • согласен, но дело не в удобстве. во-первых читаемость хуже, во-вторых, как правильно выше сказали, производительность ниже, хоть и песчинка по размеру, но если человек привык так делать, в других местах будет не лучше. Я дальше по коду проглядывал, думал может функционально необходимо было такую строку иметь, так нет, только для этого и была использована =)
        Ответить
    • где смеятся?
      Ответить
    • Я понимаю, что это медленнее работает. Но иногда так делаю и нисколько не переживаю по этому поводу.
      Ответить
    • Всё-таки скорее говнокодно, чем кодогодно ;)
      Ответить
    • это нифига не говнокод. Это стиль программирования.
      Да, конечно бывает проще без определения дополнительной переменной, но все-же...
      не говнокод - минусну!
      Ответить
    • В JavaScript я частенько использую такое для сокращения объёма JS-файла (когда, допустим, в JS захардкоден большущий массив, и писать 'elem1|elem2|...|elemN'.split('|') оказывается заметно выгоднее, чем выписывать каждый элемент отдельно). Но JS-то ладно, ну выполнится такой код у юзера на компе за сколько-то миллисекунд, ну и не жалко. Но в PHP-то? Вы действительно хотите, чтобы эта дрянь выполнялась тысячи, миллионы раз на сервере, которому и без того есть чем заняться?
      Ответить
    • Нашли на чём оптимизировать, это вообще стоит нисколько.
      Просто уродская конструкция array('', '', ...) достала человека.
      На перле это вообще будет:
      for my $field (qw(email name phone)) {
      ...
      }
      Так что не говнокод, говноязык.
      Ответить
    • Не говнокод.
      Ответить
    • не говнокод +1
      Ответить
    • Это не говнокод, согласен, но по правилам для того и создавались массивы чтоб использовать их. А не использовать explode('|'); как сделанно в данном случае!
      Ответить
    • vanished
      Ответить

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