1. PHP / Говнокод #8837

    +163

    1. 1
    if(!($_POST[$_POST[parameter_value]])){$parameter_value=" ";}else{$parameter_value=$_POST[$_POST[parameter_value_cash]];}

    shl, 15 Декабря 2011

    Комментарии (6)
  2. Java / Говнокод #8836

    +144

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    private static final BigDecimal $150 = BigDecimal.valueOf(150);
    private static final BigDecimal $500 = BigDecimal.valueOf(500);
    private static final BigDecimal $751 = BigDecimal.valueOf(751);
    
    // rule example
    all(
        paymentOfType(COMPREHENSIVE, greaterOrEqual($500)),
        noPaymentsButComprehensive
    ).mapTo(result(ACTIVITY_TYPE_ACC, COMPREHENSIVE_OVER_500))

    Код мой. Есть таблица правил (в Excel), по которой нужно классифицировать некие объекты. Все правила собраны в одном классе и представляют из себя конструкции наподобие той, что в топике.
    У меня с остальной частью команды возник конфликт по поводу наименования констант: все считают, что называть константы как $500 - сущее зло, а правильно называть MAX_AMOUNT_FOR_COMP_OVER_500. Я считаю, что $500 - это 500 долларов, блеать, а константа нужна только в одном месте и для читаемости. Мне по сути пофигу, как называется константа, интересно узнать ваше мнение.
    наболело

    roman-kashitsyn, 15 Декабря 2011

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

    +133

    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
    /// <summary>
            /// Abs function
            /// </summary>
            private static object Abs(List<Expression> p)
            {
                return Math.Abs(p[0]);
            }
    
            /// <summary>
            /// Acos function
            /// </summary>
            private static object Acos(List<Expression> p)
            {
                return Math.Acos(p[0]);
            }
    
            /// <summary>
            /// Asin function
            /// </summary>
            private static object Asin(List<Expression> p)
            {
                return Math.Asin(p[0]);
            }
    
            /// <summary>
            /// Atan function
            /// </summary>
            private static object Atan(List<Expression> p)
            {
                return Math.Atan(p[0]);
            }
    
            /// <summary>
            /// Atan2 function
            /// </summary>
            private static object Atan2(List<Expression> p)
            {
                return Math.Atan2(p[0], p[1]);
            }

    Кусок кода от "Капитана Очевидность"

    govnokoder_, 15 Декабря 2011

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

    +146

    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
    public ActionResult RenderDesigner()
    {
        // Get the received text
        var received = string.Empty;
        using(var reader = new StreamReader(Request.InputStream))
        {
            received = reader.ReadToEnd();
        }
    
        // Possible texts received
        var xml = "";
        var id = "";
        var moveId = "";
        int distance = 0;
        
        // Get all string from received
        var keys = received.Split('&');
        for (var i = 0; i < keys.Length; i++)
        {
            // XML
            if(keys[i].StartsWith("xml="))
            {
                xml = Server.UrlDecode(keys[i].Split('=')[1]);
            }
    
            // ID
            else if (keys[i].StartsWith("id="))
            {
                id = keys[i].Split('=')[1];
            }
            // Position
            else if (keys[i].StartsWith("distance="))
            {
                distance = int.Parse(keys[i].Split('=')[1]);
            }
    
            // Move ID
            else if (keys[i].StartsWith("moveId="))
            {
                moveId = keys[i].Split('=')[1];
            }
        }
    }

    разбор параметров POST запроса в стиле MVC

    Eugene, 15 Декабря 2011

    Комментарии (2)
  5. JavaScript / Говнокод #8833

    +146

    1. 1
    2. 2
    aWidth = Math.min(Math.max(thisText*5+80, 150), 350);
    aHeight = (thisText>610) ? 290 : (thisText>550) ? 270 : (thisText > 490) ? 250 : (thisText > 420) ? 230 : (thisText > 360) ? 210 : (thisText > 300) ? 190 : (thisText > 240) ? 170 : (thisText > 180) ? 150 : (thisText > 120) ? 130 : (thisText > 60)? 110 : 100;

    обнаружил у себя в проекте, оказывается взяли тут http://www.daniweb.com/web-development/javascript-dhtml-ajax/threads/212610

    andrewshca, 15 Декабря 2011

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

    +145

    1. 1
    Math.min(Math.max(asd, 350), 350);

    и почему размер всегда 350?

    andrewshca, 15 Декабря 2011

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

    +83

    1. 1
    2. 2
    URI uri = new URI("http://themoneyconverter.com/USD/rss.xml");
    Document doc = db.parse(uri.toString());

    Умей передавать строки правильно, падаван

    digi, 15 Декабря 2011

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

    −116

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    NSString *selectedDate2=appDelegate.date;
        NSString *y=[selectedDate2 substringWithRange:NSMakeRange(0,4)];
        NSString *m=[selectedDate2 substringWithRange:NSMakeRange(5,2)];
        NSString *d=[selectedDate2 substringWithRange:NSMakeRange(8,2)];
        NSString *selectedDate=[NSString stringWithFormat:@"%@-%@-%@",d,m,y];
        NSLog(@"Selected Date is %@",selectedDate);

    парсинг даты по-индусски

    realsugar, 15 Декабря 2011

    Комментарии (28)
  9. C# / Говнокод #8828

    +122

    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
    Controller.cs
    
    	public ActionResult SomeAction()
    	{
    		return View("My message");
    	}
    
    SomeAction.cshtml
    
    @{
    	Layout = null;
    }
    @Html.Raw(string.Format("{0}", Model.ToString()))

    Да, это ASP.Net MVC

    medved123, 14 Декабря 2011

    Комментарии (6)
  10. Си / Говнокод #8827

    +104

    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
    // старый "медленый" код, проверяем размеры по именам файлов (последний параметр):
    
      if((checkFileLimits(_logTimeLimit,_logSizeLimit,_logStartTime,_traceFile1)>0) ||
         (checkFileLimits(_logTimeLimit,_logSizeLimit,_logStartTime,_traceFile2)>0) ||
         (checkFileLimits(_logTimeLimit,_logSizeLimit,_logStartTime,_traceFile3)>0) ||
         (checkFileLimits(_logTimeLimit,_logSizeLimit,_logStartTime,_traceFile) >0) )
    
    // новый "быстрый" код, проверяем размеры по файл хэндлам:
    
      FILE* fp1 = fopen(_traceFile1, "r");
      FILE* fp2 = fopen(_traceFile2, "r");
      FILE* fp3 = fopen(_traceFile3, "r");
      FILE* fp4 = fopen(_traceFile, "r");
      
      if((checkFileLimitsHandle(_logTimeLimit,_logSizeLimit,_logStartTime,fp1)>0) ||
         (checkFileLimitsHandle(_logTimeLimit,_logSizeLimit,_logStartTime,fp2)>0) ||
         (checkFileLimitsHandle(_logTimeLimit,_logSizeLimit,_logStartTime,fp3)>0) ||
         (checkFileLimitsHandle(_logTimeLimit,_logSizeLimit,_logStartTime,fp4) >0) )
             setTraceFile(NULL);
    
      fclose(fp1);
      fclose(fp2);
      fclose(fp3);
      fclose(fp4);

    наши бенчмаркеры чего-то там тестировали (на NFS!!!) и нашли что некоторые модули/библиотеки используют stat() вместо fstat()/ftell() для определения размера лог/трейс файлов (для ротации этих файлов). stat() берет как параметр не хэндл, а имя файла и поэтому дороже с точки зрения производительности. в особенности на NFS. ну начальник R&D и постановил: все stat()ы заменить на fstat()/ftell(). сказано - сделано. кусок сверху из модуля который пользуется внешней либой для логов и трейсов и у которого доступа к хэндлам нету. но герои не ищут легких путей: открываем файлы, получаем хэндлы, проверяем оптимальным образом размер файлов по хэндлам, закрываем файлы, гатова!

    Dummy00001, 14 Декабря 2011

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