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

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

    +34.2

    1. 1
    2. 2
    3. 3
    if (preg_match("/^([zZ][aA]|[зЗ][аА])$/", $text)) {
    		//za		
    } elseif (preg_match("/^([pP][rR][oO][tT][iI][vV]|[пП][рР][оО][тТ]][иИ][вВ])$/", $text)){

    Составил кто-то регулярку на проверку в сообщении слов за/za, против/protiv

    Обратите внимание как элегантно решена проблемма регистра символов

    guest, 16 Января 2009

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

    +34.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
    #Проверяем тест браузер
    function user_brouser(){
    global $HTTP_USER_AGENT;
    $agent=$HTTP_USER_AGENT;
    if(strlen($agent)>2&&!strstr($agent,'MSIE')){$br="Netscape";}
    else{if($agent!=str_replace("Opera","",$agent)){$br="Opera";}
    else{$br="IE";}}
    if($br!="IE"){
    echo"Для корректной работы нашего ресурса требуется Internet Explorer версии не ниже 6.0 !";
    exit();
    }
    }

    Вот так вот жестко.

    guest, 14 Декабря 2008

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

    +34

    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
    class cxx_query {
        elements operator()(const std::string &css_query);
        void operator()(std::function<void()> callback);
        http_request get(const std::string &url);
        // ...
    } $;
    
    #define function []
    
    $(function() {
        $.get(some_url, function(const std::string &data) {
            $("#result").html(data);
        });
    });

    bormand, 30 Декабря 2013

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

    +34

    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
    class A
    {
    public:
        unsigned int m_value;
    
        inline bool operator != ( const A & value )
        {
            unsigned int temp;
            temp = 0 != ( m_value != value.m_value );
            return 0 == temp;
        }
    
        inline bool operator == ( const A & value )
        {
            unsigned int temp;
            temp = 0 != ( m_value == value.m_value );
            return 0 != temp;
        }
    };

    Фрагмент кода одной коммерческой библиотеки. Имя класса изменено, 100500 прочих методов вырезано, но они похожи на эти.
    Я не буду акцентировать внимание на том, что операторы невозможно использовать для константных объектов, даже не буду говорить о странном способе сравнения целых чисел... Но я упомяну о том, что 'operator !=' работает немножко не так, как руссо-индусы ожидали.

    Little-Horny, 24 Июня 2013

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

    +34

    1. 1
    if (date('dmY', $lmtime) === date('dmY')) {

    Нужно было узнать, не сегодняшний ли день в отметке $lmtime.

    7ion, 15 Января 2013

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

    +34

    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
    void
    XmlRpcDispatch::work(double timeout)
    {
        ...
        nEvents = select(maxFd+1, &inFd, &outFd, &excFd, NULL);
        ...
    }
    
    void XmlRpcDispatch::terminate() {
        ...
        XmlRpcSocket::connect(_cmd_sock, "127.0.0.1", port);
        ...
    }

    Не то чтобы говнокод, но забавный костыль. А как еще корректно выйти из select'a, ждущего входящих соединений? Создать соединение самому.

    Steve_Brown, 12 Октября 2012

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

    +34

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    int main()
    try
    {
    }
    catch (...)
    {
    }

    http://ideone.com/luh8p

    LispGovno, 24 Сентября 2012

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

    +34

    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
    #include "xsmell.hpp"
    #include <iostream>
    
    TAG(html,  NO_ATTRIBS);
    TAG(head,  NO_ATTRIBS);
    TAG(title, NO_ATTRIBS);
    TAG(body,  NO_ATTRIBS);
    TAG(p,     NO_ATTRIBS);
    TAG(a,     ATTRIB(href));
    TAG(img,   ATTRIB(src), ATTRIB(alt));
    
    int main()
    {
        using namespace xsmell;
    
        document doc = 
            _
            <html>_
                <head>_
                    <title>"XSMELL demo"<!title>_
                <!head>_
                <body>_
                    <p>"Yesssssssssssssssss!"<!p>_
                    <img .src("chucknorris.png") .alt("sneezing eyes open")>_ <!img>_
                <!body>_
            <!html>
            _;
    
        std::cout << doc << '\n';
    
        return 0;
    }

    C++ умеет HTML не хуже этих ваших похапешечек ;)

    https://bitbucket.org/edd/xsmell/src

    bormand, 07 Августа 2012

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

    +34

    1. 1
    2. 2
    foreach($keys as $key) 
         $settings[$type][$fieldname][$key] =  (isset($fl[$type] [$fieldname] ['widget'] [$key] ) ) ? $fl[$type] [$fieldname] ['widget'] [$key] : '';

    вобля

    brainstorm, 08 Января 2011

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

    +34

    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
    void dump_indexes(map<int,stride_slices> picks, ofstream &f);
    {
      f<<"# full size: "<<picks.size()<<endl;
      for(map<int, stride_slices>::iterator
    	p=picks.begin(); p!=picks.end(); ++p)
        {
          f<<"## "
           <<p->first<<"'st stride slices count: "
           <<p->second.size()<<endl;
          
          for(stride_slices::iterator
    	    pp=p->second.begin(); pp!=p->second.end(); ++pp)
    	{
    	  f<<"### "
    	   << p->first<<"'st stride, "
    	   <<pp->first<<"'st slice size: "
    	   <<pp->second.size()<<endl;
    	  for(max_slice::iterator
    		ppp=pp->second.begin(); ppp!=pp->second.end(); ++ppp)
    	    {
    	      f<<"#### "
    	       <<p->first<<"'st stride, "
    	       <<pp->first<<"'st slice, "
    	       <<ppp->first<<"'st chunk size:"
    	       <<ppp->second.size()<<endl;
    	      
    	      for(max_chunk::iterator
    		    pppp=ppp->second.begin(); pppp!=ppp->second.end(); ++pppp)
    		f<<"       "
    		 <<p->first<<" "
    		 <<pp->first<<" "
    		 <<ppp->first<<" "
    		 <<pppp->first<<" : "
    		 <<pppp->second<<endl;	
    	    }
    	}
        }
    }

    а как нормально просмотреть кучу вложенных контейнеров?

    Biburath, 11 Августа 2009

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