1. Лучший говнокод

    В номинации:
    За время:
  2. C++ / Говнокод #11919

    +34

    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
    void
    XmlRpcDispatch::work(double timeout)
    {
        ...
        nEvents = select(maxFd+1, &inFd, &outFd, &excFd, NULL);
        ...
    }
    
    void XmlRpcDispatch::terminate() {
        ...
        XmlRpcSocket::connect(_cmd_sock, "127.0.0.1", port);
        ...
    }

    Не то чтобы говнокод, но забавный костыль. А как еще корректно выйти из select'a, ждущего входящих соединений? Создать соединение самому.

    Steve_Brown, 12 Октября 2012

    Комментарии (4)
  3. Python / Говнокод #11915

    −102

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
           obj_l = list()
            for obj, obj_id in [(QuizQuestion, quest_id), (QuizAssigment, ass_id), (QuizQuestionAnswer, answ_id)]:
                q_set = getattr(getattr(obj, 'objects'), 'filter')(id=obj_id)
                obj_l.append(getattr(q_set, 'count')() > 0 and q_set[0] or False)
            (False in obj_l or obj_l[2].question != obj_l[0] or (user and obj_l[0].user)) and abort(IntegrityError())

    1) хер такое прочтешь
    2) для осмысления прочитанного нужно выпить
    3) за осмысление такого нужно выпить еще раз
    4) чувак узнал про getattr, хотя стоило вызвать напрямую obj.objects.filter(id=obj_id)
    5) q_set.count() > 0 and q_set[0] or false
    пятая строка поддается пониманию но катастрофически быстро начинает от этого терять смысл

    nimnull, 12 Октября 2012

    Комментарии (4)
  4. PHP / Говнокод #11889

    +55

    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
    function GetNumberOfLinks ($cat){ 
      $queue[] = intval($cat);
      $query = "select count(*) from #__jxlspp_prices  where ( 0!=0";
       while (list($key, $cat) = each($queue)) {
         $query .= " or catid = $cat";
       }
     $query = $query . " ) and published=1";
    	$database->setQuery($query);//это от Джумлы
      $result = $database->query();//и это от Джумлы
    	$val = mysql_fetch_row($result);//а это с бодуна
      return $val[0];
    
    }

    Сижу, скучаю, ковыряю очередной говносайт и, вдруг!
    Аж от души отлегло.

    virtual_cia, 07 Октября 2012

    Комментарии (4)
  5. Python / Говнокод #11880

    −94

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    def __call__(self, *args, **kw):
        # ...
        if args and len(args) > 1 and args[0] is args[1][0]:
            # fml...
            temp = list(args)
            temp.pop(1)
            args = tuple(temp)
        return self._execute(*args, **kw)

    Быль про архитектуру.

    wvxvw, 06 Октября 2012

    Комментарии (4)
  6. PHP / Говнокод #11876

    +122

    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
    class xxxxxxxxxx
    {
    	
    	private $string_services;
    	
    	public  function init() {
    		$this->string_services  = '<script type="text/javascript" src="//yandex.st/share/share.js" charset="utf-8"></script>
    		<div class="yashare-auto-init" data-yashareL10n="ru" data-yashareType="none" data-yashareQuickServices="yaru,vkontakte,facebook,twitter,odnoklassniki,moimir,lj,friendfeed,moikrug,gplus"></div> ';
    	}
    	
    	public function run() {
    		if(empty($this->string_services))
    		{
    			$this->init();
    		}
    		echo $this->string_services;
    	}
    }

    В нашел в проекте над которым работаю.

    Vasiliy, 05 Октября 2012

    Комментарии (4)
  7. PHP / Говнокод #11868

    +56

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    public function bugreportAction() {
            if (!isset($_POST['Type']) || !isset($_POST['Text']) || !isset($_POST['Module']))
                return false;
            if (trim($_POST['Text']) == "Ваш текст здесь...")
                return false;
            $rzt = $this->Debug->AddReport($_POST['Type'], $_POST['Text'], $_POST['Module']);
            if ($rzt)
                echo "OK";
            else
                echo "FAIL";
            return $rzt;
        }

    На работе нашел в проектах у других программистов, особенно понравилось.
    if (trim($_POST['Text']) == "Ваш текст здесь...")
    return false;

    Stud, 04 Октября 2012

    Комментарии (4)
  8. JavaScript / Говнокод #11864

    +153

    1. 1
    2. 2
    3. 3
    <!--[if IE 6]><script>
    	var ____________ie6 = true;
    </script><![endif]-->

    Из кода страницы почтового ящика на mail.ru. И зачем было когда-то ругать себя за govnokod.ru/5573 - даже большие дядьки так делают, чё я!

    telnet, 03 Октября 2012

    Комментарии (4)
  9. PHP / Говнокод #11858

    +55

    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
    <?php
    class cURL
        {   
            
            private $handler;
            
            function cURL($url = null)
            {
                $this->handler = curl_init($url);
            }
            
            //  Да, я ленивый!
            function __call($name, $args)
            {
                if($name == "init") return;
                if(strstr($name, "multi")) die("Multiple cURL not supported in this class.");
                $name = "curl_$name";
                if(!function_exists($name)) die("Function $name not found.");
                array_unshift($args, $this->handler);
                $fn = new ReflectionFunction($name);
                return $fn->invokeArgs($args);
            }
            
        }

    Sarkian, 02 Октября 2012

    Комментарии (4)
  10. C# / Говнокод #11831

    +127

    1. 1
    2. 2
    3. 3
    4. 4
    while (true) {
        Console.WriteLine(answer);
        answer = process.StandardOutput.ReadLine();
    }

    Человеку нужно просто считывать команды (строки) из консоли. Делает через жопу.

    Fai, 24 Сентября 2012

    Комментарии (4)
  11. Objective C / Говнокод #11816

    −97

    1. 1
    2. 2
    NSMutableDictionary* data = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"Заголовок", @"name",  
    @"Очень длинное описание акции, которое надо для проверки функционирования элементов прекрасного пользовательского интерфейса, работающего на последнем издыхании. Казалось бы, что такого поправить две кнопки. Но нет, тут никто не знает про MVC", @"description", nil];

    Тестовые данные в проекте

    GK2012, 21 Сентября 2012

    Комментарии (4)