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

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

    +4

    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
    constexpr Fraction operator+(const Fraction& fraction) const noexcept
        {
            const Fraction max_fraction_by_denominator{denominator > fraction.denominator ? *this : fraction};
            const Fraction min_fraction_by_denominator{denominator < fraction.denominator ? *this : fraction};
            const bool is_sim_denominator = max_fraction_by_denominator.denominator %
                                            min_fraction_by_denominator.denominator == 0;
            int sim_denominator = is_sim_denominator ?
                max_fraction_by_denominator.denominator : (max_fraction_by_denominator.denominator *
                min_fraction_by_denominator.denominator);
            const int nominator1 = is_sim_denominator ? (min_fraction_by_denominator.nominator *
                max_fraction_by_denominator.denominator / min_fraction_by_denominator.denominator) :
                min_fraction_by_denominator.nominator * max_fraction_by_denominator.denominator;
            const int nominator2 = is_sim_denominator ? max_fraction_by_denominator.nominator :
                max_fraction_by_denominator.nominator * min_fraction_by_denominator.denominator;
            int nominators_sum = nominator1 + nominator2;
            int while_parts_sum = while_part + fraction.while_part;
    
            while (nominators_sum >= sim_denominator)
            {
                nominators_sum -= sim_denominator;
                ++while_parts_sum;
            }
    
            if (!nominators_sum)
                sim_denominator = 0;
    
            return {while_parts_sum, nominators_sum, sim_denominator};
        }

    jangolare, 06 Апреля 2016

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

    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
    public function getWinnerEmail($id)
    {
            if (!is_numeric($id)) {
                throw new BadRequestHttpException('Ошибка:' . __FUNCTION__ . ' ' . __LINE___);
            }
    
            //$project = Projects::findOne(['id' => $id]);
            $project = (new \yii\db\Query())
                ->select(['id', 'win_user_id'])
                ->from(self::tableName())
                ->where(['id' => $id])
                ->one();
    //        if ($project['win_user_id'] == null) {
    //            return false;
    //        }
    
            $result = User::findOne(['id' => $project['win_user_id']]);
            if ($result != null) {
                return ['id' => $result->id, 'email' => $result->email];
            }
    }

    Метод модели "Project"
    PHP-Framework yii2

    NotFake, 22 Марта 2016

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

    −1

    1. 1
    http://freelansim.ru/tasks/139911?utm_source=toster&utm_medium=referral&utm_campaign=task&utm_content=block_freelansim

    Ну просто поржать.
    А так вообще печально.

    ЗЫ. Не давно на хабре читал про бакдор в wordpress е залившейся через обновление плагина.

    Vasiliy, 18 Марта 2016

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

    +2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    // Статическая типизация для PHP < 7.0
    
    set_error_handler(function(){});
    
    function foo(int $bar)
    {
    	var_dump($bar);
    }
    
    foo(1); // Работает и выводит int(1)

    Недавно разгребал легасикод доставшийся по наследству. Увидел статическую типизацию там где ее не должно было быть. Проект крутится на 5.3.

    KiTE, 16 Марта 2016

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

    +6

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    // найдем максимальное значение идентификатора
    $SQL = "SELECT MAX( id ) AS id FROM  `filter_lists`  WHERE project=1";
    $id = query($SQL);
    //новый идентификатор
    $id = $id['0']['id'] + 1;

    Auto increment PHP way

    хуита, 09 Марта 2016

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

    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
    unsigned int FileScanner::smartBruteForce(QByteArray &haystack, QByteArray &needle)
    {
        unsigned int count = 0;
        unsigned int dataSize = haystack.size();
        unsigned int needleSize = needle.size();
        unsigned int needleSizeCut = needleSize - 1;
        char* dp = haystack.data();
        char* np = needle.data();
        char lastNeedle = *(np + needleSize - 1);
    
        for(unsigned int i = 0; i < dataSize - needleSize + 1; i++)
        {
            if(*(dp + (i + needleSizeCut)) != lastNeedle) //This is smart technology ))))
                continue;
            unsigned int j;
            for(j = 0; j < needleSize; j++)
            {
                if(*(dp + (i + j)) != *(np + j))
                    break;
            }
            if(j == needleSize)
                count++;
        }
        return count;
    }

    laMer007, 20 Февраля 2016

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

    −1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    public void SaveModels(IEnumerable<Activity> models)
     {
                if (models == null && models.Count() == 0) return;
                // step 1/3: remove empty models
                var empty = models.Where(m => !m.ForecastedValue.HasValue && !m.ActualValue.HasValue).ToList();
                if (empty != null)
                {
                    models = models.Except(empty);
                }
               .....
    }

    Зачем такая конструкция, если можно просто
    models = models.Where(m => m.ForecastedValue.HasValue && m.ActualValue.HasValue).ToList()
    К тому же проверка на null бесполезна - ни Where, ни ToList не могут вернуть null. Даже если в коллекции ничего не останется.

    sans, 08 Февраля 2016

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

    −2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    if (Yii::$app->request->post()) {
                $owner = User::userInfo();
                $model->manager = $owner['id'];
                $model->owner = $owner['id'];
                $model->iscarrier = $owner['iscarrier'];
                $model->isactual = 1;
                if ($model->load(Yii::$app->request->post())) {
                    $model->save();
                }
                return $this->redirect(['index']);
     }

    Б-Безопасность

    NotFake, 05 Февраля 2016

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

    +3

    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
    $bo[0][1]=$data[0][4][6]; $bo[0][0]=$data[0][4][7]; $bo[1][1]=0; $bo[1][0]=0;//def&atk bonuses
     switch($data[0][2][3])
     {
      case 1: $bo[0][0]+=0.25*$bo[0][0]; $bo[0][1]-=0.25*$bo[0][1]; break;//offensive
      case 2: $bo[0][0]-=0.25*$bo[0][0]; $bo[0][1]+=0.25*$bo[0][1]; break;//defensive
     }
     switch($data[1][2][3])
     {
      case 1: $bo[1][0]+=0.25*$bo[1][0]; $bo[1][1]-=0.25*$bo[1][1]; break;//offensive
      case 2: $bo[1][0]-=0.25*$bo[1][0]; $bo[1][1]+=0.25*$bo[1][1]; break;//defensive
     }
     //naval combat
     if ((($data[1][1][9])||($data[1][1][10]))&&(($data[0][1][9])||($data[0][1][10])))
     {
      $def[0]=($d_units[9][5]+$data[0][7][9])*$data[0][1][9]+($d_units[10][5]+$data[0][7][10])*$data[0][1][10]; $def[1]=($d_units[9][6]+$data[0][8][9])*$data[0][1][9]+($d_units[10][6]+$data[0][8][10])*$data[0][1][10]; $def[2]=($d_units[9][7]+$data[0][9][9]+$d_units[10][7]+$data[0][9][10])/2;
      $def[1]+=$def[1]*$bo[0][0]/100; $def[2]+=$def[2]*$bo[0][1]/100;
      $atk[0]=($a_units[9][5]+$data[1][3][9])*$data[1][1][9]+($a_units[10][5]+$data[1][3][10])*$data[1][1][10]; $atk[1]=($a_units[9][6]+$data[1][4][9])*$data[1][1][9]+($a_units[10][6]+$data[1][4][10])*$data[1][1][10]; $atk[2]=($a_units[9][7]+$data[1][5][9]+$a_units[10][7]+$data[1][5][10])/2;
      $atk[1]+=$atk[1]*$bo[1][0]/100; $atk[2]+=$atk[2]*$bo[1][1]/100;
      $ah=$def[0]/$atk[1]*(100-$def[2])/100; $dh=$atk[0]/$def[1]*(100-$atk[2])/100;
      $admg=($atk[0]-$ah*$def[1]*(100-$atk[2])/100)/$atk[0]; $ddmg=($def[0]-$dh*$atk[1]*(100-$def[2])/100)/$def[0];
      if ($admg<0) $admg=0; else if ($admg>1) $admg=1;
      if ($ddmg<0) $ddmg=0; else if ($ddmg>1) $ddmg=1;
      if ($ah<$dh)//if attacking ships win
      {
       $data[1][1][9]=ceil($data[1][1][9]*$admg); $data[1][1][10]=ceil($data[1][1][10]*$admg);
       $data[0][1][9]=0; $data[0][1][10]=0;
       for ($i=0; $i<count($a_units); $i++) if (($i<9)||($i>10)) $data[1][1][$i]=ceil($data[1][1][$i]*$admg);//drowned units
      }
      else//if defending ships win
      {
       $data[0][1][9]=ceil($data[0][1][9]*$ddmg); $data[0][1][10]=ceil($data[0][1][10]*$ddmg);
       $data[1][1]=array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
       $data[0][2][1]++; if ($data[1][2][1]) $data[1][2][1]--;//defending general promoted, the other demoted
       $data[3]=array(0, 0, 0, 0, 0); $data[4]=array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
       return $data;
      }
     }
     //land combat
     $def[0]=0; $def[1]=0; $def[2]=0; $atk[0]=0; $atk[1]=0; $atk[2]=0;
     for ($i=0; $i<count($d_units); $i++) if (($i<9)||($i>10))
     {
      $def[0]+=($d_units[$i][5]+$data[0][7][$i])*$data[0][1][$i]; $def[1]+=($d_units[$i][6]+$data[0][8][$i])*$data[0][1][$i]; $def[2]+=$d_units[$i][7]+$data[0][9][$i];
      $atk[0]+=($a_units[$i][5]+$data[1][3][$i])*$data[1][1][$i]; $atk[1]+=($a_units[$i][6]+$data[1][4][$i])*$data[1][1][$i]; $atk[2]+=$a_units[$i][7]+$data[1][5][$i];
     }
     if ($data[0][2][0]) {$def[1]+=($d_units[$data[0][2][2]][6]+$data[0][8][$data[0][2][2]])*$data[0][2][1]; $def[2]+=$d_units[$data[0][2][2]][7]+$data[0][9][$data[0][2][2]];}
     if ($data[1][2][0]) {$atk[1]+=($a_units[$data[1][2][2]][6]+$data[1][4][$data[1][2][2]])*$data[1][2][1]; $atk[2]+=$a_units[$data[1][2][2]][7]+$data[1][5][$data[1][2][2]];}
     $def[2]/=11; $def[1]+=$def[1]*$bo[0][0]/100; $def[2]+=$def[2]*$bo[0][1]/100;
     $atk[2]/=11; $atk[1]+=$atk[1]*$bo[1][0]/100; $atk[2]+=$atk[2]*$bo[1][1]/100;

    Я вам покушать принес(((( П.с. это прод онлайн игры мать ее(((((

    shift196, 04 Февраля 2016

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

    −19

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    Запрос = Новый Запрос;
    	Запрос.Текст = "ВЫБРАТЬ
    		|	ЗаказПоставщику.Ссылка КАК Ссылка
            |ИЗ
            |	Документ.ЗаказПоставщику КАК ЗаказПоставщику
            |ГДЕ
    		|	ЗаказПоставщику.EmeWmsЭкспорт И						
    		|	НЕ ЗаказПоставщику.ПометкаУдаления";

    yaguarvl, 01 Февраля 2016

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