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

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

    +74

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    protected static final Set<String> SUCCESS_STATUSES = new HashSet<String>(3) {
        private static final long serialVersionUID = 76234654856701L;{
        add(PROCESSING_COMPLETE_RESULTS_CLEAR.toString());
        add(PROCESSING_COMPLETE_WITH_RESULTS_INFORMATION.toString());
        add(NOT_PROCESSED_STATE_LIMITATION.toString());
    }};

    Эпичный способ создать статическую константную мапу без статического блока в основном классе

    roman-kashitsyn, 10 Ноября 2011

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

    +160

    1. 1
    2. 2
    unset($this->session->data['order_id']);
    $this->data['pap4_orderid'] = $this->session->data['order_id'];

    Не разбирался зачем сохраняется order_id, но в любом слусае - где логика?
    opencart, /catalog/controller/checkout/success.php, 13-14 строки

    antongorodezkiy, 09 Ноября 2011

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

    +174

    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
    $this->_filters = array(
    	"" => array("\\1".chr(28)."\\2", array(
    	"/({$_Jb}{$_M}{$_Je}{$_M}{$_Jh}{$_M})({$_Ja}{$_M}{$_Jv}{$_M}{$_Ji}{$_M}{$_Jo}{$_M}{$_Jr}{$_WS_OPT}{$_Jdd})/is",
    	"/({$_Jgav}{$_M}{$_Ji}{$_M}{$_Jm})({$_M}{$_Jp}{$_M}{$_Jo}{$_M}{$_Jr}{$_M}{$_Jt})/",
    	"/({$_Jgalka}{$_Jvopr}{$_M}{$_Ji}{$_M})({$_Jm}{$_M}{$_Jp}{$_M}{$_Jo}{$_M}{$_Jr}{$_M}{$_Jt})/is",
    	"/({$_Jj}{$_M3}{$_Ja}{$_M3}{$_Jv}{$_M3})({$_Ja}{$_M3}{$_Js}{$_M3}{$_Jc}{$_M3}{$_Jr}{$_M3}{$_Ji}{$_M3}{$_Jp}{$_M3}{$_Jt}{$_M3}{$_Jdd})/is",
    	"/({$_Jv}{$_M3}{$_Jb}{$_M3})({$_Js}{$_M3}{$_Jc}{$_M3}{$_Jr}{$_M3}{$_Ji}{$_M3}{$_Jp}{$_M3}{$_Jt}{$_M3}{$_Jdd})/is",
    	"/({$_Je}{$_M2}{$_Jx}{$_M2})({$_Jp}{$_M2}{$_Jr}{$_M2}{$_Je}{$_M2}{$_Js}{$_M2}{$_Js}{$_M2}{$_Ji}{$_M2}{$_Jo}{$_M2}{$_Jn}{$_M2}{$_Jss})/is",
    /* + ещё строк двести зубодробительных регулярок, исполняющихся в каждом запросе */
    );
    
    /* а это подставляется в них */
    
    $_M='(?:[\x09\x0a\x0d\\\\]*)';
    $_M3='(?:[\x09\x0a\x0d\\\\\s]*)';
    $_M2='(?:(?:[\x09\x0a\x0d\\\\\s]|(?:\/\*.*?\*\/))*)';
    
    /* и это тоже подставляется */
    
    $_Jv ="(?:v|(?:\\\\0*[75]6))";
    $_Js ="(?:s|(?:\\\\0*[75]3))";
    $_Jc ="(?:c|(?:\\\\0*[64]3))";
    $_Jr ="(?:r|(?:\\\\0*[75]2))";
    $_Ji ="(?:i|(?:\\\\0*[64]9))";
    $_Jp ="(?:p|(?:\\\\0*[75]0))";
    $_Jt ="(?:t|(?:\\\\0*[75]4))";

    «Проактивная защита» - это принципиально новый подход к концепции веб-безопасности, при котором меняется само понятие реакции веб-приложения на попытки вторжения. Выпуск «Проактивной защиты» является продолжением многолетней работы компании по обеспечению безопасности интернет-проектов. Но впервые нам удалось настолько существенно усилить защищенность сайтов и снизить зависимость клиентов от наиболее частых ошибок веб-разработчиков».

    Генеральный директор «1С-Битрикс» Сергей Рыжиков

    actuator, 08 Ноября 2011

    Комментарии (12)
  5. SQL / Говнокод #8436

    −115

    1. 1
    SELECT id, login, 0 AS shows, 0 AS clicks, 0 AS money FROM users WHERE is_adv=1 AND is_blocked=0 AND (shows <> 0 AND clicks <> 0 AND money <> 0)

    peredozo, 07 Ноября 2011

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

    +161

    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
    class Super_Loader extends Zend_Loader {
        public static function loadClass($class, $dirs = null)
        {
            parent::loadClass($class, $dirs);
        }
    
        private function moduleIsExist($name) {
            if(is_dir(APPLICATION_PATH . "/modules/" . $name . "/")) {
                return true;
            }
    
            return false;
        }
    
        public static function autoload($class)
        {
            $classArray = explode("_", $class);
            $firstPart = array_shift($classArray);
    
            if(self::moduleIsExist($firstPart)) {
    
                $moduleDir = APPLICATION_PATH . "/modules/";
                $typePart = array_shift($classArray);
                switch($typePart) {
                    case "Lib":
                        $file_name = $moduleDir . $firstPart . "/lib/" . implode("/", $classArray) . ".php";
                        break;
                    case "Model":
                        $file_name = $moduleDir . $firstPart . "/models/" . implode("/", $classArray) . ".php";
                        break;
                    default:
    
                        break;
                }
    
                if($file_name) {
                    try {
                        self::loadFile($file_name);
                        return $class;
                    } catch (Exception $e) {
                        return false;
                    }
                }
            } else {
                try {
                    self::loadClass($class);
                    return $class;
                } catch (Exception $e) {
                    return false;
                }
            }
        }
    }

    Свой супер-автолоадер для ZF

    asfalanaft, 03 Ноября 2011

    Комментарии (12)
  7. Pascal / Говнокод #8404

    +93

    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
    Type
      Bool8   = ByteBool;  PBool8   = ^Bool8;
      Bool16  = WordBool;  PBool16  = ^Bool16;
      Bool32  = LongBool;  PBool32  = ^Bool32;
      Bool64  = Boolean64; PBool64  = ^Bool64;
      Int8    = Shortint;  PInt8    = ^Int8;
      Int16   = Smallint;  PInt16   = ^Int16;
      Int32   = Longint;   PInt32   = ^Int32;
      //Int64   = Int64;     PInt64   = ^Int64;
      IntPR   = Int64;     PIntPR   = ^IntPR;
      Word8   = Byte;      PWord8   = ^Word8;
      Word16  = Word;      PWord16  = ^Word16;
      Word32  = LongWord;  PWord32  = ^Word32;
      Word64  = QWord;     PWord64  = ^Word64;
      WordPR  = Word64;    PWordPR  = ^WordPR;
      //Pointer = Pointer;   PPointer = ^Pointer;
      Float32 = Single;    PFloat32 = ^Float32;
      Float64 = Double;    PFloat64 = ^Float64;

    AnimeGovno-_-, 02 Ноября 2011

    Комментарии (12)
  8. Pascal / Говнокод #8402

    +146

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    var x,y,z,w,arctan:real;
    begin
      Readln(x,y,arctan,z);
      w:=(2+y*y)*(x+y/2)/(y*y+1/(1+y*y))-sqrt(Sqr(Sinarctan(z))+abs(Cos(y)));
      Writeln(w);

    Надо посчитать w, скажите плз, где ошибки

    dimalolx, 02 Ноября 2011

    Комментарии (12)
  9. Ruby / Говнокод #8325

    −101

    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
    class CheckDatabaseYmlEncoding < ActiveRecord::Migration
      def self.up
        config   = Rails::Configuration.new
        ['development', 'production' ].each { |env|
          db_config = config.database_configuration[env];
          if db_config
            if db_config['encoding'] != 'utf8'
              msg = "please use encoding: utf8 in database.yml's #{env} configuration"
              Rails.logger.error(msg)
              raise msg 
            else
              Rails.logger.info("database.yml's #{env} configuration is using encoding: utf8. Good !" )
            end
          else
            Rails.logger.error("#{env} is missing in database.yml" )
          end
        }
    
      end
    
      def self.down
      end
    end

    Задорная миграция

    Fester, 27 Октября 2011

    Комментарии (12)
  10. Си / Говнокод #8250

    +139

    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
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    j = 0;
    while (len >= 8)
    {
    	N[0] = N[0] ^ in[j++];
    	N[1] = N[1] ^ in[j++];
    
    	// first round
    	S = N[0];
    	N[0] = N[0] + k[0]; 
    	N[0] = sbox_ext1[Sa0->b0]^sbox_ext2[Sa0->b1]^sbox_ext3[Sa0->b2]^sbox_ext4[Sa0->b3];
    	N[0] = (N[0]<<11) | (N[0]>>21);
    	N[0] = N[0]^N[1];
    	N[1]=S;
    
    	S = N[0];
    	N[0] = N[0] + k[1]; 
    	N[0] = sbox_ext1[Sa0->b0]^sbox_ext2[Sa0->b1]^sbox_ext3[Sa0->b2]^sbox_ext4[Sa0->b3];
    	N[0] = (N[0]<<11) | (N[0]>>21);
    	N[0] = N[0]^N[1];
    	N[1]=S;
    
    	S = N[0];
    	N[0] = N[0] + k[2]; 
    	N[0] = sbox_ext1[Sa0->b0]^sbox_ext2[Sa0->b1]^sbox_ext3[Sa0->b2]^sbox_ext4[Sa0->b3];
    	N[0] = (N[0]<<11) | (N[0]>>21);
    	N[0] = N[0]^N[1];
    	N[1]=S;
    
    	/* skipped k[3] - k[6] */		
    
    	S = N[0];
    	N[0] = N[0] + k[7]; 
    	N[0] = sbox_ext1[Sa0->b0]^sbox_ext2[Sa0->b1]^sbox_ext3[Sa0->b2]^sbox_ext4[Sa0->b3];
    	N[0] = (N[0]<<11) | (N[0]>>21);
    	N[0] = N[0]^N[1];
    	N[1]=S;
    
    	// second round
    	S = N[0];
    	N[0] = N[0] + k[0]; 
    	N[0] = sbox_ext1[Sa0->b0]^sbox_ext2[Sa0->b1]^sbox_ext3[Sa0->b2]^sbox_ext4[Sa0->b3];
    	N[0] = (N[0]<<11) | (N[0]>>21);
    	N[0] = N[0]^N[1];
    	N[1]=S;
    
    	/* skipped */
    
    	S = N[0];
    	N[0] = N[0] + k[7]; 
    	N[0] = sbox_ext1[Sa0->b0]^sbox_ext2[Sa0->b1]^sbox_ext3[Sa0->b2]^sbox_ext4[Sa0->b3];
    	N[0] = (N[0]<<11) | (N[0]>>21);
    	N[0] = N[0]^N[1];
    	N[1]=S;
    
    	len = len - 8;
    };
    
    if (len > 0)
    {
    	for (i=0;i<len;i++)
    		((uint8 *)N)[i] = ((uint8 *)N)[i]^((uint8 *)&in[j])[i];
    
    	// first round
    	S = N[0];
    	N[0] = N[0] + k[0]; 
    	N[0] = sbox_ext1[Sa0->b0]^sbox_ext2[Sa0->b1]^sbox_ext3[Sa0->b2]^sbox_ext4[Sa0->b3];
    	N[0] = (N[0]<<11) | (N[0]>>21);
    	N[0] = N[0]^N[1];
    	N[1]=S;
    
    	/* skipped */
    
    	S = N[0];
    	N[0] = N[0] + k[7]; 
    	N[0] = sbox_ext1[Sa0->b0]^sbox_ext2[Sa0->b1]^sbox_ext3[Sa0->b2]^sbox_ext4[Sa0->b3];
    	N[0] = (N[0]<<11) | (N[0]>>21);
    	N[0] = N[0]^N[1];
    	N[1]=S;
    
    	// second round
    	S = N[0];
    	N[0] = N[0] + k[0]; 
    	N[0] = sbox_ext1[Sa0->b0]^sbox_ext2[Sa0->b1]^sbox_ext3[Sa0->b2]^sbox_ext4[Sa0->b3];
    	N[0] = (N[0]<<11) | (N[0]>>21);
    	N[0] = N[0]^N[1];
    	N[1]=S;
    
    	/* skipped */
    
    	S = N[0];
    	N[0] = N[0] + k[7]; 
    	N[0] = sbox_ext1[Sa0->b0]^sbox_ext2[Sa0->b1]^sbox_ext3[Sa0->b2]^sbox_ext4[Sa0->b3];
    	N[0] = (N[0]<<11) | (N[0]>>21);
    	N[0] = N[0]^N[1];
    	N[1]=S;
    
    };

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

    defecate-plusplus, 20 Октября 2011

    Комментарии (12)
  11. VisualBasic / Говнокод #8248

    −149

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    Dim a as Stack
    Dim b as Stack
    
    For n :=8 to 1:
        a.Push 1
        b.Push 1 xor n
        if n xor 1 = 1 then
        begin
             a.push(b) b.push(a)
        end
    end

    Мультивложенные стеки
    Операции за О(1)
    Вставка, забывчивость
    О(1)
    Извлечение в От (1)
    От - О с чертой
    Константа, короче говоря.
    Настоящий стек.

    alexoy, 19 Октября 2011

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