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

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

    +158

    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
    $('.price_input', this.getDummy()).on('keydown', function (e) {
        if (e.keyCode == 13) {
            e.preventDefault();
        }
    
        var charCode = e.keyCode, char = e.originalEvent.keyIdentifier;
        if ((((charCode == 188) && (!char || char == 'U+002C')) || (charCode == 190) && (!char || char == 'U+002E')) && ($(this).val().indexOf('.') < 0) && ($(this).val().indexOf(',') < 0)) {
            return true;
        }
    
        if ((charCode >= 37 && charCode <= 40) || (charCode == 46) || (charCode == 8) || (charCode >= 48 && charCode <= 57) || (charCode >= 96 && charCode <= 105)) {
            return true;
        }
    
        e.preventDefault();
    });

    Код ведущего front-end разработчика.
    Это далеко не самый длинный if в проекте.
    После месячного рефакторинга подобного шедевра я готов открыть компанию по сбору денег для программистов инвалидов.

    MrFranke, 02 Декабря 2014

    Комментарии (20)
  3. Java / Говнокод #17197

    +79

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    public void playersListClearBlacklist() {
    	List<Player> itemsToRemove = new ArrayList<Player>();
    	for (int i = 0; i < blacklist.size(); i++) {
    		Player player = blacklist.get(i);
    		itemsToRemove.add(player);
    		DBCore.getInstance().deletePlayer(player);
    	}
    	blacklist.removeAll(itemsToRemove);
    }

    Из комерческого проекта

    Smekalisty, 27 Ноября 2014

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

    −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
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    Процедура Сформировать()
    	СпрКонтр = СоздатьОбъект("Справочник.Контрагенты");
    	СпрКонтр.ВыбратьЭлементы();
    	Пока СпрКонтр.ПолучитьЭлемент()=1 Цикл
    		Сообщить(СпрКонтр.Наименование);
    		Спр = СоздатьОбъект("Справочник.ТорговыеТочки");
    		Спр.ИспользоватьВладельца(СпрКонтр.ТекущийЭлемент());
    		Спр.ВыбратьЭлементы();
    		
    		Пока Спр.ПолучитьЭлемент()=1 Цикл
    			Сообщить(Спр.Наименование);
    			Х = СокрЛп(Спр.Код);
    			У = "";
    			Если Х="80002963" Тогда У = "68000550";
    			ИначеЕсли Х="80002964" Тогда У = "68000549";
    			ИначеЕсли Х="80004172" Тогда У = "68000551";
    ....................................
    			ИначеЕсли Х="80004503" Тогда У = "68000811";
    			ИначеЕсли Х="80003952" Тогда У = "68001300";
    	                КонецЕсли;
    			Если У <> "" Тогда
    				Спр.CASID = У;
    				Спр.Записать();
    			КонецЕсли;
    		КонецЦикла;
    	КонецЦикла;
    	Сообщить("Обработка завершена!");
    КонецПроцедуры

    Прислали обработку проставления определенного значения реквизита... Чуть со стула не упали... Всего 619 условий...

    jerokee, 30 Сентября 2014

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

    +163

    1. 1
    eval (' ?' . '>' . $tpl->result['main'] . '<' . '?php ');

    > Итак нередко возникает необходимость вставки на свой сайт PHP скрипт стороннего производителя. Однако по умолчанию данная возможность отключена в скрипте. Поэтому предлагаем вам небольшой хак, позволяющий использовать любой PHP код в шаблонах
    >
    > Откройте файл index.php найдите строчку:
    > echo $tpl->result['main'];
    >
    > и замените ее на
    > eval (' ?' . '>' . $tpl->result['main'] . '<' . '?php ');
    >
    > Все, вы можете использовать сторонние скрипты на вашем сайте. Данных хак не рекомендуется к использованию на версиях ниже 3.0

    "... небольшой хак ..."
    Ага, небольшой. Нету просто слов... DLE.

    "Данных хак не рекомендуется к использованию на версиях ниже 3.0"
    Я бы вообще его не рекомендовал бы даже.

    http://dle-news.ru/tips/33-ispolzovanie_ljubykh_php_vstavok_v_shabl onakh.html

    P.S.: знаю что 2006, но все равно можно было и получше написать.

    volter9, 21 Сентября 2014

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

    +155

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    // Отладочная информация
    if(1)
    {
    	print "<!--\r\n";
    	$time_end = microtime(true);
    	$exec_time = $time_end-$time_start;
      
      	if(function_exists('memory_get_peak_usage'))
    		print "memory peak usage: ".memory_get_peak_usage()." bytes\r\n";  
    	print "page generation time: ".$exec_time." seconds\r\n";  
    	print "-->";
    }

    Simpla CMS, красавцы! :D

    volter9, 05 Сентября 2014

    Комментарии (20)
  7. Java / Говнокод #16647

    +64

    1. 1
    2. 2
    3. 3
    4. 4
    int r = 5;
        if (r ==5) {
            throw new Exception(); 
        }

    air_raptor, 05 Сентября 2014

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

    +154

    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
    //Показывать или убирать шапку
        var shapka = $('.shapka');
        $(window).scroll(function(){
            if($(window).scrollTop() > 800){
                shapka.fadeIn();
            } else {
                shapka.fadeOut();
            }
        });
    
    
        //Scrolling up function
        $(function(){
            $.fn.scrollToTop = function(){$(this).hide().removeAttr("href");
            if($(window).scrollTop()!="0"){
                $(this).fadeIn("slow")
            }
            var scrollDiv=$(this);$(window).scroll(function(){
                if($(window).scrollTop()=="0"){
                    $(scrollDiv).fadeOut("slow")
                }
                    else{
                        $(scrollDiv).fadeIn("slow")
                    }
                });
            $(this).click(function(){$("html, body").animate({scrollTop:0},"slow")})}
        });
    
        $(function() {     
                $("#toTop").scrollToTop();  
        }); 
    
        //Динамическое изменения title страницы
        function dynamicTitle(d){
            var t = new Array(
                    "Курс 'Основы программирования'",
                    "Внимание! Сегодня скидка!"
                );
    
            if(typeof d === 'number'){
                document.title = t[d];
            } else {
                for(var i=0; i<t.length; i++){
                    if(t[i] === document.title){
                        continue;
                    } else {
                        document.title = t[i];
                        break;
                    }
                }
            }
        }
        dynamicTitle(0);
        setInterval(dynamicTitle, 2000);

    http://progbasics.ru

    Советую почитать весь сайт и код, такого эпичного говнеца я еще не видел. Особенно в отзывах и программе курса.

    gost, 16 Августа 2014

    Комментарии (20)
  9. C++ / Говнокод #16520

    +62

    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
    79. 79
    80. 80
    Grid Processor::build_grid()
    {
        Grid res;
        double top = 340+60;
        double left = 0, right = 60;
        Point a,b,c,d;
        for(int i = 0; i < 6; ++i){
            for(int j = 0; j < 13; ++j){
                a = {left*1e-6, top*1e-6, 2.1e-3};
                b = {right*1e-6, top*1e-6, 2.1e-3};
                c = {(left-3.25)*1e-6, (top+3.25)*1e-6, 2e-3};
                d = {(right+3.25)*1e-6, (top+3.25)*1e-6, 2e-3};  
                auto t = std::make_tuple(a,b,c,d);
                res.push_back(t);
                left += (340+60);
                right += (340+60);
            }
            top += (340+60);
            left = 0;
            right = 60;
        }
        
        top = (int)(-mem_size*1e6)+60;
        left = (int)(mem_size*1e6)+340;
        right = (int)(mem_size*1e6)+400;
        for(int i = 0; i < 13; ++i){
            for(int j = 0; j < 6; ++j){
                a = {left*1e-6, top*1e-6, 2.1e-3};
                b = {right*1e-6, top*1e-6, 2.1e-3};
                c = {(left-3.25)*1e-6, (top+3.25)*1e-6, 2e-3};
                d = {(right+3.25)*1e-6, (top+3.25)*1e-6, 2e-3};  
                auto t = std::make_tuple(a,b,c,d);
                res.push_back(t);
                left += (340+60);
                right += (340+60);
            }
            top += (340+60);
            left = (int)(mem_size*1e6)+340;
            right = (int)(mem_size*1e6)+(340+60);
        }
        
        top = (int)(-(mem_size+2.4e-3)*1e6)+60;
        left = 0, right = 60;
        for(int i = 0; i < 6; ++i){
            for(int j = 0; j < 13; ++j){
                a = {left*1e-6, top*1e-6, 2.1e-3};
                b = {right*1e-6, top*1e-6, 2.1e-3};
                c = {(left-3.25)*1e-6, (top+3.25)*1e-6, 2e-3};
                d = {(right+3.25)*1e-6, (top+3.25)*1e-6, 2e-3};  
                auto t = std::make_tuple(a,b,c,d);
                res.push_back(t);
                left += (340+60);
                right += (340+60);
            }
            top += (340+60);
            left = 0;
            right = 60;
        }
        
        top = (int)(-mem_size*1e6)+60;
        left = -2400;
        right = -2400+60;
        for(int i = 0; i < 13; ++i){
            for(int j = 0; j < 6; ++j){
                a = {left*1e-6, top*1e-6, 2.1e-3};
                b = {right*1e-6, top*1e-6, 2.1e-3};
                c = {(left-3.25)*1e-6, (top+3.25)*1e-6, 2e-3};
                d = {(right+3.25)*1e-6, (top+3.25)*1e-6, 2e-3};  
                auto t = std::make_tuple(a,b,c,d);
                res.push_back(t);
                left += (340+60);
                right += (340+60);
            }
            top += (340+60);
            left = -2400;
            right = -2400+60;
        }
        
        return res;
    }

    Magic numbers, Voodoo numbers!

    Abbath, 12 Августа 2014

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

    +57

    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
    struct ShaderBuilder
    {
    	Shader ToShader() const;
    
    	ShaderParts::VertexDataSrc VertexDataSource;
    	ShaderParts::Transform Transformation;
    	ShaderParts::LightControl LightControl;
    	ShaderParts::ColorSrc DiffuseSource;
    	ShaderParts::EmissionSrc EmissionSource;
    	ShaderParts::SpecularSrc SpecularSource;
    	ShaderParts::HeightSrc HeightSource;
    	ShaderParts::NormalSrc NormalSource;
    	ShaderParts::Parallax Parallax;
    	ShaderParts::LightModel LightModel;
    
    	...
    };
    
    #define with(x) for(auto &_=(x), *firstIter=&_; firstIter; firstIter=nullptr)
    
    ...
    
    using namespace ShaderParts;
    ShaderBuilder floorShaderBuilder;
    with(floorShaderBuilder)
    {
    	_.Transformation=Transform::Default();
    	_.LightControl=ShaderParts::LightControl::DefaultLighting({ {DirectionalLight::Type, 1} });
    	_.DiffuseSource=ColorSrc::FromTexture();
    	_.SpecularSource=SpecularSrc::FromConstants("0.25", "16.0");
    	_.HeightSource=HeightSrc::FromHeightMap();
    	_.NormalSource=NormalSrc::FromNormalMap("rg");
    	_.Parallax=Parallax::SimpleParallax();
    	_.LightModel=LightModel::Phong();
    }
    floorSh=floorShaderBuilder.ToShader();

    Вот такой оператор with на C++.

    gammaker, 04 Августа 2014

    Комментарии (20)
  11. bash / Говнокод #16426

    −118

    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
    #!/bin/bash
    
    # make file $1
    function mkfile () {
      echo -n "$FILE "
      [ -e "$1" ] && echo "exists" && return 0
      sudo -u liferay mkdir -p $(dirname "$1")
      sudo -u liferay touch "$1"
      echo "created"
    }
    
    PREFIX=/opt/liferay/data/document_library
    
    mkfile $PREFIX/10153/1322521/20445/1.0
    
    for (( i=28036 ; i <= 28135 ; ++i )) ; do
      mkfile $PREFIX/10153/2992652/$i/1.0
    done

    Скрипт создания недостающих файлов в document_library написаный админами одного крупного восточного универа)

    gremlin_tomsk, 25 Июля 2014

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