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

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

    +73

    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
    public boolean isModified() {
    	return
    			!pluginEnabled.isSelected() == getSettings().pluginEnabled
    					|| !pathToContainerTextField.getText().equals(getSettings().pathToProjectContainer)
    					|| !pathToUrlGeneratorTextField.getText().equals(getSettings().pathToUrlGenerator)
    					|| !symfonyContainerTypeProvider.isSelected() == getSettings().symfonyContainerTypeProvider
    					|| !objectRepositoryTypeProvider.isSelected() == getSettings().objectRepositoryTypeProvider
    					|| !objectRepositoryResultTypeProvider.isSelected() == getSettings().objectRepositoryResultTypeProvider
    
    					|| !twigAnnotateRoute.isSelected() == getSettings().twigAnnotateRoute
    					|| !twigAnnotateTemplate.isSelected() == getSettings().twigAnnotateTemplate
    					|| !twigAnnotateAsset.isSelected() == getSettings().twigAnnotateAsset
    					|| !twigAnnotateAssetTags.isSelected() == getSettings().twigAnnotateAssetTags
    
    					|| !phpAnnotateTemplate.isSelected() == getSettings().phpAnnotateTemplate
    					|| !phpAnnotateService.isSelected() == getSettings().phpAnnotateService
    					|| !phpAnnotateRoute.isSelected() == getSettings().phpAnnotateRoute
    					|| !phpAnnotateTemplateAnnotation.isSelected() == getSettings().phpAnnotateTemplateAnnotation
    
    					|| !yamlAnnotateServiceConfig.isSelected() == getSettings().yamlAnnotateServiceConfig
    			;
    }

    Плагин для Intellij Idea...

    kostoprav, 28 Июня 2013

    Комментарии (27)
  3. Pascal / Говнокод #12375

    +90

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    program Project1;
    Var
      i,j : Integer;
    begin
        i := 300001; j := 300002;
        asm
         MOV EAX, I;
         XCHG EAX,j
         MOV I, EAX;
        end;
        Write(i,' ',j); Readln;
    end.

    Ещё один кулхацкерный метод перестановки значений двух чисел местами.

    Govnocoder#0xFF, 30 Декабря 2012

    Комментарии (27)
  4. Perl / Говнокод #12343

    −88

    1. 1
    2. 2
    3. 3
    % if ($ARGS{standalone_bhv}) {} else {
    %# Что-то делаем
    % }

    Mason. Автор явно знает толк..

    Elvenfighter, 24 Декабря 2012

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

    +13

    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
    #include <iostream>
    
    using namespace std;
    
    class Manager
    {
    private:
        int *ar;
        int _size;
    public:
        void CreateArray(int size);
        void ResizeArray(int size);
    
        void MakeIntArray(int iter, int number);
        int GetIntArray(int iter);
    
        ~Manager()
        {
            delete [] ar;
        }
    };
    
    void Manager::CreateArray(int size)
    {
        _size = size;
    
        ar = new int[size];
    }
    
    void Manager::ResizeArray(int size)
    {
        int *nar = new int[size];
    
        for(int i = 0; i < _size; i++)
        {
            *(nar+i) = *(ar+i);
        }
    
        _size = size;
    
        delete [] ar;
    
        *ar = *nar;
    }
    
    int Manager::GetIntArray(int iter)
    {
        return iter < _size ? *(ar+iter) : NULL;
    }
    
    void Manager::MakeIntArray(int iter, int number)
    {
        if(iter < _size)
            *(ar+iter) = number;
    }
    
    int main()
    {
        Manager Man;
        Man.CreateArray(10);
    
        for(int i = 0; i < 10; i++)
            Man.MakeIntArray(i, i);
    
        for(int i = 0; i < 10; i++)
            cout << Man.GetIntArray(i) << " ";
    
        Man.ResizeArray(20);
        cout << endl;
    
        for(int i = 10; i < 20; i++)
            Man.MakeIntArray(i, i);
    
        for(int i = 0; i < 20; i++)
            cout << Man.GetIntArray(i) << " ";
    
        return 0;
    }

    > Собственно написал менеджер для массива, хочется узнать правильно ли все сделано, и нет ли утечек памяти?
    Очередной шедевр с самизнаетеоткуда.

    LispGovno, 12 Декабря 2012

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

    −125

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    МояМонада :: МойПарсерТип МойПарсер -> (МойПарсерТип -> МойПарсер МойПарсерТип2) -> МойПарсер МойПарсерТип2
    
    МойСущность МойМонад [] Где
        Возврат МойТип = [МойТип]
        МойВозвратВозврат >>= МойФункция = МойСклейка (МойВсем МойФункция МойВозвратВозврат)

    Коллега выдал - закоммитил в локальный гитхаб 1С парсер хаскелля на 1С.

    serpinski, 17 Ноября 2012

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

    +73

    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
    public String getText()
    {
            // don't ask me what these charset tricks mean :)
            String str = null;
            try
            {
                str = new String(doc.getText(0, doc.getLength()).getBytes("Cp1252"), "Cp1251");
            }
            catch(Exception e)
            {
                // Leave str as null
            }
            
            return str;
    }

    ...

    roman-kashitsyn, 22 Октября 2012

    Комментарии (27)
  8. C++ / Говнокод #11957

    +26

    1. 1
    2. 2
    3. 3
    4. 4
    std::RAII_File(fileName, moda, [&](std::IOHandle fHandle)
    {
       //...
    });

    Паrни. Что-за код мне достался? Какой наркоман это написал? У него же ЛГМ лямбда головного мозга.
    О std-инъекциях я даже молчу.

    LispGovno, 19 Октября 2012

    Комментарии (27)
  9. JavaScript / Говнокод #11901

    +156

    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
    function isProperty(object, property) {
        "use strict";
        var p, names, original = object,
            ecmaTypes = [Object, Array, String, Number, Date];
        try {
            for (p = 0; p < ecmaTypes.length; p += 1) {
                if (ecmaTypes[p] == object) {
                    console.log("looking up: " + ecmaTypes[p]);
                    names = Object.getOwnPropertyNames(ecmaTypes[p]);
                    if ('prototype' in ecmaTypes[p]) {
                        names = names.concat(
                            Object.getOwnPropertyNames(
                                ecmaTypes[p].prototype));
                    }
                    break;
                }
            }
            do {
                object = object.prototype.__proto__.constructor;
                names = names ?
                    names.concat(Object.getOwnPropertyNames(object)) : [];
                if ('prototype' in object) {
                    names = names.concat(
                        Object.getOwnPropertyNames(object.prototype))
                }
            } while  (object != Object)
            if (!names) {
                names = Object.getOwnPropertyNames(object);
            }
        } catch (error) {
            for (p in object) {
                if (object[p] == property) {
                    return true;
                }
            }
            return false
        }
        for (p = 0; p < names.length; p += 1) {
            if (original[names[p]] == property ||
                original.prototype[names[p]] == property) {
                return true;
            }
        }
        return false;
    }

    А как еще узнать, является ли функция методом принадлежащим объекту или нет? Это еще после трех часов проведенных в муках пытаясь понять, что вообще происходит.

    wvxvw, 10 Октября 2012

    Комментарии (27)
  10. PHP / Говнокод #11872

    +56

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    if($_POST['gtype'] == "" || $_POST['ip'] == "" || $_POST['c_port'] == "" || $_POST['q_port'] == "" || $_POST['s_port'] == "" || $_POST['zone'] == "" || $_POST['disabled'] == "") $msg = '<div class="status error"><p><img src="./template/images/icons/icon_error.png" alt="Error"><span>Ошибка!</span>.</p></div>';
    		else
    		{
    			mysql_query('INSERT INTO lgsl(type,ip,c_port,q_port,s_port,zones,disabled,comment) VALUES(\'' .$_POST['type']. '\',\'' .$_POST['ip']. '\',\'' . $_POST['c_port'] . '\', \'' .$_POST['q_port']. '\', \'' .$_POST['s_port']. '\', \'' .$_POST['zone']. '\', \'' .$_POST['disabled']. '\', \'' .$_POST['comment']. '\')', $con);
    			$msg = '<div class="status success"><p><img src="./template/images/icons/icon_success.png" alt="Sėkmingai"><span>Įrašyta!</span> Serveris sėkmingai pridėtas.</p></div>';
    		}

    как-то так...

    nonamez, 04 Октября 2012

    Комментарии (27)
  11. Java / Говнокод #11585

    +78

    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
    if(Integer.parseInt(dat[0])==1)
    			 {
    				 datString="Jan "+dat[2] +","+dat[1];
    			 }
    			 else if(Integer.parseInt(dat[0])==2)
    			 {
    				 datString="Feb "+dat[2] +","+dat[1];
    			 }
    			 else if(Integer.parseInt(dat[0])==3)
    			 {
    				 datString="Mar "+dat[2] +","+dat[1];
    			 }
    			 else if(Integer.parseInt(dat[0])==4)
    			 {
    				 datString="Apr "+dat[2] +","+dat[1];
    			 }
    			 else if(Integer.parseInt(dat[0])==5)
    			 {
    				 datString="May "+dat[2] +","+dat[1];
    			 }
    			 else if(Integer.parseInt(dat[0])==6)
    			 {
    				 datString="Jun "+dat[2] +","+dat[1];
    			 }
    			 else if(Integer.parseInt(dat[0])==7)
    			 {
    				 datString="Jul "+dat[2] +","+dat[1];
    			 }
    			 else if(Integer.parseInt(dat[0])==8)
    			 {
    				 datString="Aug "+dat[2] +","+dat[1];
    			 }
    			 else if(Integer.parseInt(dat[0])==9)
    			 {
    				 datString="Sep "+dat[2] +","+dat[1];
    			 }
    			 else if(Integer.parseInt(dat[0])==10)
    			 {
    				 datString="Oct "+dat[2] +","+dat[1];
    			 }
    			 else if(Integer.parseInt(dat[0])==11)
    			 {
    				 datString="Nov "+dat[2] +","+dat[1];
    			 }
    			 else if(Integer.parseInt(dat[0])==12)
    			 {
    				 datString="Dec "+dat[2] +","+dat[1];
    			 }

    Вот так китайци обычно формируют строку в календаре.
    Made in China.

    Hits, 14 Августа 2012

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