1. Java / Говнокод #9146

    +69

    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
    package com.govnoistochnik.servleti;
    
    ...
     
    import javax.servlet.GenericServlet;
    ...
     
    public class GenericReportingServlet extends GenericServlet {
    
    ...
    
    public synchronized void  createReport(...)
    {
    // pessot strok govnokoda
    }
    
    public synchronized void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
    // Kucha govnokoda
       createReport(...);
    // Prodoljeniye kuchi
    }
    
     ...
     
    }

    Хороший пример как сделать однопоточный репортинг сервер.

    Обратите внимание на "synchronized".
    Результат:
    1) Мах Session (200).
    2) Жрёт всю память
    3) Сервер виснет. Никакой Psi prob, Lambda prob ету гадину не выявит.
    4) Хрен найдёшь почему говняет если кода нет.

    kirpi, 17 Января 2012

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

    +969

    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
    public static string ConvertNumberToString(double tmpStr)
            {
                string ret = "";
                try
                {
                    if (((long)tmpStr).ToString().Length > 3)
                    {
                        string len = ((long)tmpStr).ToString();
                        string[] strSplit = tmpStr.ToString().Split(',');
    
                        long tmpM = 0;
                        if (strSplit.Length > 1)
                            tmpM = Convert.ToInt64(strSplit[1]);
    
                        int count = (int)len.Length / 3;
                        ret = len.Substring(0, (len.Length - 3 * count));
                        for (int i = 0; i < count; i++)
                        {
                            ret += " " + len.Substring((ret.Length - i), 3);
                        }
                        if (tmpM > 0)
                        {
                            ret += "," + strSplit[1];
                        }
                    }
                    else
                        ret = tmpStr.ToString();
                }
                catch
                {
                }
                return ret.Trim();
            }

    Из той же оперы...

    yorikim, 17 Января 2012

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

    +126

    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
    public static bool IsLong(string tmpStr)
    {
    	bool blRetVal = true;
    	for (int i = 0; i < tmpStr.Length; i++)
    	{
    		if (tmpStr[i] != '0' && tmpStr[i] != '1' && tmpStr[i] != '2' &&
    			tmpStr[i] != '3' && tmpStr[i] != '4' && tmpStr[i] != '5' &&
    			tmpStr[i] != '6' && tmpStr[i] != '7' && tmpStr[i] != '8' &&
    			tmpStr[i] != '9')
    			blRetVal = false;
    	}
    	return blRetVal;
    }
    
    static public string ConvertDateTimeForSQL(DateTime tmpDateTime)
    {
    	return (
    		tmpDateTime.Year.ToString() + "-" +
    		(tmpDateTime.Month < 10 ? "0" : "") + tmpDateTime.Month.ToString() + "-" +
    		(tmpDateTime.Day < 10 ? "0" : "") + tmpDateTime.Day.ToString() + " " +
    		(tmpDateTime.Hour < 10 ? "0" : "") + tmpDateTime.Hour.ToString() + ":" +
    		(tmpDateTime.Minute < 10 ? "0" : "") + tmpDateTime.Minute.ToString() + ":" +
    		(tmpDateTime.Second < 10 ? "0" : "") + tmpDateTime.Second.ToString());
    }
    
    static public string ConvertDateTimeShortForSQL(DateTime tmpDateTime)
    {
    	return (tmpDateTime.Year.ToString() + "-" +
    		(tmpDateTime.Month < 10 ? "0" : "") + tmpDateTime.Month.ToString() + "-" +
    		(tmpDateTime.Day < 10 ? "0" : "") + tmpDateTime.Day.ToString());
    }
    
    -----------------------------------
    P.S. Версия .NET 3.5

    yorikim, 17 Января 2012

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

    +123

    1. 1
    internal static string TryingDownloadAgainDotDotDot

    Индусы суровы.

    anycolor, 17 Января 2012

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

    +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
    public class DataRetriever
    {
        public static Object deserializeData(String fileName)
        {
            Object returnValue = null;
            try
            {
                File inputFile = new File(fileName);
                if (inputFile.exists() && inputFile.isFile())
                {
                    try (ObjectInputStream readIn = new ObjectInputStream(new FileInputStream(fileName)))
                    {
                        returnValue = readIn.readObject();
                    }
                }
                else
                {
                    throw new RuntimeException(new FileNotFoundException(fileName + " not found"));
                }
            }
            catch (ClassNotFoundException | IOException exc)
            {
                throw new RuntimeException(exc);
            }
            return returnValue;
        }
    
        private DataRetriever() { throw new AssertionError(); }
    }

    Паранойя неконтролируемых исключений

    dwinner, 17 Января 2012

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

    +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
    $(function() {
        var $track = $('#track');
        var $thumb = $('#thumb');
    
        document.getElementById('thumb').setAttribute('onDragStart', 'return false');
    
        $thumb.mousedown(function(e) {
            clickPointX = e.pageX - $(this).offset().left;
            isClicked = true;
    
            $thumb.stop();
        });
    });

    Пример с хабры, лишний код был опущен. Видимо религия автора не позволила задать атрибут по другому.

    SerDIDG, 16 Января 2012

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

    −134

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    с = 0;
    Для Каждого стчТовары Из ЗаказНаряд.Товары Цикл
    	нстчТовары = НоваяНалоговая.Товары.Добавить();
    	нстчТовары.Номенклатура = ЗаказНаряд.Товары[с].Номенклатура;
    	нстчТовары.Количество = ЗаказНаряд.Товары[с].Количество;
    	нстчТовары.Цена = ЗаказНаряд.Товары[с].Цена; 
    	...
    	нстчТовары.СуммаВсего = ЗаказНаряд.Товары[с].СуммаВсего;
    	с = с + 1;
    КонецЦикла;

    Ни шагу без счетчика! Особенно в итераторе. =)

    zfilin, 16 Января 2012

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

    +161

    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
    <?php
    //...
    while (($data = fgetcsv($handle, 1000, $this->CSV_SEPARATOR, $this->CSV_ENCLOSURE)) !== FALSE) {
    				$num = count($data);
    				$item = array();
    
    				for ($c=0; $c < count($data); $c++) {
    					$item[] = $data[$c];
    				}
    
    //некие действия с $item. $data больше нигде используется
    
    ?>

    Итого, $num не используется в цикле, да и сам по себе цикл - бесполезен, можно было сделать просто $item = $data; Не говоря уже о том, что можно просто использовать $data.

    Код из одного модуля для opencart.

    mr.The, 16 Января 2012

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

    +149

    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
    <?php
    function check_brackets($s)
    {
        $brackets = array('(' => ')' , '[' => ']', '{' => '}');
        $stack = array();
        
        for($i = 0; $i < strlen($s); $i++)
        {
            if(in_array($s[$i], array_keys($brackets)))
            {
                array_push($stack, $brackets[$s[$i]]);
            }
            elseif(in_array($s[$i], array_values($brackets)))
            {
                if(empty($stack) || array_pop($stack) != $s[$i])
                {
                    return false;
                }
            }
        }
        if(empty($stack)) return true;
    }
    
    if($_POST["bracket_string"] && $_POST["bracket_string"] <= 30)
    {
        if(check_brackets($_POST["bracket_string"]))
        {
            $message = "Check passed";
        }
        else $message = "Check failed";
    }
    
    ?>

    Финальная версия.

    varg242, 16 Января 2012

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

    +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
    17. 17
    18. 18
    19. 19
    20. 20
    //Рекурсивная функция цепной проверки категории
    	function category(){
    		static $category;
    		static $level=0;
    		$myrow = mysql_query("SELECT id,pot_category FROM categroy WHERE sysname='".$_GET['do'][$level]."'");
    		if(mysql_num_rows($myrow)){
    		$result = mysql_fetch_assoc($myrow);
    		if($result['no_viev']==0){
    		if($result['sysname']==end($_GET['do'])){
    			return 'category';
    			}else{
    				$level++;
    				$this->category();
    				}
    				}else{return 'no_viev';}
    		}else{
    			//Если категории не найдено то показываем ошибку 404
    			return FALSE;}
    		
    		}

    Бессмысленная рекурсия

    lans8097, 16 Января 2012

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