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

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

    +17

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    ......
    $password = hash("sha256", $password);
    ......
    elseif(strlen($password) < 5)
        error("Пароль слишком короткий.");
    ......

    Necronth, 14 Октября 2015

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

    −4

    1. 1
    2. 2
    3. 3
    4. 4
    std::string CryptoOperations::getLastError()
    	{
    		return "Произошла неизвестная ошибка при выполнении криптооперации";
    	}

    laMer007, 08 Октября 2015

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

    +6

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    if (strlen($fio) < 2) {
        $error = 1; $error_text .= "Вы не представились<br>";
    }
    
    if (strlen($fio) > 5) {
        $error = 1; $error_text .= "Такого имени не бывает<br>";
    }

    Только избранный пройдет валидацию

    develop_id666, 15 Сентября 2015

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

    +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
    $opl1_type_arr = array("no","yes");
     for($i=0;$i<2;$i++){
                $str_pr = $opl1_type_arr[$i];
                echo "<option value=\"$str_pr\"";
                if($RowOP['pay_peredano']==$str_pr) echo " selected";
                switch ($str_pr) {
        case 'yes':
         echo ">Да</option>";
         break;
        case 'no':
         echo ">Нет</option>";
         break;
       }
     }

    Вырезано из 2.5к строчек кода на боевом проекте. Здесь прекрасно всё.

    boltayka, 20 Августа 2015

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

    +1006

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    if(cond) {
          #define INIT_COUNT 1
    } else {
          #define INIT_COUNT 2
    }

    Тот, кто показал мне этот кусочек кода, был очень удивлем тем , что все время выполняется только ветка else.

    refactor, 05 Августа 2015

    Комментарии (6)
  7. Куча / Говнокод #18517

    +134

    1. 1
    https://github.com/dlitz/pycrypto/issues?utf8=✓&q=aes

    3_14dar, 24 Июля 2015

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

    −123

    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
    def checkio(opacity):
        febonachi = [0, 1]
        opacity = 10000 - opacity
        year = 0
        for i in range(0, 21):
            febonachi.append((febonachi[i]+febonachi[i+1]))
        for i in range(2, 5000):
            if opacity == 0:
                break
            else:
                year += 1
                if year in febonachi:
                    opacity -= year
                else:
                    opacity += 1
        
        return year
    ​

    Определяем сколько приведяшкам лет по прозрачности. :)

    aslanator, 22 Июля 2015

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

    +145

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    // Я не знаю, на чём до c# писал человек, который пишет вот такой код...
    // sum типа decimal. Видимо, надо умножить её на 100 и передать округленной до целого куда-то в текстовом виде. 
    
    UInt32 summ_st = Convert.ToUInt32((Math.Round(sum * 100)).ToString("G"));
    string cmd = "" + summ_st.ToString() + "";

    И такое приходит от аутсорсеров

    babasya, 16 Июля 2015

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

    +142

    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
    /// <summary>
            /// Обновление данных о объекте
            /// </summary>
            /// <param name="theObject">ссылка на объект</param>
            public void Update(IPersistentObject theObject)
            {
                IDbCommand updateCommand = null;
                try
                {
                    using (updateCommand = CreateUpdateCommand(theObject))
                    {
                        updateCommand.Connection.Open();
                        updateCommand.ExecuteNonQuery();
                    }
                }
                catch (DbException ex)
                {
                    int code = 0;
                    if (ex is SqlException)
                    {
                        code = ((SqlException) ex).Number;
                    }
                    if (code == 229)
                    {
                        ex.Data.Add("Name", theObject.ClassInfo.Name);
                        ex.Data.Add("Description", theObject.ClassInfo.Description);
                        ex.Data.Add("Action", "UPDATE");
                        throw new InvalidOperationException(
                            String.Format("Ошибка обновления объекта [{0}] - {1} (ID = '{2}')",
                                          theObject.ClassInfo.Name,
                                          theObject.ClassInfo.Description,
                                          theObject.ID), ex);
                    }
                    if (code == 207 || code == 208)
                    {
                        throw new InvalidColumnException(theObject.ClassInfo, ex);
                    }
                    //theObject заменен на theObject.ID. Нечитабельно, но ... Т. к. при вычислении ToString()
                    //для показа объекта иногда задействуются методы загрузки данных
                    //названия объекта. Таким образом при высоком уровне изоляции транзакции
                    //мы получим зависание если будет попытка загрузить данные заблокированные транзакцией.
                    TraceLogger.Log(String.Format("Update {0}({1}){4} - {2}\n{3}", theObject.ID, theObject.ClassInfo,
                                                  ex.Message, ex.InnerException, theObject.GetInfoToTraceMessage()),
                                    TraceTypeEnum.UpdateStatement);
                    throw;
                }
                finally
                {
                    if (updateCommand != null)
                    {
                        updateCommand.Connection.Close();
                    }
                }
            }

    смертельный прием using
    и добьем соперника используя finally как фаталити

    перехват исключения тоже хорош, авторский комментарий добавляет изюминку

    vldalx, 10 Июля 2015

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

    +140

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    int __STRNCMP__(const char s1, const char s2, size_t n)
    {
     for (; n > 0; s1++, s2++, --n)
     if (s1 != s2)
      return (((unsigned char )s1 < (unsigned char )s2) ? -1 : +1);
     else if (*s1 == '\0')
      return 0;
     return 0;
    }

    Зачем нужен такой велосипед?

    Cynicrus, 07 Июля 2015

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