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

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

    +161

    1. 1
    2. 2
    3. 3
    4. 4
    public function &entityFactory() {
        $entityObject = new stdClass();
        return $entityObject;
    }

    shmaltorhbooks, 27 Сентября 2011

    Комментарии (22)
  3. Куча / Говнокод #7973

    +146

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    Как известно Страуструп для своей диссертации написал на языке Симула программу расчета данных.
    Причем программа была написана очень быстро и легко, что весьма порадовало Б.С. Но вот дальше
    обнаружилось, что скорость работы этой программы крайне мала. Как говорят, ее не хватало даже
    для того, чтобы насчитать необходимые данные к моменту защиты дисертации. Эффект этого произвел
    на (неокрепшие ) мозги г-на Страуструпа был ужасен. Но вместо визита к психотерапевту
    он решил создать свой язык, который бы совмещал в себе высокую скорость разработки (от Симулы)
    и высокую скорость выполнения (от С). Т.е. была поставлена задача написания языка C++, во-первых,
    объектно-ориентированного (в понимании Б.С.), а во-вторых, очень эффективного (в плане скорости
    выполнения скомпилированного кода).

    Статья:

    http://steps3d.narod.ru/tutorials/c-minus-minus.html
    Наш ответ:
    http://dshevchenko.biz/content/мой-ответ-алексею-викторовичу

    CKrestKrestGovno, 25 Сентября 2011

    Комментарии (22)
  4. PHP / Говнокод #7862

    +161

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    $name = $data->fields["name"];             
    $name = str_replace("\n","",$name);
    $name = str_replace("\r","",$name);
    $name = str_replace("\\","\\\\",$name);
    $name = preg_replace("/'/","&#39",str_replace("\n","",str_replace("\"",""",$name)));

    2, 3 и 4 строчки похожи на серию ударов по мозгу, а последняя на кровавое комбо :)

    Enjoy, 14 Сентября 2011

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

    +154

    1. 1
    2. 2
    $username=strtolower($this->username);
    $user=User::model()->find('LOWER(username)=?',array($username));

    чтоб наверняка
    http://yiiframework.ru/doc/blog/ru/prototype.auth

    DrFreez, 10 Сентября 2011

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

    +147

    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
    <?php
    /*
    	Виджет для формы логина
    */
    class UserLogin extends CWidget
    {
    	public function run()
    	{
                $model = new Login;
                if(!Yii::app()->user->isGuest)
                {
                    $this->render('loginOut', array('model'=>$model));
                } else {
                    $this->render('loginForm', array('model'=>$model));
                }
    	}
    }
    
    /**
     * модель логина
     */
    class Login extends CFormModel
    {
    	public $login;
    	public $pass;
    	public $rememberMe;
    
    	private $_identity;
    
    	public function rules()
    	{
                return array(
                    // username and password are required
                    array('login, pass', 'required', 'message'=>'поле {attribute} не может быть пустым'),
                    // rememberMe needs to be a boolean
                    array('rememberMe', 'boolean'),
                    // password needs to be authenticated
                    array('pass', 'authenticate'),
                );
    	}
    
    	/**
    	 * Declares attribute labels.
    	 */
    	public function attributeLabels()
    	{
                return array(
                    'login'=>'Логин',
                    'pass'=>'Пароль',
                    'rememberMe'=>'Запомнить',
                );
    	}
    
    	/**
    	 * Authenticates the password.
    	 * This is the 'authenticate' validator as declared in rules().
    	 */
    	public function authenticate($pass,$params)
    	{
                $this->_identity=new UserIdentity($this->login,$this->pass);
                if(!$this->_identity->authenticate())
                    $this->addError($pass, empty($params['message'])?'неправильный лоин или пароль':$params['message']);
    	}
    
    	/**
    	 * Logs in the user using the given username and password in the model.
    	 * @return boolean whether login is successful
    	 */
    	public function login()
    	{
                if($this->_identity===null)
                {
                    $this->_identity=new UserIdentity($this->login,$this->pass);
                    $this->_identity->authenticate();
                }
                if($this->_identity->errorCode===UserIdentity::ERROR_NONE)
                {
                    $duration=$this->rememberMe ? 3600*24*30 : 0; // 30 days
                    Yii::app()->user->login($this->_identity,$duration);
                    return true;
                } else {
                    return false;
                }
    	}
    }

    xyzdsnxyz, 03 Сентября 2011

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

    +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
    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
    89. 89
    90. 90
    procedure drawGird( var image1: TImage; needAxisLines: Boolean = True );
    var
      xP, yP: Integer;
      xC, yC: Double;
      h, w, tx, ty: Integer;
      Text: String;
    begin
      image1.Canvas.FillRect( image1.ClientRect );
      accuracy := 1 / cellSize;
      image1.Canvas.Brush.Style := bsClear;
    
      xC := p2cX( 0 );
      while forC( xC, p2cX( image1.Width ), accuracy ) do
        if floor( xC * cellSize ) mod cellSize = 0 then
        begin
          xP := c2pX( xC );
          image1.Canvas.Pen.Color := clSilver;
          image1.Canvas.MoveTo( xP, 0 );
          image1.Canvas.LineTo( xP, image1.Height );
    
          if ( needaxislines ) and ( abs( xC ) > 0.5 ) and
            ( xP > 30 ) and ( xP < image1.Width - 30 ) then
          begin
            image1.Canvas.Pen.Color := clBlack;
            image1.Canvas.MoveTo( xP, c2pY( -0.5 ) );
            image1.Canvas.LineTo( xP, c2pY( 0.5 ) );
          end;
        end;
    
      yC := p2cY( 0 );
      while forC( yC, p2cY( image1.Height ), accuracy ) do
        if floor( yC * cellSize ) mod cellSize = 0 then
        begin
          yP := c2pY( yC );
          image1.Canvas.Pen.Color := clSilver;
          image1.Canvas.MoveTo( 0, yP );
          image1.Canvas.LineTo( image1.Width, yP );
    
          if ( needaxislines ) and ( abs( yC ) > 0.5 ) and
            ( yP > 30 ) and ( yP < image1.Height - 30 ) then
          begin
            image1.Canvas.Pen.Color := clBlack;
            image1.Canvas.MoveTo( c2pX( -0.5 ), yP );
            image1.Canvas.LineTo( c2pX( 0.5 ), yP );
          end;
        end;
    
      xC := p2cX( 0 );
      while forC( xC, p2cX( image1.Width ), accuracy ) do
        if floor( xC * cellSize ) mod cellSize = 0 then
        begin
          xP := c2pX( xC );
    
          if ( needaxislines ) and ( abs( xC ) > 1.5 ) and
            ( xP > 30 ) and ( xP < image1.Width - 30 ) then
          begin
            image1.Canvas.Pen.Color := clBlack;
    
            Text := IntToStr( floor( xC ) );
            h := image1.Canvas.TextHeight( Text ) div 2;
            w := image1.Canvas.TextWidth( Text ) div 2;
    
            image1.Canvas.TextOut( xP - w, c2pY( -0.5 ) + ( h + 3 ) *
              ( ( floor( abs( xC ) ) mod ( ( ( w * 2 + 8 ) div cellSize ) +
              1 ) ) ), Text );
    
          end;
        end;
    
      yC := p2cY( 0 );
      while forC( yC, p2cY( image1.Height ), accuracy ) do
        if floor( yC * cellSize ) mod cellSize = 0 then
        begin
          yP := c2pY( yC );
          if ( needaxislines ) and ( abs( yC ) > 1.5 ) and
            ( yP > 30 ) and ( yP < image1.Height - 30 ) then
          begin
            image1.Canvas.Pen.Color := clBlack;
    
            Text := IntToStr( floor( yC ) );
            h := image1.Canvas.TextHeight( Text ) div 2;
            w := image1.Canvas.TextWidth( Text ) div 2;
    
            image1.Canvas.TextOut( c2pX( -0.5 ) - w * 2 - 2, yP - h, Text );
          end;
        end;
    
      image1.Canvas.Brush.Style := bsSolid;
    
    end;

    Сотня строк кода, для того, чтобы нарисовать сетку.

    Fai, 30 Июля 2011

    Комментарии (22)
  8. Pascal / Говнокод #7362

    +147

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    procedure TForm1.GoBtnClick(Sender: TObject);
    BEGIN
     If GoBtn.Enabled = false then Exit;
     GoBtn.Enabled := false;
    // Some code
    END;

    Вот что бывает, когда не продумаешь весь проект до конца.

    Govnocoder#0xFF, 28 Июля 2011

    Комментарии (22)
  9. JavaScript / Говнокод #7319

    +160

    1. 1
    path = path.path if typeof path "object"

    На CoffeeScript написал.

    Jesus, 23 Июля 2011

    Комментарии (22)
  10. Lua / Говнокод #7297

    −96

    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
    function onUpdate(this)
    			
    	local  a;
    
    	a = math.floor( math.random() * 1000);
    
    	if(a==68)then
    		playParticleFx(this,"/particles/spider/spider_lift.psysl",10);
    		--logWarning("spirder1");
    	end
    
    	if(a==35)then
    		playParticleFx(this,"/particles/spider/spider_lift_1.psysl",10);
    		--logWarning("spirder2");
    	end
    
    	if(a==73)then
    		playParticleFx(this,"/particles/spider/spider_lift_2.psysl",10);
    		--logWarning("spirder3");
    	end
    
    end;

    Выдержка из Lua-скрипта.
    Выпускаем побегать декоративного паучка по случайными интервалам времени.

    Kirinyale, 20 Июля 2011

    Комментарии (22)
  11. JavaScript / Говнокод #7279

    +153

    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
    <!-- позиционирование элементов меню -->
    <script language="JavaScript">
        var pos = document.getElementById('f_g_b').offsetLeft;
        var obj = getElementsByClass('s_g_b',null,'table');
        for(i=0;i<obj.length;i++){
          obj[i].style.left = pos+"px";
        }
        var ua = navigator.userAgent;
        if ((ua.indexOf('Gecko') != -1)&&(ua.indexOf('Chrome') == -1))
        {
          obj = getElementsByClass('s_g_t',null,'table');
          for(i=0;i<obj.length;i++){
            obj[i].style.left = pos+"px";
          }
        }
    </script>

    Предыдущий пост цвяточек по сравнению, с использованияем JS вместо css хаков. ППЦ я такого еще не видел.

    enemis, 18 Июля 2011

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