1. JavaScript / Говнокод #12849

    +163

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    var z=fggh.getElementsByTagName("*");
    for(iii=0; iii<z.length; z++)
    if(z[iii].parentNode==fggh){
    //z[iii] - непосредственный потомок fggh, и мы с ним что-то делаем!
    …
    }

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

    Запостил: torbasow, 04 Апреля 2013

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

    • Зато чистый DOM, безо всяких jQuery!
      Ответить
      • Ну если быть придирчивым, то z[iii].childNodes - это тоже чистый DOM. =)
        Ответить
        • Если уж на то пошло, то для полного соответствия надо еще фильтровать текстовые узлы и прочие комментарии.
          Ответить
          • Вот я, к сожалению, уже не помню, было ли там что-нибудь такое… Зато до сих пор с содроганием вспоминаю неизменный метод выбора наименований переменных путём случайной пробежки пальцами по клавиатуре.
            Ответить
            • Как раз так фильтровать не нужно, селектор "левые" узлы не поймает.
              А если писать через childNodes - тогда да, нужно.
              Ответить
      • Да, автор кода был почему-то поборником чистого Javascript.
        Ответить
        • Тогда бы он не использовал DOM, который является всего лишь одним из компонентов среды браузерного JS, а написал бы свой парсер на чистом и непорочном JS.
          Ответить

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