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

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

    +9

    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
    class A
    {
    public:
            A () : p (new SomeType)
            {
                    assert ("It must be non-zero" && p);
            }
            ~A ()
            {
                    Box <SomeType> deleter (p);
                    p = 0;
            }
    private:
            SomeType *p;
    };

    А вот и применение класса Box

    Setry, 19 Ноября 2012

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

    +49

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    if($model->validate(array('code')))
    {
    	$model->addError('code', 'Введен неверный код купона. Купон с таким кодом уже существует.');
    }
    else
    {
    	if($model->save())
    	{
    		$this->redirect(array('view','id'=>$model->id));
    	}
    }

    sleeper, 12 Ноября 2012

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

    +55

    1. 1
    2. 2
    3. 3
    4. 4
    if (trim((string) $_GET['tag'])) {
        $current = $conn->fetchAll("SELECT LOWER('" . (string) $_GET['tag'] . "') as `tag`");
        $current = $current[0]['tag'];
    }

    UnnamedUser, 09 Ноября 2012

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

    +16

    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
    QString QSqlResultPrivate::positionalToNamedBinding()
    {
        int n = sql.size();
    
        QString result;
        result.reserve(n * 5 / 4);
        bool inQuote = false;
        int count = 0;
    
        for (int i = 0; i < n; ++i) {
            QChar ch = sql.at(i);
            if (ch == QLatin1Char('?') && !inQuote) {
                result += qFieldSerial(count++);
            } else {
                if (ch == QLatin1Char('\''))
                    inQuote = !inQuote;
                result += ch;
            }
        }
        result.squeeze();
        return result;
    }
    
    // Пример запроса:
    // select * from some where d_t = "2012-11-08 12:00:00"

    Словили сегодня вот такой глюк в кутишечке.

    База данных отлично понимает строки и даты в двойных кавычках, все это даже работало какое-то время. Но когда попытались исполнить запрос с таймштампом в двойных кавычках (как в строке 25), начала возникать ошибка в духе "непонятные символы в дате". В одинарных же кавычках все работало. После копания в исходниках и гуглёжки выяснилась и причина - QtSql в упор не видит двойных кавычек, и пытается проставить в них именованные параметры (в нашем случае :00, :00)...

    Если кому нужен быстрофикс - берем тут: https://bugreports.qt-project.org/browse/QTBUG-27159

    bormand, 08 Ноября 2012

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

    +16

    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
    void keyStart(int key,void (*func)())
    {
      while(SDL_PollEvent(&keyEvent))
      {
        switch(keyEvent.type)
        {
          case SDL_KEYDOWN:
            switch(keyEvent.key.keysym.sym)
            {
              /*Выход*/
              case SDLK_ESCAPE:
              func();
              break;
              case SDLK_w:
              func();
              break;
              case SDLK_q:
              func();
              break;
              default:
              break;
            }
          break;
          default:
          break;
        }
      }
          
    }

    Функция высшего порядка, мужики. Сами знаете откуда.

    LispGovno, 06 Ноября 2012

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

    −156

    1. 1
    2. 2
    3. 3
    Говнокод, выручай пишу быстро. Работаю дома, так же как и ты наверно, у нас есть модем мегафон 4G.
    Я не знал что там трафик не безлимитный. Сейчас мамка хочет сделать запрос сайтов, точнее уже начала смотреть.
    Я смотрел на порно и дрочил, что делать?

    serpinski, 04 Ноября 2012

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

    +140

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    говорят, что на PL/1 это работает:
    
    if if = then then
        then = else;
    else else = if;

    dim1r, 25 Октября 2012

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

    +49

    1. 1
    2. 2
    3. 3
    4. 4
    ob_start();
    require_once realpath('.').'/email-template.html';
    $messageWithEwlTrailer = ob_get_contents();
    ob_end_clean();

    no comments

    anycolor, 18 Октября 2012

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

    +157

    1. 1
    2. 2
    3. 3
    4. 4
    var body=document.getElementsByTagName('body')[0];
    var newBody="";
    newBody='<div id="'+this.cntID+'" class="hide you">'+this.flashCntDivArr.join('')+'</div>'+bgLayerDiv+"<div id='tplCnt'>"+body.innerHTML+"</div>";
    body.innerHTML=newBody;

    Натолкнулся в одном из проектов на такой вот способ добавления элемента в DOM. Я чего-то не понимаю?

    nbspjr, 09 Октября 2012

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

    +102

    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
    ...
    while (GetRateStumpNew(_rateStumps, ddtdDateBegin, dDateEnd, out sstrRateStumpsNew,
                                               out ddtDateEditrateStumps, out ddouRateStumpsNew))
    {
        //если хоть раз сюда зашло, то ставим флагец
        isStumpForFirst = true;
    
        //записываем дату
        ddtdDateBegin = ddtDateEditrateStumps;
    
        //если один раз зашли, то дальше можно не проверять
        goto l1; //временно
    }
    l1:
    ...

    Полный контроль над последовательностью выполнения кода

    CrazyMORF, 01 Октября 2012

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