1. SQL / Говнокод #12553

    −172

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    $subqueries = array();
                                    foreach ($bit_values AS $key => $bits)
                                    {
                                            $timelimit = (TIMENOW - (60 * 60 * 24 * $vbulletin->options['tagcloud_usagehistory']));
                                            $query =        "
                                                    SELECT tagcontent.tagid, tag.tagtext, COUNT(*) AS searchcount
                                                    FROM " . TABLE_PREFIX . "tagcontent AS tagcontent
                                                    INNER JOIN " . TABLE_PREFIX . "tag AS tag ON (tagcontent.tagid = tag.tagid) " .
                                                    implode("\n", $bits['join']) . "
                                                    WHERE tagcontent.contenttypeid IN (" . implode(",", $bit_ids[$key]) . ") AND
                                                            tagcontent.dateline > $timelimit AND " .
                                                            implode(" AND ", $bits['where']) . "
                                                    GROUP BY tagcontent.tagid, tag.tagtext
                                            ";
                                            $subqueries[] = $query;
                                    }
    
                                    if (count($subqueries))
                                    {
                                            $query = "
                                                    SELECT data.tagid, data.tagtext, SUM(data.searchcount) AS searchcount
                                                    FROM
                                                            (" . implode(" UNION ALL ", $subqueries) . ") AS data
                                                    GROUP BY data.tagid, data.tagtext
                                                    ORDER BY searchcount DESC
                                                    LIMIT " . $vbulletin->options['tagcloud_tags'];
    
                                            $tags_result = $vbulletin->db->query_read_slave($query);
                                            while ($currenttag = $vbulletin->db->fetch_array($tags_result))
                                            {
                                                    $tags["$currenttag[tagtext]"] = $currenttag;
                                                    $totals[$currenttag['tagid']] = $currenttag['searchcount'];
                                            }
                                    }

    Из недр форума vbulletin. Много PHP кода, но сам говнокод именно в собираемом запросе.
    Ну вот кем надо быть что бы в коммерческой системе такое писать?!

    Запостил: vagrand, 07 Февраля 2013

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

    • если коммерческое - не значит охуенное. Вырезка из суперпупер шаблона WP get_template_part((include"". $slider ."slider.php"));
      Ответить
      • Ну так в том то и речь что люди продают систему, а сама система написана просто безобразно и так же само работает.
        Ответить
        • я к тому, что ты не одинок в данной мысле - дохуя платных продуктов написано хреново.
          Ответить
          • > дохуя платных продуктов написано хреново
            Наверное даже так - чуть менее чем все успешные платные продукты написаны хреново.
            Ответить
            • да, я бы сказал даже хуёва...
              Ответить
            • Зато PHP, 1-ass и ряд других дают нам отличную возможность купаться в говневкусить все прелести и узнать потайные места адской кухни софтодевелопинга, и это всё без реверсинга.
              Ответить
        • А на пыхе, вообще, пишут что-нибудь изящное?
          Ответить
    • показать все, что скрытоНужно любить свое детище, кроме как пытаться заработать. Постоянный рефакторинг и еще раз рефакторинг.
      Хороший пример коммерческой системы с постоянно улучшающимся внутренним кодом - CMS bitrix.
      Из некоммерческих - CMS Joomla!
      Ответить
      • кто бы это им объяснил?
        Ответить
      • Да вы наркоман, батенька!
        Ответить
        • А вы говнокодер?
          Ответить
          • нормальный человек Joomla за версту обходит.
            Ответить
            • А bitrix?
              Ответить
            • Я работаю с ним по той причине, что клиенты приходят с готовыми сайтами на нем, а на переход на bitrix уговорить получается не всех, к сожалению. Поэтому приходится часто доробатывать функционал, править глюки движка самому.
              В последней версии 1 ветки ввели MVC вполне удачно. Код же первых версий - это тьма )
              Ответить
              • bitrix/modules/calendar/classes/general/calendar_sceleton.php

                64 килобайта прекрасного, понятного и легко поддерживаемого кода.
                Ответить
              • И тебе привет, брат! Я сразу понял, что ты петух.
                Ответить

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