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

    В номинации:
    За время:
  2. 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)
  3. 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)
  4. 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)
  5. 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)
  6. 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)
  7. 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)
  8. 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)
  9. C# / Говнокод #11831

    +127

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

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

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

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

    −97

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

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

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

    Комментарии (4)
  11. Куча / Говнокод #11779

    +137

    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
    {- Haskell -}
    bruteforceGeneratorWithEasySimplication :: Description d => d -> [StandartTable]
    bruteforceGeneratorWithEasySimplication description =
        let width = size_h description; height = size_v description; vHeader = headerV description in
            do
                table <- genListBasedOn (map lineVariants vHeader)
                return (ST table)
        where
            lineVariants :: [Int] -> [[Bool]]
            lineVariants headerLine = let
                всё_я_задолбался_однако = True -- K.O.
                количество_цельных_блоков = length headerLine
                число_промежутков = количество_цельных_блоков - 1
                число_свободных_пробелов_которые_нам_нужно_распихать_между_цельными_блоками = ширина_поля - суммарная_длина_цельных_блоков
                ширина_поля = size_h description
                суммарная_длина_цельных_блоков = sum headerLine
                
                возможная_строка_использующая :: [Int] -> [Bool]
                возможная_строка_использующая разбиение = replicate (head разбиение) False ++ 
                    concat (zipWith (\x y -> replicate y True ++ replicate x False) (tail разбиение) headerLine)
                
                и = and
                по = undefined
                
                in do
                    разбиение <- получить_разбиение_для_строки по (число_свободных_пробелов_которые_нам_нужно_распихать_между_цельными_блоками) и (число_промежутков)
                    return (возможная_строка_использующая разбиение :: [Bool])
    
    получить_разбиение_для_строки по числу_свободных_элементов и числу_промежутков = do ...

    Из раннего.

    По-видимому, задолбался писать на тарабарщине, захотелось выражаться родными русскими словами.

    Jean-Esther, 16 Сентября 2012

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