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

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

    +163

    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
    ....
    this.add_var = function(code){
      if(!this.undef.oneOf(code[1])){
        vName = code[1];
        if(this.isName(vName)){
          if(this.type[vName] == undefined){
            this.type[vName] = 'var';
            if(code[2] == '='){
              if(!this.undef.oneOf(code[3])){
                if(this.isNumber(code[3])){
                  value = parseFloat(code[3]);
                  this.vars[vName] = value;
                  return value;
                }else if(this.isName(code[3])){
                  if(this.vars[code[3]] != undefined){
                    value = this.vars[code[3]];
                    this.vars[vName] = value;
                    return value;
                  }else{
                    return 'Error:variable ' + code[3] + ' undefined.'
                  }
                }else{
                  return 'Error:value must be variable or number'
                }
              }else{
                return 'Error:you not type var value.'
              }
            }else{
              return 'nil';
            }
          }else{
            return 'Error:variable already defined.';
          }
        }else{
          return 'Error: in variable name.'
        }
      }else{
        return 'Error: you not type var name.'
      }
    }
    ....

    Часть исходника интерпретатора функционального ЯПа добавляющая переменные в контекст.
    Представляет собой каскад всевозможных проверок.

    art543484, 01 Января 2011

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

    +163

    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
    $adapter = DbManager::getInstance();
    $adapter->beginTransaction();
    $modelStudent = new EDCore_Models_Student(array('db' => DbManager::getInstance()));
    $idStudent = $student->getIdStudent();
    if ($idStudent === null)
    {
       $idStudent = $modelStudent->createStudent($idClient, $student->getFemale(), $student->getFirstName(), $student->getLastName(), $student->getLocation()->getId(), $student->getBirthDate(), $student->getAddress(), $student->getEmail(), $student->getPhone());
    }
    else
    {
       $modelStudent->updateStudent($idClient, $idStudent, $student->getFemale(), $student->getFirstName(), $student->getLastName(), $student->getLocation()->getId(), $student->getBirthDate(), $student->getAddress(), $student->getEmail(), $student->getPhone());
    }
    $adapter->commit();
    return $idTeacher;

    Нактнулся на феноменальный метод. Последней каплей стало возвращаемое значение. Проронил слезу и отправился на обед, дабы восстановить своей психическое здоровье.

    vkosinets, 24 Декабря 2010

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

    +163

    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
    AClass::AClass()
    {
            char c;
    	pipe( m_ThreadPipeA );
    	pipe( m_ThreadPipeB );
            write( m_ThreadPipeA[0], &c, sizeof(c) );
    }
    
    void AClass::JobCreatorThread()
    {
    	char c;
    	do {
    		/* prepare new job and pass it to the thread pool */
    		read( m_ThreadPipeA[1], &c, sizeof(c) );
    		m_CurrJob = IncomingJob;
    		write( m_ThreadPipeB[0], &c, sizeof(c) );
    	} while (!m_Shutdown);
    }
    
    void AClass::ThreadPoolMethod()
    {
    	char c;
    	do {
    		Job j;
    		read( m_ThreadPipeB[1], &c, sizeof(c) );
    		j = m_CurrJob;
    		write( m_ThreadPipeA[0], &c, sizeof(c) );
    		/* handle the job j */
    	} while (!m_Shutdown);
    }

    из архивов.

    дала как-то архетиктура задание модуль распаралелить потоками - но при этом как можно меньше использовать локи, что бы проблем вертикального скалирования не возникало. и три месяца спустся они родили -о чудо!- многопоточный модуль ВООБЩЕ без локов. тока с производительностью проблемы - но это не могут быть локи потому что модуль ими ВООБЩЕ не пользуется - почему мне и дали задание посмотреть что там можно еще усовершенствовать.

    мне несколько часов понадобилось что бы мой примитивный мозг смог осознать величие полета мысли моих коллег. а потом (когда я наконец из моря кода выцедил приведенную сверху эссенцию) у меня волосы дыбом встали....

    лопата: чудаки пайпами симулировали мутексы/ивенты. и ведь не придерешься: архитекторы сказали локи избегать, а про пайпы ничего сказано не было.

    ЗЫ ну и то что в джоб объекте еще и строковых массивов на 80К, и они постоянно копировались туды сюды, это было cherry topping ко всему этому счастью.

    Dummy00001, 23 Декабря 2010

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

    +163

    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
    #define LOKI_TYPELIST_4(T1, T2, T3, T4) \
        ::Loki::Typelist<T1, LOKI_TYPELIST_3(T2, T3, T4) >
    #define LOKI_TYPELIST_5(T1, T2, T3, T4, T5) \
        ::Loki::Typelist<T1, LOKI_TYPELIST_4(T2, T3, T4, T5) >
    ...
    ...
    #define LOKI_TYPELIST_49(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
            T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
            T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
            T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, \
            T41, T42, T43, T44, T45, T46, T47, T48, T49) \
        ::Loki::Typelist<T1, LOKI_TYPELIST_48(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
            T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
            T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
            T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, \
            T41, T42, T43, T44, T45, T46, T47, T48, T49) >
    #define LOKI_TYPELIST_50(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
            T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
            T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
            T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, \
            T41, T42, T43, T44, T45, T46, T47, T48, T49, T50) \
        ::Loki::Typelist<T1, LOKI_TYPELIST_49(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
            T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
            T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
            T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, \
            T41, T42, T43, T44, T45, T46, T47, T48, T49, T50) >

    Говногость, 21 Декабря 2010

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

    +163

    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
    <?php
    // Заменить значния, выделенные жирным на действительные
    // Соединяемся с "Мускулом"
     define("MYSQL_HOST","myhost.ru",true);
     define("MYSQL_USER","username",true);
     define("MYSQL_PASS","userpass",true);
     define("MYSQL_DB_N","userdb",true);
     define("MYSQL_DB_N","userstable",true);
     $_MYSQL_CONNECT = false; $_MYSQL_ERROR = -1;
     if ($_MYSQL_CONNECT = @mysql_connect(MYSQL_HOST,MYSQL_USER,MYSQL_PASS))
     {
      if (mysql_select_db(MYSQL_DB_N,$_connect))
      {
       $_MYSQL_ERROR = 0; define("MYSQL_CONNECTED",true,true);
      } else { $_MYSQL_ERROR = 2; define("MYSQL_CONNECTED",false,true); }
     } else { $_MYSQL_ERROR = 1; define("MYSQL_CONNECTED",false,true); }
    // Проверяем значение
    // Определяем список разрешённых неалфавитноцифровых символов
     $_SRCH[0] = '.'; $_SRCH[1] = '_'; $_SRCH[2] = '-'; $_SRCH[3] = ' ';
     if (isset($_POST['user']))
     {
      $_tmp = iconv("UTF-8","CP1251//IGNORE",urldecode($_POST['user']));
      if (ctype_alnum(str_replace($_SRCH,'',$_tmp)) && (strlen($_tmp) < 33))
      {
       if (MYSQL_CONNECTED)
       {
        $_query = 'SELECT * FROM '.MYSQL_US_N." WHERE nick='".$_tmp."'";
        if ($_result = mysql_query($_query,$_MYSQL_CONNECT))
        {
         if ($_row = mysql_fetch_assoc($_result))
         {
          define("_RESULT","RES_EX",true);
         } else { define("_RESULT","RES_OK",true); }
        } else { define("_RESULT","RES_MYSQL_BQ",true); }
       } else { define("_RESULT","RES_MYSQL_NC",true); }
      } else { define("_RESULT","POST_IN",true); }
     } else { define("_RESULT","POST_NS",true); }

    qbasic, 17 Декабря 2010

    Комментарии (58)
  7. JavaScript / Говнокод #4929

    +163

    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
    function Typets()
    {
    	switch (window.document.forms['osago'].elements['tstype'].value)
    	{
    		case 'car': show_power();  show_klass(); show_nar(); show_driver(); break;
    		case 'taxi': show_power();  show_klass(); show_nar(); show_driver(); break;
    		case 'gruzdo16': hide_power();  show_klass(); show_nar(); show_driver(); break;
    		case 'gruz':  hide_power();  show_klass(); show_nar(); show_driver(); break;
    		case 'pricepgruz': hide_power(); hide_klass(); hide_nar(); hide_driver(); break;
    		case 'busdo20': hide_power();  show_klass(); show_nar(); show_driver(); break;
    		case 'bus': hide_power();  show_klass(); show_nar(); show_driver(); break;
    		case 'bustaxi': show_power();  show_klass(); show_nar(); show_driver(); break;
    		case 'trol': hide_power();  show_klass(); show_nar(); show_driver(); break;
    		case 'tram': hide_power();  show_klass(); show_nar(); show_driver(); break;
    		case 'tractor': hide_power(); show_klass(); show_nar();  show_driver(); break;
    		case 'priceptractor': hide_power();  hide_klass(); hide_nar(); hide_driver(); break;
    		case 'moto': hide_power();  show_klass(); show_nar(); show_driver(); break;
    
    	}
    }
    
    //  От туда же
    
    function show_podrobno() {
        window.document.getElementById('podrobno').style.display = 'block'; 
        window.document.getElementById('podrlink').style.display = 'none';   
    }
    
    function hide_podrobno() {
         window.document.getElementById('podrobno').style.display = 'none';
         window.document.getElementById('podrlink').style.display = 'block';  }

    Скопировано из одного сайта :))

    Zuzzuk, 15 Декабря 2010

    Комментарии (14)
  8. PHP / Говнокод #4925

    +163

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    class C
    {
    ...
    static function ModulesList()
    {
                    global $config;
                    return $config;
    }
    ...
    }

    ООП в действии

    elw00d, 15 Декабря 2010

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

    +163

    1. 1
    2. 2
    3. 3
    $result = mysql_query ("INSERT INTO ....");
    
    if ($result ='true') {echo "<p>Информация успешно добавлена в базу</p>";}

    С одного из форумов

    Int, 13 Декабря 2010

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

    +163

    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
    function replaceBBCodes($text){ 
    $text=str_replace("/\n/m", "$0<br/>", $text);
    $text = htmlspecialchars($text);
    $text=nl2br($text);
    $text=stripslashes($text);   
    $text=str_replace("!#3040#!", "&", $text);
    $text=str_replace('[b]', '<strong>', $text);
    $text=str_replace('[/b]', '</strong>', $text);
    $text=str_replace('[i]', '<em>', $text);
    $text=str_replace('[/i]', '</em>', $text);
    $text=str_replace('[u]', '<u>', $text);
    $text=str_replace('[/u]', '</u>', $text);
    $text=str_replace('[s]', '<s>', $text);
    $text=str_replace('[/s]', '</s>', $text);
    $text=str_replace('[left]', '<span class="bb_left">', $text);
    $text=str_replace('[/left]', '</span>', $text);
    $text=str_replace('[right]', '<span class="bb_right">', $text);
    $text=str_replace('[/right]', '</span>', $text);
    $text=str_replace('[center]', '<span class="bb_center">', $text);
    $text=str_replace('[/center]', '</span>', $text);
    $text=str_replace('[justify]', '<span class="bb_justify">', $text);
    $text=str_replace('[/justify]', '</span>', $text);
    $text=preg_replace("#\[color=(.*?)](.*?)\[/color\]#si", '<span style="color:$1">$2</span>',$text);
    $text=preg_replace("#\[size=(.*?)](.*?)\[/size\]#si", '<span style="font-size:$1px">$2</span>',$text);
    $text=preg_replace("#\[a=(.*?)](.*?)\[/a\]#si", '<a href="$1">$2</a>',$text);
    $text=preg_replace("#\[img=(.*?)](.*?)\[/img\]#si", '<img src="$2" alt="images" style="float:$1;margin:5px;" />',$text);
    $text=preg_replace("#\[youtube](.*?)\[/youtube\]#si",'<object width="425" height="350"><param name="movie" value="http://www.youtube.com/v/$1"></param><embed src="http://www.youtube.com/v/$1" type="application/x-shockwave-flash" width="425" height="350"></embed></object>',$text);
    $text=preg_replace("#\[youtube](.*?)\[/youtube\]#si",'<object width="425" height="350"><param name="movie" value="http://www.youtube.com/v/$1"></param><embed src="http://www.youtube.com/v/$1" type="application/x-shockwave-flash" width="425" height="350"></embed></object>',$text);
    $text=preg_replace("#\[spoiler=(.*?)](.*?)\[/spoiler\]#si", '<div id=\'video\'><h1 class="headtt2" onclick="expandit(this)">$1</h1>
    <div style="display:none;" class="sdsp">         $2</div> </div>', $text);
    $text=preg_replace("#\[podspoiler=(.*?)](.*?)\[/podspoiler\]#si", '<h1 class="headtt" onclick="expandit(this)">$1</h1>
    <div style="display:none;text-align:center">$2</div>', $text);
    return $text; 
    }

    qbasic, 10 Декабря 2010

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

    +163

    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
    //
    				if (delay == 0)
    				{
    					Uint8 *keys = SDL_GetKeyState(NULL);
    					// Checking for letters
    					for (c = 97; c < 123; c++)
    						if (cpos < 9)
    							if (keys[c] && !delay)
    							{
    								mapname[cpos] = c;
    								mapname[++cpos] = '\0';
    								delay = 5;
    								
    								bg.show(400, 240, 0);
    								text.print(mapname, 200, 180);
    								render.backend();
    								
    								break;
    							}
    					// Checking for numbers
    					for (c = 48; c < 58; c++)
    						if (cpos < 9)
    							if (keys[c] && !delay)
    							{
    								mapname[cpos] = c;
    								mapname[++cpos] = '\0';
    								delay = 5;
    								
    								bg.show(400, 240, 0);
    								text.print(mapname, 200, 180);
    								render.backend();
    								
    								break;
    							}
    					// On pressing ENTER
    					if (keys[13] && !delay && strlen(mapname) > 2)
    						break;
    					// On pressing BACKSPACE
    					if (keys[SDLK_BACKSPACE] && cpos > 0 && !delay)
    					{
    						mapname[--cpos] = '\0';
    						delay = 5;
    						
    						bg.show(400, 240, 0);
    						if (cpos > 0) text.print(mapname, 200, 180);
    						render.backend();
    					}
    				}
    				
    				if (delay > 0)
    					delay--;

    Уверен, можно было сделать намного проще =)

    wh_, 10 Декабря 2010

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