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

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

    +74

    1. 1
    2. 2
    3. 3
    Logger.getLogger(OriginReaderImpl.class).error("somebody calls reading origins without filtering",
        new RuntimeException());
    return Cf.newArrayList();

    У меня был когнитивный диссонанс: в логах стектрейсы, а транзакция успешно завершена.

    П.С. Код переформатирован так, чтобы вызов конструктора исключения не вылезал за границы экрана.

    roman-kashitsyn, 26 Марта 2014

    Комментарии (5)
  3. PHP / Говнокод #15418

    +152

    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
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    <?php
    //Скрипт рассчета времени.
    if (!empty($_POST["from_hours"])) { $from_hours = $_POST["from_hours"]; } else { unset($_POST["from_hours"]); }
    if (!empty($_POST["from_minutes"])) { $from_minutes = $_POST["from_minutes"]; } else { unset($_POST["from_minutes"]); }
    if (!empty($_POST["from_seconds"])) { $from_seconds = $_POST["from_seconds"]; } else { unset($_POST["from_seconds"]); }
    if (!empty($_POST["from_month"])) { $from_month = $_POST["from_month"]; } else { unset($_POST["from_month"]); }
    if (!empty($_POST["from_day"])) { $from_day = $_POST["from_day"]; } else { unset($_POST["from_day"]); }
    if (!empty($_POST["from_year"])) { $from_year = $_POST["from_year"]; } else { unset($_POST["from_year"]); }
    
    if (!empty($_POST["to_hours"])) { $to_hours = $_POST["to_hours"]; } else { unset($_POST["to_hours"]); }
    if (!empty($_POST["to_minutes"])) { $to_minutes = $_POST["to_minutes"]; } else { unset($_POST["to_minutes"]); }
    if (!empty($_POST["to_seconds"])) { $to_seconds = $_POST["to_seconds"]; } else { unset($_POST["to_seconds"]); }
    if (!empty($_POST["to_month"])) { $to_month = $_POST["to_month"]; } else { unset($_POST["to_month"]); }
    if (!empty($_POST["to_day"])) { $to_day = $_POST["to_day"]; } else { unset($_POST["to_day"]); }
    if (!empty($_POST["to_year"])) { $to_year = $_POST["to_year"]; } else { unset($_POST["to_year"]); }
    
    $time = mktime($to_hours,$to_minutes,$to_seconds,$to_month,$to_day,$to_year) - mktime($from_hours,$from_minutes,$from_seconds,$from_month,$from_day,$from_year);
    
    	if (!empty($time)) {
    		echo 
    		"От $from_month/$from_day/$from_year $from_hours:$from_minutes:$from_seconds
    		<br>До $to_month/$to_day/$to_year $to_hours:$to_minutes:$to_seconds
    		<br>Секунд: $time
    		<br>Минут: ",$time/60,"
    		<br>Часов: ",$time/60/60,"
    		<br>Дней: ",$time/60/60/24,"
    		<br>Недель: ",$time/60/60/24/365*12*4,"
    		<br>Месяцев: ",$time/60/60/24/365*12,"
    		<br>Лет: ",$time/60/60/24/365;
    	}
    	else {
    		echo "<h2>Введите данные для расчета</h2>";
    	}
    ?>
    
    <!DOCTYPE html>
    <html>
    <head>
    	<title>Сколько времени пройдет от и до</title>
    </head>
    <body>
    <p>Сколько времени от:</p>
    <form method="post" target="_blank" action="date.php">
    	<input type="text" name="from_year">	Год<br>
    	<input type="text" name="from_month">	Месяц<br>
    	<input type="text" name="from_day">	День<br>
    	<input type="text" name="from_hours">	Час<br>
    	<input type="text" name="from_minutes">	Минут<br>
    	<input type="text" name="from_seconds">	Секунд<br>
    <p>Сколько времени до:</p>
    	<input type="text" name="to_year">	Год<br>
    	<input type="text" name="to_month">	Месяц<br>
    	<input type="text" name="to_day">	День<br>
    	<input type="text" name="to_hours">	Час<br>
    	<input type="text" name="to_minutes">	Минут<br>
    	<input type="text" name="to_seconds">	Секунд<br>
    	<input type="submit" value="Рассчитать">
    </form>
    <p>* Заполнять все поля не объязательно.</p>
    </body>
    </html>

    Скрипт расчета времени от и до.
    Как бы улучшить этот говнокод на php?

    Arthur, 11 Марта 2014

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

    +77

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    List<DataContainer> dataContainers = w2pService.startProcess(type, id, locale.replaceAll("-", "_"), clientToken);
    			
    //prevent memory leak
    if(dataContainers != null){
        dataContainers.clear();
        dataContainers = null;
    }

    Насоздавал - предоврати за собой.

    pingw33n, 06 Марта 2014

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

    +127

    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
    import Data.List
    import Data.Maybe
    checkBraces "" = True
    checkBraces e = checkBrace e [] where
    	openBraces = "({["
    	closeBraces = ")}]"
    	braceToBrace fromBraces toBraces brace = toBraces!!(fromJust $ elemIndex brace fromBraces)
    	otcBrace = braceToBrace openBraces closeBraces
    	checkBrace (c:e) s | elem c openBraces = checkBrace e ((otcBrace c):s)
    	checkBrace (c:e) (h:s) | (elem c closeBraces) && (h==c) = checkBrace e s
    	checkBrace (_:e) _ = False
    	checkBrace [] [] = True
    	checkBrace [] _ = False
    main = mapM_ (print . checkBraces) bracesExpressionExamples where
    	bracesExpressionExamples = 
    		[
    			"({[{}]{}[]})",
    			"({}}{[{}]{}[]})",
    			"({[{}]{}[]}",
    			"({[{}]{}]})",
    			"({[{}{}[]})",
    			"",
    			"{}"
    		]

    http://ideone.com/sZ9tiN
    Кот с собеседований.
    Проверка правильности расстановки скобок для каждого выражения из bracesExpressionExamples.

    USB, 05 Марта 2014

    Комментарии (5)
  6. C# / Говнокод #15357

    +139

    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
    foreach (sp_GetPropertiesAffiliateResult paf in PropertiesAffiliate)
                {
    ...
     phConfigAffiliate.Controls.Add(new LiteralControl("<tr>"));
                    phConfigAffiliate.Controls.Add(new LiteralControl("<td><strong>"));
                    phConfigAffiliate.Controls.Add(litPropertyId);
                    phConfigAffiliate.Controls.Add(new LiteralControl("</strong></td>"));
                    phConfigAffiliate.Controls.Add(new LiteralControl("<td><strong>"));
                    phConfigAffiliate.Controls.Add(litPropertyName);
                    phConfigAffiliate.Controls.Add(new LiteralControl("</strong></td>"));
                    phConfigAffiliate.Controls.Add(new LiteralControl("<td>"));
                    phConfigAffiliate.Controls.Add(txtPropertyCode);
                    phConfigAffiliate.Controls.Add(rfvTxtPropertyCode);
                    phConfigAffiliate.Controls.Add(new LiteralControl("</td>"));
                    phConfigAffiliate.Controls.Add(new LiteralControl("<td>"));
                    phConfigAffiliate.Controls.Add(new LiteralControl(@"<table cellpadding=""2"" cellspacing=""2"" border=""0"">"));
                    phConfigAffiliate.Controls.Add(new LiteralControl("<tr>"));
                    phConfigAffiliate.Controls.Add(new LiteralControl(@"<td style=""border: 0px;"">"));
    
    ....
    }

    brusini, 05 Марта 2014

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

    −95

    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
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    # ~*~ coding: utf8 ~*~
    
    def clear_string(str, to_int = None):
        '''
        Чистим строку от "мусора" - нечисловых символов.
        '''
        new_str = ''
        for s in str:
            # сначала ищем точку (вдруг число с плавающей точкой)
            # при этом в новой строке не должно быть больше одной точки
            # и в условии to_int не определен
            if s == '.' and '.' not in new_str and not to_int:
                new_str += s
            else:
                try:
                    i = int(s)
                    new_str += s
                except:
                    pass
        return new_str
    
    def str_to_int(str):
        '''
        Преобразование стоки в целое число
        '''
        # попробуем воспользоваться самым простым методом
        try:
            return int(str)
        except:
            # если не получилось, то проверяем почему? допускаем, что было передано не целое число в строке
            if '.' in str:
                str = str[0:str.find('.')]
                return str_to_int(str)
            else:
                # если уж совсем дела плохи, то возвращаем 0
                return 0
    
    def check_int(str):
        try:
            int(str)
            return True
        except:
            return False
    
    def str_to_float(str):
        '''
        Преобразование стоки в число с плавающей точкой
        '''
        # попробуем воспользоваться самым простым методом
        try:
            return float(str)
        except:
            # других вариантов не осталось. скорее всего функция приняла на входе мусор
            return 0
    
    def check_float(str):
        try:
            float(str)
            return True
        except:
            return False
    
    # есть у нас незатейливая строка
    str = 'a23d.d.5ff6'
    # проверяем функцию чистки строки
    print('Чищеная строка: %s' % clear_string(str))
    print('Чищеная строка с to_int: %s' % clear_string(str, to_int=True))
    # до преобразования строки в число следовало бы почистить ее
    print('Преобразуем мусор в целое число: %s' % str_to_int(str))
    print('Преобразуем чищеную строку в целое число: %s' % str_to_int(clear_string(str)))
    # преобразуем строку в число с плавающей точкой
    print('Преобразуем мусор в число с плавающей точкой: %s' % str_to_float(str))
    print('Преобразуем чищеную строку в число с плавающей точкой: %s' % str_to_float(clear_string(str)))
    
    print('Проверяем, является ли содержимое строки целочисленным: %s' % check_int(str))
    print('Проверяем, является ли содержимое чищеной строки целочисленным: %s' % check_int(clear_string(str, to_int=True)))
    print('Проверяем, является ли содержимое строки числом с плавающей точкой: %s' % check_float(str))
    print('Проверяем, является ли содержимое чищеной строки числом с плавающей точкой: %s' % check_float(clear_string(str)))

    http://www.haikson.com/blogs/hektor/programming/python/python-preobrazovanie-stroki-v-chislo/

    v0ffka, 03 Марта 2014

    Комментарии (5)
  8. PHP / Говнокод #15204

    +182

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    if($valuta=='rur') {
    	$rate = "RUR";
    } else {
    	$rate = strtoupper($valuta);
    }

    draug, 27 Февраля 2014

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

    +177

    1. 1
    2. 2
    $lists['arrDateYear']=array(2000=>2000,2001=>2001,2002=>2002,2003=>2003,2004=>2004,2005=>2005,2006=>2006,2007=>2007,2008=>2008,2009=>2009,2010=>2010);
    $lists['arrDateDay']=array(1=>1,2=>2,3=>3,4=>4,5=>5,6=>6,7=>7,8=>8,9=>9,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);

    1=1

    Merisho, 26 Февраля 2014

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

    +115

    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
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    Сколько помнишь пятен солнца,
     Сколько раз горел в огне?
     Сколько раз ты изгнан вон был,
     Сколько раз ты гнил во тьме?
    
     За богохульство был распят Иисус,
     За вольнодумие стреляют и сжигают,
     Прикованный к кресту я молча обоссусь,
     Но вам не вымолить из губ моих
     Признаний
    
     Ватикан - мразь и твари,
     Переходы полнит кровь,
     Здесь кичатся билетом до рая...
     Купленным ценою слёз,
     Свет ста тысяч ртутных ламп,
     Боль ста тысяч рваных ран,
     Вот наверное и всё...
     Дьявол вновь берет своё
    
     Тлен смыкает свои пальцы,
     Сдавливая горло мне,
     Призраки немых скитальцев,
     Как и ты, горят в огне,
     Павшие в провалы ночи,
     Мы не смеем попрекать
     Иисуса, его дочерь,
     Делят что одну кровать
    
     За доброту был скован Прометей,
     И за радушие еще пока сажают,
     Топчите труп мой, брошенный, в говне,
     Но вам не вымолить из губ моих 
     Признаний
    
     Паутина склепа давит
     На кровавые глаза,
     Здесь никто ничто не знает,
     Но желает показать
     Как он чтит и как страдает,
     Как дарует благодать,
     В самом низменном желаньи,
     Перед страхом умирать
    
     Астарты глаза
     Видят грех и во тьме,
     Громким криком созвав
     На суд Бафомэт,
     Всего лишь ответы,
     Ни пытки, не боль,
     Но тех уже нету,
     Кто ответит за роль...
    
     Из круга ангелов бы изгнан Сатана,
     И по лицу до ныне выбирают,
     Я ниц пойду, с булыжником до дна,
     И моих тайн никто и не узнает...
     Но смерть и боль, жестокая война,
     На ложе богородица, не кровью -
     Соком истекает,
     И над морями изумрудного вина
     Кресты так пошло, показушно догорают...

    Не знаю почему, но называется это стихотворение "крестоблядство".
    Пруф: http://www.stihi.ru/2012/11/23/2001
    у автора и спрашивайте, где же здесь С++

    TarasB, 20 Февраля 2014

    Комментарии (5)
  11. PHP / Говнокод #14675

    +137

    1. 1
    if ($params['provider'] == PROVIDER_GOOGLE && 0) {

    Очевидно, /*...*/ показалось слишком сложным.

    Lowezar, 19 Февраля 2014

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