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

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

    +161.7

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    function read_file($path)
    {if(!is_file($path))return false;
    elseif(!filesize($path))return array();
    elseif($array=file($path))return $array;
    else while(!$array=file($path))sleep(1);
    return $array;}

    интересный способ чтения файла в WR-Counter )))

    inso, 14 Октября 2009

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

    +158.1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    case 'down':
    	if (parseInt(pageTop) + parseInt(pageHeight) - parseInt(elementTop) - parseInt(elementHeight) - parseInt(elementBorderTop) - parseInt(elementBorderBottom) >= parseInt(stepOfMove)) {
    		var topParam = parseInt(elementTop) - 0 + parseInt(stepOfMove) + 'px';
    		elementToMove.style.top = topParam;
    		this.updateElementsParams(id,'top',topParam);
    	} else {
    		stepOfMoveElement.value = parseInt(pageTop) - 0 + parseInt(pageHeight) - parseInt(elementTop) - parseInt(elementHeight) - parseInt(elementBorderTop) - parseInt(elementBorderBottom);
    	}
    break;

    и так миллион тыщ раз...

    Sadie, 21 Сентября 2009

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

    −91.2

    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
    function upHandler(event:MouseEvent):void 
    {
            //r_arr[event.currentTarget.index].stopDrag();
    				
    	event.currentTarget.stopDrag();
    				
            //r_arr[event.currentTarget.index].removeChildAt(2);
    
    	if((r_arr[event.currentTarget.index].x>550)||(r_arr[event.currentTarget.index].x<160)||(r_arr[event.currentTarget.index].y>400)||(r_arr[event.currentTarget.index].y<0))
    	{
    	        r_arr[event.currentTarget.index].x=546;
    		r_arr[event.currentTarget.index].y=(r_arr[event.currentTarget.index].index+1)*30;
    	}
    }

    Сама семантика малопримечательна. Вся соль в способе адресации к объекту массива r_arr при совершении события мыши прямо над этим же объектом. Методы и свойства объекта достаются через ***у по индексу из-за пазухи: r_arr[event.currentTarget.index].removeChildAt(2)
    вместо достаточного: event.currentTarget.removeChildAt(2)

    t8apb, 17 Сентября 2009

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

    +132.2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    cboRole.DataSource = Controller.GetViewForRole();
    cboRole.DataBind();
    
    try {
       cboRole.SelectedValue = roleId.ToString();
    } catch (ArgumentOutOfRangeException) {
       cboRole.Items.Add(new ListItem(roleName, roleId.ToString()));
       cboRole.SelectedValue = roleId.ToString();
    }

    Нету значения - не проблема, создадим и присвоим. Не беда, что инициализация рядом...

    batonkolbas, 17 Сентября 2009

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

    +73

    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
    ..........
    
    if (year.equals(beginYear)) {
        //таск полностью попадает в месяц
        if ((beginMonth == month) && (endMonth == month)) {
         for (int i = 1; i < beginDate; i++) {
          row.add(3);
         }
         for (int i = beginDate; i < realizationDate; i++) {
             row.add(-1);
         }
         row.add(1);
         for (int i = realizationDate + 1; i <= endDate; i++) {
             row.add(2);
         }
         for (int i = endDate; i < columnCount; i++) {
          row.add(3);
         }
        }
        
        //таск полностью не попадает в месяц или полностью занимает месяц
        if ((beginMonth < month) && (endMonth > month)) {
         for (int i = 1; i < columnCount; i++) {
          row.add(-1);
         }
        } else if ((beginMonth < month) && (endMonth < month)) {
         for (int i = 1; i < columnCount; i++) {
          row.add(3);
         }
        } else if ((beginMonth > month) && (endMonth > month)) {
         for (int i = 1; i < columnCount; i++) {
          row.add(3);
         }
        }
        
        //таск попадает в месяц частично
        if ((beginMonth == month) && (beginMonth < endMonth)) {
         if (beginMonth == realizationMonth) {
          for (int i = 1; i < beginDate; i++) {
           row.add(3);
          }
          for (int i = beginDate; i < realizationDate; i++) {
              row.add(-1);
          }
          row.add(1);
          for (int i = realizationDate + 1; i < columnCount; i++) {
              row.add(2);
          }
         } else {
          for (int i = 1; i < beginDate; i++) {
           row.add(3);
          }
          for (int i = beginDate; i < columnCount; i++) {
              row.add(-1);
          }
         }
        } else if ((endMonth == month) && (beginMonth < endMonth)){
         if (endMonth == realizationMonth) {
          for (int i = 1; i < realizationDate; i++) {
           row.add(-1);
          }
          row.add(1);
        
          for (int i = realizationDate + 1; i <= endDate; i++) {
              row.add(2);
          }
          for (int i = (endDate + 1); i < columnCount; i++) {
           row.add(3);
          }
         } else {
          for (int i = 1; i <= endDate; i++) {
           row.add(2);
          }
          for (int i = (endDate + 1); i < columnCount; i++) {
           row.add(3);
          }
         } 
        }
       } else {
        for (int i = 1; i < columnCount; i++) {
         row.add(3);
        }
       }
    ...........

    Вот так корень кладёт данные в таблицу по определённой дате

    paranoid, 11 Сентября 2009

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

    +99

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    try
                SetPropValue(c, aqGetConfigproperty_name.asString,aqGetConfigpropery_value.asvariant);
                aqGetConfig.Next;
            if aqGetConfigproperty_name.AsString = 'TabVisible'
            then begin
                if aqGetConfigpropery_value.AsString = '1' then vis:=True
                else vis:=False;
                SetPropValue(c, aqGetConfigproperty_name.asString,vis);
                end

    Вот так мы ставим свойства закладок из конфигуратора:)

    judywood, 03 Сентября 2009

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

    +156.2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    if($started==true && !empty($query))
    do { } while ($todo===$berry);
    
    /*
     * if started equals true,
     * and isn't empty query,
     * do nothing while todo
     * really more, than berry
     */

    no comments

    greevex, 03 Сентября 2009

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

    +132.9

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    if ("Recap".Equals(Request["post_back"]))
                {
                   <...>
                    if (Request["apply_coupon.x"] != null)
                    {
                        ValidateCoupon();
                    }
                    else if ("Recap".Equals(Request["post_back"]))
                    { <...> }
                   <...>
            }

    Из одного очень древнего проекта, с самопальным post back'ом

    Капитан Очевидность, 02 Сентября 2009

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

    +136

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    public bool IsPositiveNumber(String strNumber)
    {
        Regex objNotPositivePattern = new Regex("[^0-9.]");
        Regex objPositivePattern = new Regex("^[.][0-9]+$|[0-9]*[.]*[0-9]+$");
        Regex objTwoDotPattern = new Regex("[0-9]*[.][0-9]*[.][0-9]*");
        return !objNotPositivePattern.IsMatch(strNumber) &&
        objPositivePattern.IsMatch(strNumber) &&
        !objTwoDotPattern.IsMatch(strNumber);
    }

    Валидатор :)

    Coffeeholic, 01 Сентября 2009

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

    +62.7

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    class UglyColumnsRedefine < ActiveRecord::Migration
      def self.up
        change_column :variable_sets, :active, :boolean
        VariableSet.all.each{|v| v.update_attribute :active, !!v.active}
      end
    
      def self.down
      end
    end

    Миграция с весёлым названием 20090601130619_ugly_columns_redefine.rb, для рельсового приложения, аля "так делать низя".

    NoName, 26 Августа 2009

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