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

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

    +127

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

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

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

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

    −97

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

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

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

    Комментарии (4)
  9. Куча / Говнокод #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)
  10. JavaScript / Говнокод #11724

    +162

    1. 1
    $.evalJSON($.toJSON(origArray));

    Клонирование массива.
    http://stackoverflow.com/a/3409342

    Yurik, 07 Сентября 2012

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

    +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
    public static IEnumerable<Step> OdometerPeriodicChecker(ScaleContext context)
        {
          //проверить, существуют ли таблицы
          OdometerTaskHlp.CheckAndCreateTables();
    
          while (context.IsRunning)
          {
            //Десятисекундная задержка после запуска программы
            yield return new WaitStep(TimeSpan.FromSeconds(10));
    
            try
            {
              foreach (LightAuto auto in context.Auto.All)
              {
                //CarOdometerChecker(context, auto);
              }
    
            }
            catch (Exception ex)
            {
              TraceHlp2.WriteException(ex);
            }
    
            //задержка выполнения задачи на 3 часа
            yield return new WaitStep(TimeSpan.FromSeconds(OdometerTaskHlp.TimeInterval * 3600));
          }

    Они запускают отдельный поток,
    в потоке запускают этот метод while (context.IsRunning).
    Потом им надо вернуться из задачи, для этого используется yield return.

    Flyperformances, 06 Сентября 2012

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