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

    В номинации:
    За время:
  2. 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)
  3. Куча / Говнокод #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)
  4. 1C / Говнокод #19493

    −98

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

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

    levxxx, 19 Февраля 2016

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

    +2

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

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

    castortroy06, 17 Февраля 2016

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

    +5

    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
    var From = $('#TransferFrom').val();
    					var To = $('#TransferTo').val();
    					var Time = Number($('#TransferTime').val());
    					var Count = Number($('#TransferCount').val());
    					$(['#', 'Debet', From].join('')).text(Number($(['#', 'Debet', From].join('')).text()) + Count);
    					$(['#', 'Credit', To].join('')).text(Number($(['#', 'Credit', To].join('')).text()) + Count);			
    					$(['#', 'Cache', From].join('')).text(Number($(['#', 'Cache', From].join('')).text()) - Count);
    					$(['#', 'Cache', To].join('')).text(Number($(['#', 'Cache', To].join('')).text()) + Count);
    					setTimeout(function()
    					{
    						$(['#', 'Debet', From].join('')).text(Number($(['#', 'Debet', From].join('')).text()) - Count);
    						$(['#', 'Credit', To].join('')).text(Number($(['#', 'Credit', To].join('')).text()) - Count);	
    						$(['#', 'Cache', From].join('')).text(Number($(['#', 'Cache', From].join('')).text()) + Count);
    						$(['#', 'Cache', To].join('')).text(Number($(['#', 'Cache', To].join('')).text()) - Count);
    					}, Time * 1000);

    Да это сука гениально!

    d_fomenok, 16 Февраля 2016

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

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    parent = Folder.get_parent->do
    while not [parent is null] : {
        current = parent
        parent  =  Folder.get_parent->do
        break
    }

    так вот ищут корневую папку

    _a_o_O, 15 Февраля 2016

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

    +5

    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
    FUNCTION PHP_FIREWALL_get_env($st_var) {
    		global $HTTP_SERVER_VARS;
    		if(isset($_SERVER[$st_var])) {
    			return strip_tags( $_SERVER[$st_var] );
    		} elseif(isset($_ENV[$st_var])) {
    			return strip_tags( $_ENV[$st_var] );
    		} elseif(isset($HTTP_SERVER_VARS[$st_var])) {
    			return strip_tags( $HTTP_SERVER_VARS[$st_var] );
    		} elseif(getenv($st_var)) {
    			return strip_tags( getenv($st_var) );
    		} elseif(function_exists('apache_getenv') && apache_getenv($st_var, true)) {
    			return strip_tags( apache_getenv($st_var, true) );
    		}
    		return '';
    	}

    Это шедевр!

    d_fomenok, 14 Февраля 2016

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

    +10

    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
    class infoshow
    {
    
    
        public function success($text)
        {
    
    
            return "<div class=\"alert alert-success\">" . $text . "</div>";
        }
    
    
        public function info($text)
        {
    
    
            return "<div class=\"alert alert-info\">" . $text . "</div>";
        }
    
    
        public function warning($text)
        {
    
    
            return "<div class=\"alert alert-warning\">" . $text . "</div>";
        }
    
    
        public function danger($text)
        {
    
    
            return "<div class=\"alert alert-danger\">" . $text . "</div>";
        }
    
    }

    Учим ООП

    CoolCoder, 12 Февраля 2016

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

    +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
    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
    $sql = array();
    foreach ($stats as $date => $array) {
        $where="";
        $where = array();
        $where['date'] = $date;
        foreach ($array as $sub => $array1) {
    
            $where['sub'] = $nosqlmap->text($sub);
    
            foreach ($array1 as $webmaster => $array2) {
                $where['user']=$webmaster;
    
    
                foreach ($array2 as $offer => $array3) {
                    $where['offer'] = $offer;
    
                    foreach ($array3 as $promo => $array4) {
                        $where['promo'] = $promo;
    
                        foreach ($array4 as $potoc => $array5) {
    
                            $where['potoc'] = $nosqlmap->o9($potoc);
    
                            if (!isset($stats_o[$date][$sub][$webmaster][$offer][$promo][$potoc]['orders'])) $stats_o[$date][$sub][$webmaster][$offer][$promo][$potoc]['orders'] = 0;
                            if (!isset($stats_o[$date][$sub][$webmaster][$offer][$promo][$potoc]['aprove'])) $stats_o[$date][$sub][$webmaster][$offer][$promo][$potoc]['aprove'] = 0;
                            if (!isset($stats_o[$date][$sub][$webmaster][$offer][$promo][$potoc]['noorder'])) $stats_o[$date][$sub][$webmaster][$offer][$promo][$potoc]['noorder'] = 0;
                            if (!isset($stats_o[$date][$sub][$webmaster][$offer][$promo][$potoc]['money'])) $stats_o[$date][$sub][$webmaster][$offer][$promo][$potoc]['money'] = 0;
    
                            $where['unics'] = $array5['unics'];
                            $where['hits'] = $array5['hits'];
                            $where['orders'] = $stats_o[$date][$sub][$webmaster][$offer][$promo][$potoc]['orders'];
                            $where['aprove'] = $stats_o[$date][$sub][$webmaster][$offer][$promo][$potoc]['aprove'];
                            $where['noorder'] = $stats_o[$date][$sub][$webmaster][$offer][$promo][$potoc]['noorder'];
                            $where['money'] = $stats_o[$date][$sub][$webmaster][$offer][$promo][$potoc]['money'];
                            $sql[] = $where;
                        }
    
                    }
    
                }
            }
    
        }
    }

    CoolCoder, 12 Февраля 2016

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

    +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
    15. 15
    16. 16
    17. 17
    $error = 0;
                list($date, $time) = explode(' ', $_POST['date_till']);
                if (isset($date) && isset($time)) {
                    list($day, $month, $year) = explode('.', $date);
                    list($hour, $min) = explode(':', $time);
                    if (isset($day) && isset($month) && isset($year) && isset($hour) && isset($min)) {
                        $date_till = "$year-$month-$day $hour:$min:00";
                        $executed = Groups::setOutOfRangeGroups($date_till);
                        if (!$executed) {echo 'q';
                            $error = 1;
                        }
                    } else {echo 'w';
                        $error = 1;
                    }
                } else {echo 'e';
                    $error = 1;
                }

    Нормальные герои всегда идут в обход!

    deep, 12 Февраля 2016

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