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

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

    +149

    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
    <?php 
    	if($_POST['start']>150)
    		die('NULL');
    	$start=$_POST['start'];
    	$end=min($start+$_POST['limit'],150);
    	$k=0;
    	for($i=$start;$i<$end;++$i)
    	{if($k>50)
    		die();
    		$k++;
    		?>
    		
    <div class="table_account bg_color_ta_1">
    ...

    Вот такую гранату я сегодня получил от "выпускника" Харьковского вуза по специализации программирования.
    Тут уже чуток обсуждали http://webimho.ru/topic/5481/

    q10800, 17 Апреля 2013

    Комментарии (65)
  3. Си / Говнокод #12708

    +102

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    if (sscanf(buf, "%d-%d-%d %d:%d:%d %d.%d.%d.%d %s %d.%d.%d.%d %llu %llu %llu %llu %d %d %d",
               &r->year,&r->month,&r->day,&r->hour,&t5,&t6,&s1,&s2,&s3,&s4,&r->iface,&d1,&d2,&d3,&d4,
               &r->packets_out,&r->bytes_out,&r->packets_in,&r->bytes_in,&r->proto,&r->sport,&r->dport)<22) {
        printf("Syntax error at line %u\n", t->count + 1);
        /* ... some cleanup ...*/
        return 0;
    }

    Вот так я читал строку из текстового файла в моем первом боевом проекте.

    bormand, 08 Марта 2013

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

    +24

    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
    #include <iostream>
    #define n 1
    int main()
    {
    using namespace std;
    cout << (n < 0 ? 1 : 0)+
    ((n << 1) < 0 ? 1 : 0)+
    ((n << 2) < 0 ? 1 : 0)+
    ((n << 3) < 0 ? 1 : 0)+
    ((n << 4) < 0 ? 1 : 0)+
    ((n << 5) < 0 ? 1 : 0)+
    ((n << 6) < 0 ? 1 : 0)+
    ((n << 7) < 0 ? 1 : 0)+
    ((n << 8) < 0 ? 1 : 0)+
    ((n << 9) < 0 ? 1 : 0)+
    ((n << 10) < 0 ? 1 : 0)+
    ((n << 11) < 0 ? 1 : 0)+
    ((n << 12) < 0 ? 1 : 0)+
    ((n << 13) < 0 ? 1 : 0)+
    ((n << 14) < 0 ? 1 : 0)+
    ((n << 15) < 0 ? 1 : 0)+
    ((n << 16) < 0 ? 1 : 0)+
    ((n << 17) < 0 ? 1 : 0)+
    ((n << 18) < 0 ? 1 : 0)+
    ((n << 19) < 0 ? 1 : 0)+
    ((n << 20) < 0 ? 1 : 0)+
    ((n << 21) < 0 ? 1 : 0)+
    ((n << 22) < 0 ? 1 : 0)+
    ((n << 23) < 0 ? 1 : 0)+
    ((n << 24) < 0 ? 1 : 0)+
    ((n << 25) < 0 ? 1 : 0)+
    ((n << 26) < 0 ? 1 : 0)+
    ((n << 27) < 0 ? 1 : 0)+
    ((n << 28) < 0 ? 1 : 0)+
    ((n << 29) < 0 ? 1 : 0)+
    ((n << 30) < 0 ? 1 : 0)+
    ((n << 31) < 0 ? 1 : 0)
    << endl;
    return 0;
    }

    Для заданного пятизначного целого числа подсчитать количество его нулей.
    Прямо с экзамена. Преподаватель катается по полу. Не шучу.

    LispGovno, 25 Декабря 2012

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

    +57

    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
    function GetOrderSkidka(&$arrData)
        	{
    	    	if($this->flag_opt){
    	    	 	$arrData['skidka']  = ($this->admin_mode) ? $arrData['skidka'] : 0;
    	    	 	$arrData['allsum']  = $arrData['sum'] - $arrData['skidka'];
    	    	 	return;
    	        }
    	    	if(!$this->flag_in_action){
    	    		$arrData['cnt_s_prod'] = $arrData['cnt'];
    	    	}elseif(in_array($this->flag_action_type,array(2,3))){
    	    		$this->calcCntProd($arrData);
    	    	}else{
    	    		$arrData['cnt_s_prod'] = 0;
    	    	}
    	    	$this->discount->GetOrderSkidka($arrData);
        	}

    Работаю с сайтом, в котором все методы классов работают со своими параметрами таким образом.
    Метод может ничего не возвращать, а вызывать другие методы (которые также могут вызывать какие-то методы),
    которые в зависимости от множества условий меняют переданные по ссылке параметры.
    Итог работы модифицированный параметр- массив. Только XDebug выручает.

    minramilka, 31 Августа 2012

    Комментарии (65)
  6. bash / Говнокод #11534

    −125

    1. 1
    2. 2
    #!/bin/bash
    sed -e 's/^\s*$/\#/gi' < $1| sed -e 's/$/<br>/gi'| awk 'BEGIN { i1=0;print "<html><head><META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=Windows-1251\"></head><body>"; } {  gsub(/^#/,"<a name=\"L"i1++"\">L"i1-1"</a>");print } END { for(i=0;i<=i1;i++){ print "<a href=\"#L"i"\">#"i"</a><br\ >"};print "</body></html>" }' > $1.html

    Программа преобразует текстовый файл в html

    AliceGoth, 05 Августа 2012

    Комментарии (65)
  7. PHP / Говнокод #9970

    +171

    1. 1
    2. 2
    3. 3
    4. 4
    <?php
    class Modules_Admin_Parser_Driver_SiteCom implements Modules_Admin_Parser_Interface {
    }
    ?>

    Старый добрый неймспейс

    Zho, 17 Апреля 2012

    Комментарии (65)
  8. Haskell / Говнокод #9598

    −92

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    -- | The unit datatype @()@ has one non-undefined member, the nullary
    -- constructor @()@.
    data () = () deriving Generic
    
    data (,) a b = (,) a b
    . . .
    data (,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,) a b c d e f g h i j k l m n o p q r s t u v w x y z a_ b_ c_ d_ e_ f_ g_ h_ i_ j_ k_ l_ m_ n_ o_ p_ q_ r_ s_ t_ u_ v_ w_ x_ y_ z_ a__ b__ c__ d__ e__ f__ g__ h__ i__ j__
     = (,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,) a b c d e f g h i j k l m n o p q r s t u v w x y z a_ b_ c_ d_ e_ f_ g_ h_ i_ j_ k_ l_ m_ n_ o_ p_ q_ r_ s_ t_ u_ v_ w_ x_ y_ z_ a__ b__ c__ d__ e__ f__ g__ h__ i__ j__
        -- deriving Generic
    {- Manuel says: Including one more declaration gives a segmentation fault.
    . . .

    *тяжелый вздох*

    http://www.haskell.org/ghc/docs/latest/html/libraries/ghc-prim-0.2.0.0/src/GHC-Tuple.html#%28%29

    wvxvw, 03 Марта 2012

    Комментарии (65)
  9. ActionScript / Говнокод #8714

    −111

    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
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    public class MonstrGrafic extends ModulINT {
    		var data:XML;
    		var colors:Array = new Array(
    			'0x008080',
    			'0x800080',
    			'0xccffcc',
    			'0x00ffff',
    			'0x800000',
    			'0x0000ff',
    			'0x00ccff',
    			'0xccffff',
    			'0xffff00',
    			'0xffff99',
    			'0x000080',
    			'0xff00ff'
    		);
    		var ListTime:Array = new Array(
    			"08:00:00 - 08:15:00",
    			"08:15:00 - 08:30:00",
    			"08:30:00 - 08:45:00",
    			"08:45:00 - 09:00:00",
    			"09:00:00 - 09:15:00",
    			"09:15:00 - 09:30:00",
    			"09:30:00 - 09:45:00",
    			"09:45:00 - 10:00:00",
    			"10:00:00 - 10:15:00",
    			"10:15:00 - 10:30:00",
    			"10:30:00 - 10:45:00",
    			"10:45:00 - 11:00:00",
    			"11:00:00 - 11:15:00",
    			"11:15:00 - 11:30:00",
    			"11:30:00 - 11:45:00",
    			"11:45:00 - 12:00:00",
    			"12:00:00 - 12:15:00",
    			"12:15:00 - 12:30:00",
    			"12:30:00 - 12:45:00",
    			"12:45:00 - 13:00:00",
    			"13:00:00 - 13:15:00",
    			"13:15:00 - 13:30:00",
    			"13:30:00 - 13:45:00",
    			"13:45:00 - 14:00:00",
    			"14:00:00 - 14:15:00",
    			"14:15:00 - 14:30:00",
    			"14:30:00 - 14:45:00",
    			"14:45:00 - 15:00:00",
    			"15:00:00 - 15:15:00",
    			"15:15:00 - 15:30:00",
    			"15:30:00 - 15:45:00",
    			"15:45:00 - 16:00:00",
    			"16:00:00 - 16:15:00",
    			"16:15:00 - 16:30:00",
    			"16:30:00 - 16:45:00",
    			"16:45:00 - 17:00:00",
    			"17:00:00 - 17:15:00",
    			"17:15:00 - 17:30:00",
    			"17:30:00 - 17:45:00",
    			"17:45:00 - 18:00:00",
    			"18:00:00 - 18:15:00",
    			"18:15:00 - 18:30:00",
    			"18:30:00 - 18:45:00",
    			"18:45:00 - 19:00:00",
    			"19:00:00 - 19:15:00",
    			"19:15:00 - 19:30:00",
    			"19:30:00 - 19:45:00",
    			"19:45:00 - 20:00:00",
    			"20:00:00 - 20:15:00",
    			"20:15:00 - 20:30:00",
    			"20:30:00 - 20:45:00",
    			"20:45:00 - 21:00:00",
    			"21:00:00 - 21:15:00",
    			"21:15:00 - 21:30:00",
    			"21:30:00 - 21:45:00",
    			"21:45:00 - 22:00:00",
    			"22:00:00 - 22:15:00",
    			"22:15:00 - 22:30:00",
    			"22:30:00 - 22:45:00",
    			"22:45:00 - 23:00:00",
    			"23:00:00 - 23:15:00",
    			"23:15:00 - 23:30:00",
    			"23:30:00 - 23:45:00",
    			"23:45:00 - 24:00:00"
    		);

    kyzi007, 03 Декабря 2011

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

    +160

    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
    class array
    {
        int data[256];
        int p;
    
    public:
        array ():
            p (0)
        {}
    
        array & operator , (int a)
        {
            data[p++] = a;
            return *this;
        }
    
        array & operator = (const array & arr)
        {
            p = 0;
            memcpy (data, arr.data, sizeof (data));
            return *this;
        }
    
        int & operator [] (size_t i)
        {
            return data[i];
        }
    };
    
    #define _I array(),
    #define I_
    #define o_O ,
    
    int _tmain(int argc, _TCHAR* argv[])
    {
        array arr;
        arr = _I 1,2,3,4,5,6 I_;    // init
        arr o_O 7,8,9,10;           // append new
        arr o_O 11 o_O 12;          // append new
    }

    http://www.gamedev.ru/flame/forum/?id=153265#m4

    RS-232, 09 Октября 2011

    Комментарии (65)
  11. Java / Говнокод #7788

    +78

    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
    /**
    	* @param loginName
    	* @return
    	* This method is create a LoginName as Input data
    	*/
    public String getLoginName(String loginName)
    {
    	String userQuery="select u.LoginName from User u";
    	Recordset rs_user=null;
    	rs_user = CustomExternalServiceImplUtil.getInstance().executeQuery(userQuery);
    	List<String> userList = new ArrayList<String>();
    	while(rs_user.moveNext()){ 
    		userList.add(rs_user.valueFromIndex(0).toString());
    	}
    	int i=1;
    	String result = loginName;
    	for(int j=0; j < userList.size(); j++){
    		if(userList.get(j).equals(result))
    		{
    			result = loginName+i++;
    			j=0;
    		}
    	}
    	return result;
    }

    Рефаткоринг чужого кода. Минут пять втуплял, что же тут вообще делается. Еще столько же придумывал, как же это привести в божеский вид с сохранением прежней функциональности.

    askell, 06 Сентября 2011

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