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

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

    0

    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
    private void CaretNormalize()  {
                if (Template.Terminals.Count == 0) { _sTermEnd = _sOffStart = _sOffEnd = _sTermStart = 0; return; }
                if (_sTermStart == _sTermEnd) {
                    if (_sTermStart < 0) _sTermEnd = _sOffStart = _sOffEnd = _sTermStart = 0;
                    else if (_sTermEnd > Template.Terminals.Count - 1) {
                        _sTermEnd = _sTermStart = Template.Terminals.Count - 1;
                        _sOffStart = _sOffEnd = Template.Terminals[Template.Terminals.Count - 1].Text.Length;
                    }
                    else  {
                        if (_sOffStart != _sOffEnd) {
                            var nos = Math.Min(_sOffStart, _sOffEnd);
                            _sOffEnd = Math.Max(_sOffStart, _sOffEnd);
                            _sOffStart = nos;
                            if (_sOffStart < 0)  {
                                _sTermEnd = --_sTermStart;
                                if (_sTermEnd < 0) _sTermStart = _sOffStart = 0; else _sOffStart = Template.Terminals[_sTermEnd].Text.Length - 1;
                            }
                            if (_sOffEnd > Template.Terminals[_sTermEnd].Text.Length - 1) {
                                _sTermEnd = ++_sTermStart;
                                if (_sTermEnd > Template.Terminals.Count - 1)
                                {
                                    _sTermEnd = Template.Terminals.Count - 1;
                                    _sOffEnd = Template.Terminals[_sTermEnd].Text.Length;
                                }
                                else _sOffEnd = 0;
                            }
                        }
                        else
                        {
                            if (_sOffStart < 0) {
                                _sTermEnd = --_sTermStart;
                                if (_sTermEnd < 0)  _sTermStart = _sOffEnd = _sOffStart = 0; else _sOffEnd = _sOffStart = Template.Terminals[_sTermEnd].Text.Length - 1;
                            }
                            if (_sOffEnd > Template.Terminals[_sTermEnd].Text.Length - 1) {
                                _sTermEnd = ++_sTermStart;
                                if (_sTermEnd > Template.Terminals.Count - 1) {
                                    _sTermEnd = Template.Terminals.Count - 1;
                                    _sOffEnd = _sOffStart = Template.Terminals[_sTermEnd].Text.Length;
                                } else _sOffEnd = _sOffStart = 0;
                            }
                        }
                    }
                } else {
                    if (_sTermStart > _sTermEnd) {
                        var t = _sTermStart;
                        _sTermStart = _sTermEnd;
                        _sTermEnd = t;
                        t = _sOffStart;
                        _sOffStart = _sOffEnd;
                        _sOffEnd = t;
                    }
                    if (_sTermStart < 0) _sOffStart = _sTermStart = 0;
    
                    if (_sTermEnd > Template.Terminals.Count - 1) {
                        _sTermEnd = Template.Terminals.Count - 1;
                        _sOffEnd = Template.Terminals[Template.Terminals.Count - 1].Text.Length;
                    }
                    if (_sOffStart < 0) {
                        --_sTermStart;
                        if (_sTermStart < 0) _sTermStart = _sOffStart = 0; else _sOffStart = Template.Terminals[_sTermStart].Text.Length - 1;
                    }
                    if (_sOffEnd > Template.Terminals[_sTermEnd].Text.Length - 1) {
                        ++_sTermEnd;
                        if (_sTermEnd > Template.Terminals.Count - 1) {
                            _sTermEnd = Template.Terminals.Count - 1;
                            _sOffEnd = Template.Terminals[_sTermEnd].Text.Length;
                        }
                        else _sOffEnd = 0;
                    }
                }
            }

    qwe345asd, 17 Апреля 2016

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

    0

    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
    WriteBuffer = enc.GetBytes("$ FETCH " + number + " BODY[HEADER]\r\n");
    netStream.Write(WriteBuffer, 0, WriteBuffer.Length);
    ListMessage = strReader.ReadLine();
    //...
    while ((ListMessage.IndexOf("$ OK ") == -1) && (ListMessage.IndexOf("$ BAD ") == -1))
    {
            //Типа там читаем всякие заголовки и прочие бла-бла
            if (ListMessage.IndexOf("filename=") > -1)
            {
                    temp = ListMessage.Replace("filename=", "");
                    temp = temp.Trim();
                    file_name = temp;
                    is_file = 1; temp = ""; is_att = 1;
            }
            //...
            ListMessage = strReader.ReadLine();
            continue;
    }
    //...
    WriteBuffer = enc.GetBytes("$ FETCH " + number + " BODY[TEXT]\r\n");
    netStream.Write(WriteBuffer, 0, WriteBuffer.Length);
    ListMessage = strReader.ReadLine();
    
    temp = "";
    end_file = 0;
    body = "";
    if (ListMessage.IndexOf("$ BAD ") == -1) ListMessage = strReader.ReadLine();
    if (ListMessage == "")
            is_body = 0;
    else
            is_body = 1;
    while ((ListMessage.IndexOf("$ OK ") == -1) && (ListMessage.IndexOf("$ BAD ") == -1))
    {
            if (is_body == 1)
            {
                    if (ListMessage == "")
                            is_body = 0;
                    else
                            body = body + ListMessage;
            }
            if ((is_att == 1) && (end_file == 0))
            {
                    if (is_file == 1)
                    {
                            if (ListMessage.IndexOf("--") > -1)
                                    end_file = 1;
                            else
                                    temp = temp + ListMessage;
                    }
                    if (ListMessage == "")
                    {
                            is_file = 1;
                    }
            }
            if (ListMessage.IndexOf("Content-Disposition: attachment;") > -1)
            {
                    is_att = 1;
            }
            //...
            ListMessage = strReader.ReadLine();
            continue;
    }
    if (is_att==0)
    {
            //А тут ничего интересного, просто декодирование из Base64 и сохранение в файл
    }

    Следите за булями (точнее, их суррогатами).

    ЗЫ: да, я уже выкладывал кусок из того же модуля, и там уже были некоторые куски, которые попали и сюда тоже.

    tucvbif, 02 Апреля 2016

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

    +1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    document.getElementById('order').addEventListener('submit', function(e){
      document.getElementById('order').addEventListener('keyup', function(e){
          var appBtns = document.getElementsByClassName('btn'), i;
          for (var i = 0; i < appBtns.length; i ++)
            appBtns[i].style.disabled = false;
          form.submit.disabled = false;
      });
      var appBtns = document.getElementsByClassName('btn'), i;
      for (var i = 0; i < appBtns.length; i ++)
        appBtns[i].style.disabled = true;
      form.submit.disabled = true;
    });

    без комментариев

    vestnik, 24 Марта 2016

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

    −1

    1. 1
    if ( strpos(str_replace('"', "'", json_encode($opt)), "'status':0") )

    Зачем

    crook, 16 Марта 2016

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

    +1

    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
    $res2=CSaleBasket::GetList(array(), array(
    	"PRODUCT_ID"=>$record["PRODUCT_ID"],
    	"!ORDER_ID"=>0
    ));
    $reserverY = array("N", "A", "C", "B", "D", "P", "R", "S", "T", "E");
    while($record2=$res2->GetNext()){
    
    	$ordNext = CSaleOrder::GetList(array(), array("ID"=>$record2['ORDER_ID']))->GetNext();
    
    	if(in_array($ordNext['STATUS_ID'], $reserverY) && $ordNext['CANCELED'] != 'Y')
    	{
    		$product["QUANTITY_RESERVED"] += $record2['QUANTITY'];
    	}
    }

    turbosnail, 11 Марта 2016

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

    −4

    1. 1
    2. 2
    3. 3
    <Style>
        html { overflow: visible !important; }
    </Style>

    CSS конечно, но...

    young, 09 Марта 2016

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

    −97

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    tmpDt = ДобавитьМесяц(СсылкаНаОбъект.Дата, -3);
    Если Месяц(СсылкаНаОбъект.Дата)<4 Тогда
    	txt = "Д.в. "+Месяц(tmpDt)+"/"+Год(tmpDt)+"-"+ "0"+Месяц(СсылкаНаОбъект.Дата)+"/"+Формат(Год(СсылкаНаОбъект.Дата),"ЧГ=0");
    Иначе
    	Если Месяц(СсылкаНаОбъект.Дата)<10 Тогда
    		txt="Д.в. "+"0"+Месяц(tmpDt)+"-"+"0"+Месяц(СсылкаНаОбъект.Дата)+"/"+Формат(Год(СсылкаНаОбъект.Дата),"ЧГ=0");
    	Иначе    
    		txt="Д.в. "+"0"+Месяц(tmpDt)+"-"+Месяц(СсылкаНаОбъект.Дата)+"/"+Формат(Год(СсылкаНаОбъект.Дата),"ЧГ=0");
    	КонецЕсли;
    КонецЕсли;

    Неумение пользоваться форматной строкой приводит к перлам наподобие "если месяц меньше 10, то добавить к месяцу нолик слева".
    Это не считая разборки в числа и сборки назад в строку.

    WildSery, 01 Марта 2016

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

    0

    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
    // Private method of server, which dispatches active incoming connection.
    // Function receives address string and uses it as key to retrieve cached connection.
    // Fetched connection is getting read by bufio.Reader, parsed to header and data string if it's size was pointed in header.
    // Next, the parsed data handles by protocol and writes a response message.
    // The process turns in loop until whether input stream will get an EOF or an error will be occurred.
    // In the last case it will be return some error message to a client.
    // Anyway, at the end connection will be broken up.
    func (server *Server) dispatch(address string) {
    	defer server.free_chan()
    	if server.Stat.Connections[address] != nil {
    		server.Stat.Connections[address].State = "conn_new_cmd"
    	}
    	connection := server.connections[address]
    	connectionReader := bufio.NewReader(connection)
    	// let's loop the process for open connection, until it will get closed.
    	for {
    		// let's read a header first
    		if server.Stat.Connections[address] != nil {
    			server.Stat.Connections[address].State = "conn_read"
    		}
    		received_message, n, err := readRequest(connectionReader, -1)
    		if err != nil {
    			if server.Stat.Connections[address] != nil {
    				server.Stat.Connections[address].State = "conn_swallow"
    			}
    			if err == io.EOF {
    				server.Logger.Info("Input stream has got EOF, and now is being closed.")
    				server.breakConnection(connection)
    				break
    			}
    			server.Logger.Warning("Dispatching error: ", err, " Message: ", received_message)
    			if !server.makeResponse(connection, []byte("ERROR\r\n"), 5){
    				break
    			}
    		} else {
    			if server.Stat.Connections[address] != nil {
    				server.Stat.Connections[address].Cmd_hit_ts = time.Now().Unix()
    			}
    			// Here the message should be handled
    			server.Stat.Read_bytes += uint64(n)
    			parsed_request := protocol.ParseProtocolHeader(string(received_message[ : n - 2]))
    			server.Logger.Info("Header: ", *parsed_request)
    
    			if (parsed_request.Command() == "cas" || parsed_request.Command() == "gets") && server.cas_disabled ||
    			   parsed_request.Command() == "flush_all" && server.flush_disabled{
    				err_msg := parsed_request.Command() + " command is forbidden."
    				server.Logger.Warning(err_msg)
    				if server.Stat.Connections[address] != nil {
    					server.Stat.Connections[address].State = "conn_write"
    				}
    				err_msg = strings.Replace(protocol.CLIENT_ERROR_TEMP, "%s", err_msg, 1)
    				server.makeResponse(connection, []byte(err_msg), len(err_msg))
    				continue
    			}
    
    			if parsed_request.DataLen() > 0 {
    				if server.Stat.Connections[address] != nil {
    					server.Stat.Connections[address].State = "conn_nread"
    				}
    				received_message, _, err := readRequest(connectionReader, parsed_request.DataLen())
    				if err != nil {
    					server.Logger.Error("Error occurred while reading data:", err)
    					server.breakConnection(connection)
    					break
    				}
    				parsed_request.SetData(received_message[0 : ])
    			}
    			server.Logger.Info("Start handling request:", *parsed_request)
    			response_message, err := parsed_request.HandleRequest(server.storage, server.Stat)
    			server.Logger.Info("Server is sending response:\n", string(response_message[0 : len(response_message)]))
    			// if there is no flag "noreply" in the header:
    			if parsed_request.Reply() {
    				if server.Stat.Connections[address] != nil {
    					server.Stat.Connections[address].State = "conn_write"
    				}
    				server.makeResponse(connection, response_message, len(response_message))
    			}
    			if err != nil {
    				server.Logger.Error("Impossible to send response:", err)
    				server.breakConnection(connection)
    				break
    			}
    		}
    		if server.Stat.Connections[address] != nil {
    			server.Stat.Connections[address].State = "conn_waiting"
    		}
    	}
    }

    memcache на go

    alek0585, 27 Февраля 2016

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

    −98

    1. 1
    2. 2
    3. 3
    СтрокаТовары.Качество					       = СтрокиОст.Качество;
    СтрокаТовары.ЕдиницаИзмерения			= СтрокиОст.ЕдИзм;
    СтрокаТовары.ЕдиницаИзмеренияМест		= СтрокиОст.ЕдИзмМест;

    Поражает сам подход. А почему бы не выдумать для (поля/объекта/коллекции) ещё одно уникальное имя?! Ведь столько ещё свободных и красивых уникальных имён в мире есть! К тому же "ЕдИзм" - это ведь короче чем "ЕдиницаИзмерения", не правда ли? Дурак перепутает только, правда? Писать ведь будет удобней, правда?
    Ладно... про ЗаполнитьЗначенияСвойств писать уже баян. Но ведь СтрокиОст - это строка какой-то таблицы? А в исходной таблице это называлось "ЕдиницаИзмерения", наверное, да? Так зачем лишний раз придумывать псевдоним?!!! Зачем? Почему просто не соединить таблицы друг с другом в запросе? Почему?! Почему нужно постоянно дрочить циклами?!
    Циклы надо применять тогда, когда нельзя по-другому, а это узкий круг задач, например те, где нужен CAST которого в 1С нет, или распределение одной таблицы на другую по какому какой нибудь "хитровыдуманной и уникальной" бизнес логике. Даже списание по ФИФО уже придумали как сделать запросом... Не хочу! Хочу циклы...

    levxxx, 19 Февраля 2016

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

    +2

    1. 1
    $sqo_answer['remark']!=''?$sqo_answer['remark']:''

    найдено на реальном проекте. один из тысячи

    castortroy06, 17 Февраля 2016

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