1. Java / Говнокод #14583

    +73

    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
    final double[][] matrix = new double[companies.size() + 1][(sampleSizeTo - sampleSizeFrom) / sampleSizeStep + 2];
    for (int i = 0; i < matrix.length; i++) {
        for (int j = 0; j < matrix[0].length; j++) {
            if (i == 0 && j == 0) {
                continue;
            }
            if (i == 0) {
                matrix[i][j] = sampleSizeFrom + (j - 1) * sampleSizeStep;
                continue;
            }
            if (j == 0) {
                matrix[i][j] = companies.get(i-1);
                continue;
            }
        }
    }

    Название функции getSmartDistibution (именно так) какбэ намекает, что дальше будет весело

    roman-kashitsyn, 14 Февраля 2014

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

    +136

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    public static string CreateBrowserCacheExtension(object key)
    {
        //...Остальной код опущен для ясности
        return "Cache=" + Math.Abs(key.GetHashCode());
    }

    Legacy code из проекта над которым я работаю.
    Косяк в том, что GetHashCode() иногда возвращает значение, равное System.Int32.MinValue.
    А это в свою очередь приводит к OverflowException, в случае с Math.Abs(...);

    pikowatt, 14 Февраля 2014

    Комментарии (27)
  3. C++ / Говнокод #14581

    +58

    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
    template <typename T>
    class MySharedPtr{
    public:
      explicit MySharedPtr(T* obj) : _obj(obj){}
      // --> я дописал
      MySharedPtr(const MySharedPtr& other) : _obj(other._obj){ inc_ref_count(_obj);}
      // <-- я дописал
      MySharedPtr& operator=(const MySharedPtr& other) {
        // --> я дописал
        if (this == &other)
          return *this;
        // <-- я дописал
        _obj = other._obj;
        inc_ref_count(_obj);
      }
      ~MySharedPtr(){
        dec_ref_count(_obj);
      }
    
    private:
      static void inc_ref_count(T* obj){
        std::lock_guard<std::mutex> lock(_mutex);
        _ref_count[obj] ++ ;
      }
    
      static void dec_ref_count(T* obj){
        std::lock_guard<std::mutex> lock(_mutex);
        if (--_ref_count[obj]){
          delete obj;
          _ref_count.erase(_ref_count.find(obj));
        }
      }
    
      T* _obj;
    
      static std::mutex MySharedPtr<T>::_mutex;
      static std::map<T*,int> MySharedPtr<T>::_ref_count;
    };
    
    
    template <typename T>
    std::map<T*,int> MySharedPtr<T>::_ref_count;
    
    
    template <typename T>
    std::mutex MySharedPtr<T>::_mutex;

    сегодня приходил чел-выпускник, написал на листочке shared_ptr, какое ваше мнение?

    LispGovno, 14 Февраля 2014

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

    +146

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    $synonyms = array(
        1 => 'once',
        2 => 'twice',
        3 => 'three times',
        4 => 'four times',
        5 => 'five times',
        6 => 'six times',
        7 => 'seven times',
        8 => 'eight times',
        9 => 'nine times',
        10 => 'ten times',
    );

    Dima, ты лучший!;)

    valllllera, 14 Февраля 2014

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

    +155

    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
    function compileStr($arrStrings) {
    	if (is_array($arrStrings)) {
    		$part1 = 'a:2:{s:5:"VALUE";a:';
    		$part2 = 's:11:"DESCRIPTION";a:';
    		$part3 = '}';
    
    		$ornums = array();
    
    		foreach ($arrStrings as $str) {
    			$exp = explode(",", str_replace(" ", "", $str));
    			$ornums = array_merge($ornums, $exp);
    		}
    
    		$ecount = count($ornums);
    		$s1 = $ecount.':{';
    		$s2 = $ecount.':{';
    
    		for ($i = 0; $i < $ecount; $i++) {
    			$s1 .= 'i:'.$i.';s:'.strlen($ornums[$i]).':"'.$ornums[$i].'";';
    			$s2 .= 'i:'.$i.';s:0:"";';
    		}
    
    		$s1 .= '}';
    		$s2 .= '}';
    
    		$result = $part1.$s1.$part2.$s2.$part3;
    		return $result;
    	}
    }

    Нашел в дебрях проекта. Писать php-сериализатор на php - это концептуально )))
    если кто не понял функция делает вот это:
    if (is_array($arrStrings)) {
    $ornums = explode(',', implode(',', str_replace(' ', '', $arrStrings)));
    return serialize(array("VALUE" => $ornums, "DESCRIPTION" => array_fill(0, count($ornums), '')));
    }

    Homess, 14 Февраля 2014

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

    +134

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    Random random = new Random(Environment.TickCount);
    for (int i = 0; i < random.Next(380, 480); i++)
    {
            Marshal.AllocHGlobal(random.Next(0x4400, 0xd400));
            Thread.Sleep(1);
    }

    Из исходников подрядчика...
    Заказчиков надо садить на иглу правильно

    Stewie, 14 Февраля 2014

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

    +135

    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
    if (currentItem.Type.ActiveProperty != null)
    {
    	Type controltype = currentControl.GetType();
    	PropertyInfo pinfo = controltype.GetProperty(currentItem.Type.ActiveProperty.Name);
    
    	bool enabledtrue = (currentItem.Type.ActiveProperty.Name.ToLower() != "readonly");
    
    
    	if ((r1 != 2) || _page.ReadOnly)
    		enabledtrue = !enabledtrue;
    
    	pinfo.SetValue(currentControl, enabledtrue, null);
    }

    enabledtrue как пример интуитивно-понятного названия переменной

    Gocoder, 14 Февраля 2014

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

    +96

    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
    98. 98
    99. 99
    if movcamn[1] then begin
         //
      if movcams[ 2] then begin  if Nmr= 2 then goto m1;
      if movcams[ 3] then begin  if Nmr= 3 then goto m1;
      if movcams[ 4] then begin  if Nmr= 4 then goto m1;
      if movcams[ 5] then begin  if Nmr= 5 then goto m1;
      if movcams[ 6] then begin  if Nmr= 6 then goto m1;
      if movcams[ 7] then begin  if Nmr= 7 then goto m1;
      if movcams[ 8] then begin  if Nmr= 8 then goto m1;
      if movcams[ 9] then begin  if Nmr= 9 then goto m1;
      if movcams[10] then begin  if Nmr=10 then goto m1;
      if movcams[11] then begin  if Nmr=11 then goto m1;
      if movcams[12] then begin  if Nmr=12 then goto m1;
      if movcams[13] then begin  if Nmr=13 then goto m1;
      if movcams[14] then begin  if Nmr=14 then goto m1;
      if movcams[15] then begin  if Nmr=15 then goto m1;
      if movcams[16] then begin  if Nmr=16 then goto m1;
      if movcams[17] then begin  if Nmr=17 then goto m1;
      if movcams[18] then begin  if Nmr=18 then goto m1;
      if movcams[19] then begin  if Nmr=19 then goto m1;
      if movcams[20] then begin  if Nmr=20 then goto m1;
    
      m1:   Summs1:=0;        movcams[1]:=False;   movcamn[1]:=False;
          movcam[1,1]:=False;  movcam[1,2]:=False;  movcam[1,3]:=False;  movcam[1,4]:=False;
    
            Summs2:=0;        movcams[2]:=False;   movcamn[2]:=False;
          movcam[2,1]:=False;  movcam[2,2]:=False;  movcam[2,3]:=False;  movcam[2,4]:=False;
          if Nmr=2 then goto m2;  // <---
    
            Summs3:=0;        movcams[3]:=False;   movcamn[3]:=False;
          movcam[3,1]:=False;  movcam[3,2]:=False;  movcam[3,3]:=False;  movcam[3,4]:=False;
          if Nmr=3 then goto m2;  // <---
    
            Summs4:=0;         movcams[4]:=False;   movcamn[4]:=False;
          movcam[4,1]:=False;  movcam[4,2]:=False;  movcam[4,3]:=False;  movcam[4,4]:=False;
          if Nmr=4 then goto m2;  // <---
    
            Summs5:=0;        movcams[5]:=False;   movcamn[5]:=False;
          movcam[5,1]:=False;  movcam[5,2]:=False;  movcam[5,3]:=False;  movcam[5,4]:=False;
          if Nmr=5 then goto m2;  // <---
    
            Summs6:=0;        movcams[6]:=False;   movcamn[6]:=False;
          movcam[6,1]:=False;  movcam[6,2]:=False;  movcam[6,3]:=False;  movcam[6,4]:=False;
          if Nmr=6 then goto m2;  // <---
    
            Summs7:=0;        movcams[7]:=False;   movcamn[7]:=False;
          movcam[7,1]:=False;  movcam[7,2]:=False;  movcam[7,3]:=False;  movcam[7,4]:=False;
          if Nmr=7 then goto m2;  // <---
    
            Summs8:=0;        movcams[8]:=False;   movcamn[8]:=False;
          movcam[8,1]:=False;  movcam[8,2]:=False;  movcam[8,3]:=False;  movcam[8,4]:=False;
          if Nmr=8 then goto m2;  // <---
    
            Summs9:=0;        movcams[9]:=False;   movcamn[9]:=False;
          movcam[9,1]:=False;  movcam[9,2]:=False;  movcam[9,3]:=False;  movcam[9,4]:=False;
          if Nmr=9 then goto m2;  // <---
    
                 //
            Summs10:=0;        movcams[10]:=False;   movcamn[10]:=False;
          movcam[10,1]:=False;  movcam[10,2]:=False;  movcam[10,3]:=False;  movcam[10,4]:=False;
          if Nmr=10 then goto m2;  // <---
    
            Summs11:=0;        movcams[11]:=False;   movcamn[11]:=False;
          movcam[11,1]:=False;  movcam[11,2]:=False;  movcam[11,3]:=False;  movcam[10,4]:=False;
          if Nmr=11 then goto m2;  // <---
    
            Summs12:=0;        movcams[12]:=False;   movcamn[12]:=False;
          movcam[12,1]:=False;  movcam[12,2]:=False;  movcam[12,3]:=False;  movcam[10,4]:=False;
          if Nmr=12 then goto m2;  // <---
    
            Summs13:=0;        movcams[13]:=False;   movcamn[13]:=False;
          movcam[13,1]:=False;  movcam[13,2]:=False;  movcam[13,3]:=False;  movcam[10,4]:=False;
          if Nmr=13 then goto m2;  // <---
    
            Summs14:=0;        movcams[14]:=False;   movcamn[14]:=False;
          movcam[14,1]:=False;  movcam[14,2]:=False;  movcam[14,3]:=False;  movcam[10,4]:=False;
          if Nmr=14 then goto m2;  // <---
    
            Summs15:=0;        movcams[15]:=False;   movcamn[15]:=False;
          movcam[15,1]:=False;  movcam[15,2]:=False;  movcam[15,3]:=False;  movcam[10,4]:=False;
          if Nmr=15 then goto m2;  // <---
    
            Summs16:=0;        movcams[16]:=False;   movcamn[16]:=False;
          movcam[16,1]:=False;  movcam[16,2]:=False;  movcam[16,3]:=False;  movcam[10,4]:=False;
          if Nmr=16 then goto m2;  // <---
    
            Summs17:=0;        movcams[17]:=False;   movcamn[17]:=False;
          movcam[17,1]:=False;  movcam[17,2]:=False;  movcam[17,3]:=False;  movcam[10,4]:=False;
          if Nmr=17 then goto m2;  // <---
    
            Summs18:=0;        movcams[18]:=False;   movcamn[18]:=False;
          movcam[18,1]:=False;  movcam[18,2]:=False;  movcam[18,3]:=False;  movcam[10,4]:=False;
          if Nmr=18 then goto m2;  // <---
    
            Summs19:=0;        movcams[19]:=False;   movcamn[19]:=False;
          movcam[19,1]:=False;  movcam[19,2]:=False;  movcam[19,3]:=False;  movcam[10,4]:=False;
      m2:
      end; end; end; end; end; end; end; end; end; end;   // 20 штук
      end; end; end; end; end; end; end; end; end; end;

    Попалось в одном проекте, который приходилось расчищать.
    Особенно позабавило заботливое "// 20 штук" в конце.

    qb60, 14 Февраля 2014

    Комментарии (2)
  9. JavaScript / Говнокод #14571

    +151

    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
    $('.catalogue-list .in-cart a, .items-slider .in-cart a').click(function()
    	{
    		var src_pic = $(this).parent('div').parent().children('.pic_ajax').children().children().attr('src');
    		var name_pic = $(this).parent('div').parent().children('.pic').children().children().attr('alt');
    		var colors = $(this).parent('div').children('.colors_values').children('input');
    		var colors_for_ajax = "";
    		$.each( colors, function() {
    			colors_for_ajax = colors_for_ajax+$(this).val()+',';
    		});
    		
    		if(colors_for_ajax)
    			var url=$(this).attr('href'); 
    		$.fancybox({
    					type		: 'ajax',
    					href		: '/catalogue/ajax_add_to_cart_popup.php?NAME='+encodeURI(name_pic)+'&SRC='+encodeURI(src_pic)+'&COLORS='+encodeURI(colors_for_ajax)+'&URL_ADD='+encodeURI(url),
    					fitToView	: false,
    					width		: '336px',
    					height		: '234px',
    					autoSize	: false,
    					autoDimensions: false,
    					openEffect	: 'fade',
    					closeEffect	: 'none',
    					margin		: 0,
    					padding		: 0
    					});
    		if(!colors_for_ajax)
    		{
    			$(this).parent('.in-cart').find('.ajax-load').show('fast');
    			var url=$(this).attr('href');
    			$('.top-line .block .cart').load(url,'',onAjaxCart);
    		}
    		return false;
    	});

    Осталось от прошлого разраба в проекте. Аяксовое добавление товара в корзину...

    Зачем получать имя,свойства,картинку из ID элемента?! Я лучше это передам параметрами.

    kopoBko, 14 Февраля 2014

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

    +153

    1. 1
    $rec_area=sql2arr2('select om,alr from omolog where omvis=1');

    названия полей и таблицы

    govnomes, 14 Февраля 2014

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