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

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

    −168

    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
    private function updateIssueView () : void
    {
    	if (_issue != null)
    	{
    		if(_issue["issue"]["wfAreaCd"] == "REFERRAL_COMMODITIES")
    		{
    			if (editComm != null) editComm.setIssue(_issue);
    			else callLater(updateIssueView);
    		}
    		else
    		{
    			if (editGffx != null) editGffx.setIssue(_issue);
    			else callLater(updateIssueView);
    		}
    	}
    }

    А ну создайся! Создавайся, я кому сказал! :D

    dimas_art, 05 Августа 2010

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

    +113

    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
    const string newObjectName = "Новый объект";
    
            // формирует имя нового объекта
            string BuildNewObjectName()
            {
                var namesTaken = from node in objectAdapters where node.Name.Contains(newObjectName) select node.Name;
    
                int n = 0;
    
                // ищем максимальное число в конце имени
                if (namesTaken.Any())
                    n = namesTaken.Aggregate(n, (acc, name) =>
                        {
                            int current;
                            return (int.TryParse(name.Split().Last(), out current) && current > acc) ? current : acc;
                        });
    
                // возвращаем следующее
                return newObjectName + " " + (n+1).ToString();
            }

    Получение имени для нового объекта. Смесь различных техник. Не читаемо.

    Lehox, 04 Августа 2010

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

    +74

    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
    public static int count(String s) {
        int res = 0;
        for (int i = 0; i < s.length(); i++) {
            if(s.charAt(i) == '1') res++;
        }
        return res;
    }
    
    public List<VDictLiability> get(String currency_id, String usedTrailer, Date actualDate, String contract_class_id, String product_id, String risk_object_type_id) {
        for(int i = 0;i<5;i++){
            int j = 0;
            while(j < 32) {
                if(count(Integer.toBinaryString(j)) == i) {
                    String s = Integer.toBinaryString(j);
                    while (s.length() != 5) {
                        s = "0" + s;
                    }
                    List<VDictLiability> result = get(currency_id, usedTrailer, actualDate, contract_class_id, product_id, risk_object_type_id, s);
                    if(result.size() > 0) return result;
                }
                j++;
            }
        }
        return Collections.EMPTY_LIST;
    }
    
    public List<VDictLiability> get(String currency_id, String usedTrailer, Date actualDate, String contract_class_id, String product_id, String risk_object_type_id, String mask) {
        String territoryCode = App.config.getCurrentBrunchCode().substring(1, 3);
        
    ...
        
        HashMap<Double, VDictLiability> map = new HashMap<Double, VDictLiability>();
        for (VDictLiability liabilityRow : get()) {
            if(!territoryType.equals(liabilityRow.getterritory_type_id()) && !(mask.charAt(4) == '1' && liabilityRow.getterritory_type_id() == null)){
                continue;
            }
            if(actualDate != null && !CompareUtil.isInside(liabilityRow.getstart_date(), liabilityRow.getend_date(), actualDate)){
                continue;
            }
            if(((risk_object_type_id != null && !CompareUtil.isEquals(liabilityRow.getrisk_object_type_id(), risk_object_type_id)) && !(mask.charAt(0) == '1' && liabilityRow.getrisk_object_type_id() == null))){
                continue;
            }
            if(((product_id != null && !CompareUtil.isEquals(liabilityRow.getproduct_id(), product_id)) && !(mask.charAt(1) == '1' && liabilityRow.getproduct_id() == null))){
                continue;
            }
            if(((contract_class_id != null && !CompareUtil.isEquals(liabilityRow.getcontract_class_id(), contract_class_id)) && !(mask.charAt(2) == '1' && liabilityRow.getcontract_class_id() == null))){
                continue;
            }
            if((liabilityRow.getcurrency_id() != null & !CompareUtil.isEquals(liabilityRow.getcurrency_id(), currency_id)) && !(mask.charAt(3) == '1' && liabilityRow.getcurrency_id() == null)){
                continue;
            }
            if(liabilityRow.getis_used_trailer() != SQLUtils.NULL_INTEGER_VALUE & !CompareUtil.isEquals(""+liabilityRow.getis_used_trailer(), usedTrailer)){
                continue;
            }
            map.put(liabilityRow.getvalue(), liabilityRow);
        }
        
        ArrayList<VDictLiability> result = new ArrayList<VDictLiability>();
        result.addAll(map.values());
    ...
        return result;
    }
    
    public List<VDictLiability> get(String currency_id, boolean usedTrailer, Date actualDate, String contract_class_id, String product_id, String risk_object_type_id) {
        return get(currency_id, usedTrailer?"1":"0", actualDate, contract_class_id, product_id, risk_object_type_id);
    }

    Это ад

    borka, 03 Августа 2010

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

    +82

    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
    private String addZerosToColor(String color)
        {
            switch(color.length())
            {
            case 1:
                color = (new StringBuilder()).append("00000").append(color).toString();
                break;
    
            case 2:
                color = (new StringBuilder()).append("0000").append(color).toString();
                break;
    
            case 3:
                color = (new StringBuilder()).append("000").append(color).toString();
                break;
    
            case 4:
                color = (new StringBuilder()).append("00").append(color).toString();
                break;
    
            case 5:
                color = (new StringBuilder()).append("0").append(color).toString();
                break;
            }
            return color;
        }

    Понятно и весьма эстетично :D

    VirtualVoid, 01 Августа 2010

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

    +94

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    if MessageDlg('Удалить проводку №'+srcTransact.DataSet.FieldByName('Trans_ID').AsString+' и ее спецификацию?',
        mtConfirmation, [mbYes, mbNo], 0) = mrYes then
      begin
        CMD.SQL.Add('EXEC dbo.asp_DelTransact '+srcTransact.DataSet.FieldByName('Trans_ID').AsString );
        CMD.Execute;
        _refresh(srcTransact.DataSet);
      end;
    end;

    Из реального проекта (учётная система).
    При определённых условиях можно удалить не только то что пользователь собирался удалить :).
    Да и вообще, сам код - говно.

    Fes, 30 Июля 2010

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

    +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
    public static string GetTable(int type, string title, string[][] rows)
    {
        bool flag2;
        int num;
        bool isEmpty = false;
        string str = "";
        switch (type)
        {
            case 1:
                str = str + "\r\n                            <div class='clear'> </div>\r\n\t\t\r\n\t\t                        <div class='down'>\r\n                                \r\n\t\t\t\t\t                <div class='ProperyDetailHeading'>\r\n\t\t\t\t\t\t                <span class='color2'>" + title + "</span>\r\n\t\t\t\t\t                </div>\r\n\t\t\t\t\t                <div class='PropertyDetailContent'>\r\n\t\t\t\t\t\t                <div  class='PropertyDetailInformation content_inner'>\r\n\t\t\t\t\t\t\t                <table summary='Test Table'>\r\n\t\t\t\t\t\t\t\t                <tbody>";
                if ((rows != null) && (rows.Length > 0))
                {
                    flag2 = true;
                    for (num = 0; num < rows.Length; num++)
                    {
                        if ((rows[num] != null) && (rows[num].Length > 0))
                        {
                            str = str + GetTableRow(ref flag2, rows[num][0], rows[num][1], ref isEmpty);
                        }
                    }
                }
                break;
            case 2:
    ......

    ASP.NET, пакистанские кодеры. Вообще весь код с сайта можна поместить на сайте отдельным разделом. В проекте вообще не используются контролы типа DataGrid/FormView.. даже DataSource. У них и тэмплэйты свои :(.. Грустно так все...(

    Coffeeholic, 30 Июля 2010

    Комментарии (1)
  8. bash / Говнокод #3783

    −126

    1. 1
    if [ "$PROJECTVERSION" -gt  "1.1.0" ; then

    Именно в таком виде найдено в проходящих письмах коммитницы.

    raorn, 26 Июля 2010

    Комментарии (1)
  9. ActionScript / Говнокод #3776

    −172

    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
    UTF8 = {
        encode: function(str){
            for(var c:String, i:Number = -1, l:Number = (str = str.split("")).length, o:Function = String.fromCharCode; ++i < l;
                str[i] = (c = str[i].charCodeAt(0)) >= 127 ? o(0xc0 | (c >>> 6)) + o(0x80 | (c & 0x3f)) : str[i]
            );
            return str.join("");
        },
        decode: function(str){
            for(var a:Array, b:Array, i:Number = -1, l:Number = (str = str.split("")).length, o:Function = String.fromCharCode, c:String = "charCodeAt"; ++i < l;
                ((a = str[i][c](0)) & 0x80) &&
                (str[i] = (a & 0xfc) == 0xc0 && ((b = str[i + 1][c](0)) & 0xc0) == 0x80 ?
                o(((a & 0x03) << 6) + (b & 0x3f)) : o(128), str[++i] = "")
            );
            return str.join("");
        }
    };

    Это чудо народного зодчества было предложено в качестве конвертора из ASCII в UTF8 и обратно. Проблема осложняется тем, что человек так делает в полной уверенности, что он что-то соптимизировал. (Ну и конечно, китайцы со своими иероглифами, как всегда в пролете, а так же французы со своими диакритиками, поляки, немцы и т.д.). То что страдает типизация и инкапсуляция, просто меркнет перед форматированием и полным отсутствием здравого смысла.
    http://www.kirupa.com/forum/showthread.php?t=351816

    wvxvw, 25 Июля 2010

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

    +157

    1. 1
    2. 2
    $wpdb->query($wpdb->prepare("INSERT INTO `".WPSC_TABLE_CART_CONTENTS."` (`prodid`, `name`, `purchaseid`, `price`, `pnp`,`tax_charged`, `gst`, `quantity`, `donation`, `no_shipping`, `custom_message`, `files`, `meta`) VALUES ('%d', '%s', '%d', '%s', '%s', '%s', '%s', '%s', '%d', '0', '%s', '%s', NULL)", $this->product_id, $this->product_name, $purchase_log_id, $this->unit_price, (float)$shipping, (float)$tax, (float)$tax_rate, $this->quantity, $this->is_donation, $this->custom_message, serialize($this->custom_file)));
    		$cart_id = $wpdb->get_var("SELECT LAST_INSERT_ID() AS `id` FROM `".WPSC_TABLE_CART_CONTENTS."` LIMIT 1");

    Это код WP-Ecommerce. Ахтунг!

    karevn, 16 Июля 2010

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

    +105

    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
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    using System;
    using System.IO;
    using System.Net;
    using System.Net.Sockets;
    
    
    namespace GisClient
    {
        class EntryPoint
        {
            static void Main()
            {
                TcpClient TcpCli = new TcpClient("127.0.0.1", 15800);
                NetworkStream ns = TcpCli.GetStream();
                
                PacketStructure obj = new PacketStructure();
                obj.CommandOptions = 0x80; //What's this shit??? 0x80 , what's Encoding??? What 0x80 equals to?
    
                obj.Write2Net(ns);
                obj.ReadFromNet(ns);
            }
        }
    
        class PacketStructure
        {
            UInt32 PacketId = 0x35534947;
            Guid UserId = new Guid();
            
            public byte CommandOptions = 0;
            UInt32 CommandSize = 0;
    
            byte[] Reserved = new byte[3];
    
    
            public void Write2BufferStream(MemoryStream ms)
            {
                //PacketId || Length - 4 || Type - UInt32
                ms.Write(BitConverter.GetBytes(PacketId), 0, 4);
                //UserId || Length - 16 || Type - byte[16]
                ms.Write(UserId.ToByteArray(), 0, 16);
                //Command Options || Length - 1 || byte
                ms.Write(BitConverter.GetBytes(CommandOptions), 0, 1);
                //Command Size || Length - 4 || Int32
                ms.Write(BitConverter.GetBytes(CommandSize), 0, 4);
                //Reserved space || Length - 3 || byte[3]
                ms.Write(Reserved, 0, 3);
                //CRC32 - control summary
                ms.Write(BitConverter.GetBytes(CRC32.BytesCrc(ms.ToArray())), 0, 4);
            }
    
            public void Write2Net(NetworkStream ns)
            {
                MemoryStream ms = new MemoryStream();
    
                Write2BufferStream(ms);
    
                byte[] A = ms.ToArray();
                ns.Write(A, 0, (int)ns.Length);
            }
    
            public void ReadFromNet(NetworkStream ns)
            {
                byte[] B = new byte[32];
    
                ns.Read(B, 0, (int)ns.Length);
    
                PacketId = BitConverter.ToUInt32(B, 0); //??????? lolwhat?????!!!!!111
    
                byte[] C = new byte[16];
    
                for (int i = 0; i < 16; i++)
                {
                    C[i] = C[i + 4];
                }
    
                foreach (int i in C)
                {
                    Console.WriteLine(i);
                    Console.ReadLine();
                }
    
                UserId = new Guid(C);
    
                CommandOptions = B[20]; // Why no BitConverter?????!!!!!
    
                CommandSize = BitConverter.ToUInt32(B, 21); // The end of CommandSize IS NOT SET!!!!1111
    
                for (int i = 0; i < 3; i++) Reserved[i] = B[i + 25]; // A[0] = Packet[0 + 25] IF i = 0 THEN i++
    
                Console.ReadLine();
            }
    
        }
    }

    Код с работы, вот так вот мы отслыаем и принимаем пакеты по TCP.
    Комменатрии особенно доставляют удовольствие :)

    sergylens, 12 Июля 2010

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