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

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

    −33

    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
    CArray <CStyle *, CStyle *> m_aStyles;
    
    ...
    
    #define RETURN_TRUE  return *bOk = TRUE, S_OK
    #define RETURN_FALSE return *bOk = FALSE, S_FALSE
    #define RETURN_ERROR(E) \
    	return LastErrorCode = (ERROR_##E), *bOk = FALSE, S_FALSE
    
    ...
    
    // Создание нового стиля (пустого)
    STDMETHODIMP CEffector::AddStyle(VARIANT_BOOL *bOk)
    {
    	AFX_MANAGE_STATE(AfxGetStaticModuleState())
    	
    	CStyle *pNew = new CStyle;
    	if (pNew)
    	{
    		INT n = m_aStyles.GetSize();
    		m_aStyles.Add(pNew);
    		if (m_aStyles.GetSize() <= n)
    			RETURN_ERROR(MEMORY);
    	}
    	else
    		RETURN_ERROR(MEMORY);
    	RETURN_TRUE;
    }
    
    ...
    
    // Получение кода ошибки
    STDMETHODIMP CEffector::GetErrorCode(long *p)
    {
    	AFX_MANAGE_STATE(AfxGetStaticModuleState())
    
    	*p = LastErrorCode;
    	LastErrorCode = ERROR_NONE;
    	return S_OK;
    }

    Мой первый COM-объект.
    1) Если при успешном возвращении метод должен возвращать S_OK, то при ошибке... S_FALSE, наверное.
    2) Только в Дельфи почему-то возвращается не HRESULT, а параметр, помеченный [out]. Поэтому пришлось добавить аргумент *bOk.
    3) Интересно, что делает CArray, когда кончается память.

    Steve_Brown, 08 Июня 2012

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

    +141

    1. 1
    GOTO END;

    Copy-Paste, 04 Июня 2012

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

    −35

    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
    bool EvtDecay::isCharm(EvtId xid){
    EvtId d0    = EvtPDL::getId(std::string("D0"));
    EvtId d0bar = EvtPDL::getId(std::string("anti-D0"));
    EvtId dp    = EvtPDL::getId(std::string("D+"));
    EvtId dm    = EvtPDL::getId(std::string("D-"));
    EvtId d0h   = EvtPDL::getId(std::string("D0H"));
    EvtId d0l    = EvtPDL::getId(std::string("D0L"));
    EvtId dstp   = EvtPDL::getId(std::string("D*+"));
    EvtId dstm   = EvtPDL::getId(std::string("D*-"));
    EvtId ds0    = EvtPDL::getId(std::string("D*0"));
    EvtId ds0bar = EvtPDL::getId(std::string("anti-D*0"));
    EvtId dsp    = EvtPDL::getId(std::string("D_s+"));
    EvtId dsm    = EvtPDL::getId(std::string("D_s-"));
    EvtId dsstp  = EvtPDL::getId(std::string("D_s*+"));
    EvtId dsstm  = EvtPDL::getId(std::string("D_s*-"));
    EvtId ds0stp = EvtPDL::getId(std::string("D_s0*+"));
    EvtId ds0stm = EvtPDL::getId(std::string("D_s0*-"));
    
     std::vector<EvtId> Vid; Vid.clear();
     Vid.push_back(d0);
     Vid.push_back(d0bar);
     Vid.push_back(dp);
     Vid.push_back(dm);
     Vid.push_back(d0h);
     Vid.push_back(d0l);
     Vid.push_back(dstp);
     Vid.push_back(dstm);
     Vid.push_back(ds0);
     Vid.push_back(ds0bar );
     Vid.push_back(dsp );
     Vid.push_back(dsm );
     Vid.push_back(dsstp );
     Vid.push_back(dsstm );
     Vid.push_back(ds0stp );
     Vid.push_back(ds0stm );
    
     bool flag=true;
     for(int i=0;i<Vid.size();i++){ if(xid == Vid[i]) return flag;}
     return false;
    }

    физика высоких энергий, китайский говнокод

    blah, 04 Июня 2012

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

    −136

    1. 1
    СОСИТЕ МОЙ ХУЙ, УБЛЮДКИ!!!

    uiopqwertyasd, 29 Мая 2012

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

    +75

    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
    if (ereg("^/products/([0-9]+)/$",$dn,$m)){
        $block_id = $m[1];
        $dn_page = "/products/";
    }
    
    if (ereg("^/products/([-a-z0-9_\.]+)/$",$dn,$m)){
        $block_alias = $m[1];
        $dn_page = "/products/";
    }
    
    if (ereg("^/articles/([0-9]+)/$",$dn,$m)){
        $block_id = $m[1];
        $dn_page = "/articles/";
    }
    
    if (ereg("^/news/([0-9]+)/$",$dn,$m)){
        $block_id = $m[1];
        $dn_page = "/news/";
    }
    
    if (ereg("^/products/([0-9]+)/([0-9]+)/$",$dn,$m)){
        $block_id = $m[1];
        $product_id = $m[2];
        $dn_page = "/products_detail/";
    }
    
    if (ereg("^/products/([-a-z0-9_\.]+)/([-a-z0-9_\.]+)/$",$dn,$m)){
        $block_alias = $m[1];
        $product_alias = $m[2];
        $dn_page = "/products_detail/";
    }
    // дальше начинается ад, не для слабонервных

    Я не буду показывать остальной код и рассказывать, что html в php пихать не красиво, ведь все мы индивидуальны и пишем как хотим. =)
    Кроме всего прочего, человек видимо очень стар и использует давно устаревшую функцию ereg, которая в версии 5.3.0 не имеет силы.
    На эту тему можно пофилософствовать и развести холивар, но мы же разумные люди и те кто пишет комментарии высшие программисты,
    ибо их слово это закон. По крайней мере вы так думаете)

    oooZinka, 29 Мая 2012

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

    −121

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    case when z.nprc is null then
                                 case when ..........
                                      then  z.nsalary
                                      else  .........
                                 end * (nvl(sum(z.hour), 0)) * nvl(z.nprc, 0) / 100
                              else
                                 .........
                              end

    При условии если z.nprc is null то входим в кейс значение которого при любом раскладе будет умножено на ноль
    * (nvl(sum(z.hour), 0)) * nvl(z.nprc, 0) / 100 эквивалентно (nvl(sum(z.hour), 0)) * 0 / 100

    siv163, 25 Мая 2012

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

    −88

    1. 1
    2. 2
    3. 3
    4. 4
    NSString *error = [NSString stringWithFormat:@"Enter your %@%@%@", 
    											 [email length] ? @"" : @"email",
    											 [email length] || [password length] ? @"" : @" and ",
    											 [password length] ? @"" : @"password"];

    Дай дураку тернарный оператор - он и лоб расшибет.

    byss, 17 Мая 2012

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

    +98

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    var prevQuery = new { TimePassed = 1, ID = 1 };
    prevQuery = null;
    foreach (var currentQuery in db.Queries.Select(q => new { TimePassed = q.TimePassed, ID = q.ID }))
    {
    	if (prevQuery != null)
    	{
    		//действия с prevQuery и currentQuery
    	}
    	prevQuery = currentQuery;
    }

    HIMen, 17 Мая 2012

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

    +62

    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
    $str = CHEREZ_GOPU_NOCACHE ? false : $mem->get($cachename);
     if ($str === false)
     {
    
      /*
        
    мно гомно гомно го кода 
     */
       $mem->set('totalonline', $totalonline, false, MEMCACHE_CACHETIME * 3);
       if (!CHEREZ_GOPU_NOCACHE)
           $mem->set($cachename, $str, false, MEMCACHE_CACHETIME);
    
    }

    и еще 100500 строк в данном файле...

    Sulik78, 17 Мая 2012

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

    +176

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    function getAnchor(link){
    	var url=( (!link) ? window.location : link).toString();
    	var idx = url.indexOf("#");
    	return (idx != -1 ? url.substring(idx+1) : '');	
    }
    function setAnchor(anchor){
    	var url=(window.location).toString();
    	var idx = url.indexOf("#");
    	return ( window.location= 
    		(idx != -1 ? url.substring(0,idx+1) : url+'#')+anchor
    	);
    }

    3.14159265, 16 Мая 2012

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