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

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

    +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
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    <?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
    foreach ($arResult["ITEMS"] as $key => $arItem)
    {
    	$res = CIBlockSection::GetList(array(), array("ID" => $arItem['IBLOCK_SECTION_ID']), false, array("SECTION_PAGE_URL", "NAME"));
    	if($ar_res = $res->GetNext())
    		$arResult["ITEMS"][$key]["SECTION_URL"] = '<a href="'.$ar_res["SECTION_PAGE_URL"] .'">'.$ar_res["NAME"].'</a>';
    		$arResult["ITEMS"][$key]["SECTION_URI"] = $ar_res['SECTION_PAGE_URL'];
    		$arResult["ITEMS"][$key]["SECTION_NAME"] = $ar_res['NAME'];
    	if(is_array($arItem["PREVIEW_PICTURE"]))
    	{
    		$arFileTmp = CFile::ResizeImageGet(
    			$arItem["PREVIEW_PICTURE"],
    			array("width" => $arParams["DISPLAY_IMG_WIDTH"], "height" => $arParams["DISPLAY_IMG_HEIGHT"]),
    			BX_RESIZE_IMAGE_EXACT,
    			true
    		);
        $arResult['ITEMS'][$key]['PREVIEW_PICTURE']['SRC'] = $arFileTmp['src'];
    	}
      $arResult['ITEMS'][$key]["NAME"] = TruncateText($arResult['ITEMS'][$key]["NAME"],45);
      $arResult['ITEMS'][$key]["PREVIEW_TEXT"] = TruncateText($arResult['ITEMS'][$key]["PREVIEW_TEXT"],80);
    }
    ?>

    Я программист 1C-bitrix и с каждой новой итерацией я делаю новый запрос к инфоблоку.

    infolevelru, 04 Апреля 2016

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

    +1

    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
    public class ResultBase {
            private ColumnCollections _columns;
            private ArrayList _rows;
    ...
    }
    ...
    public class ColumnCollections : System.Collections.Specialized.NameObjectCollectionBase {}
    ...
            public int Compare(object x, object y) {
                if (x != null && y != null) {
                    object[] objX = x as object[];
                    object[] objY = y as object[];
    
                    if (objX != null && objY != null && objX.Length > 0 && objX.Length == objY.Length) {
                        switch (_ColumnType.FullName) {
                            case "System.Int16":
                                if (_Direction == DirectionType.ASC) {
                                    return ((short)objX[_ColumnIndex]).CompareTo((short)objY[_ColumnIndex]);
                                } else {
                                    return ((short)objY[_ColumnIndex]).CompareTo((short)objX[_ColumnIndex]);
                                }
                            case "System.Int32":
                                if (_Direction == DirectionType.ASC) {
                                    return ((int)objX[_ColumnIndex]).CompareTo((int)objY[_ColumnIndex]);
                                } else {
                                    return ((int)objY[_ColumnIndex]).CompareTo((int)objX[_ColumnIndex]);
                                }
                            case "System.Int64":
                                if (_Direction == DirectionType.ASC) {
                                    return ((long)objX[_ColumnIndex]).CompareTo((long)objY[_ColumnIndex]);
                                } else {
                                    return ((long)objY[_ColumnIndex]).CompareTo((long)objX[_ColumnIndex]);
                                }
                            case "System.Double":
                                if (_Direction == DirectionType.ASC) {
                                    return ((double)objX[_ColumnIndex]).CompareTo((double)objY[_ColumnIndex]);
                                } else {
                                    return ((double)objY[_ColumnIndex]).CompareTo((double)objX[_ColumnIndex]);
                                }
                            case "System.Decimal":
                                if (_Direction == DirectionType.ASC) {
                                    return ((decimal)objX[_ColumnIndex]).CompareTo((decimal)objY[_ColumnIndex]);
                                } else {
                                    return ((decimal)objY[_ColumnIndex]).CompareTo((decimal)objX[_ColumnIndex]);
                                }
                            case "System.Single":
                                if (_Direction == DirectionType.ASC) {
                                    return ((float)objX[_ColumnIndex]).CompareTo((float)objY[_ColumnIndex]);
                                } else {
                                    return ((float)objY[_ColumnIndex]).CompareTo((float)objX[_ColumnIndex]);
                                }
                            case "System.String":
                                String sX = (!Convert.IsDBNull(objX[_ColumnIndex])) ? (String)objX[_ColumnIndex] : String.Empty;
                                if (String.IsNullOrEmpty(sX)) {
                                    sX = "";
                                }
    
                                String sY = (!Convert.IsDBNull(objY[_ColumnIndex])) ? (String)objY[_ColumnIndex] : String.Empty;
                                if (String.IsNullOrEmpty(sY)) {
                                    sY = "";
                                }
    
                                if (_Direction == DirectionType.ASC) {
                                    return sX.CompareTo(sY);
                                } else {
                                    return sY.CompareTo(sX);
                                }
                            case "System.DateTime":
                                if (_Direction == DirectionType.ASC) {
                                    return ((DateTime)objX[_ColumnIndex]).CompareTo((DateTime)objY[_ColumnIndex]);
                                } else {
                                    return ((DateTime)objY[_ColumnIndex]).CompareTo((DateTime)objX[_ColumnIndex]);
                                }
                            case "System.Boolean":
                                if (_Direction == DirectionType.ASC) {
                                    return ((Boolean)objX[_ColumnIndex]).CompareTo((Boolean)objY[_ColumnIndex]);
                                } else {
                                    return ((Boolean)objY[_ColumnIndex]).CompareTo((Boolean)objX[_ColumnIndex]);
                                }
                        }
                    }
                }
    
    
                return 0;
            }

    достался мне в наследство код, который я года два поддерживал. никогда не вдавался в код той тулзы, которая из базы результаты возвращяла, пока не пришлось описать проект комментариями, чтобы отдать его клиенту.
    компарер просто божественен...
    я конечно точно не знаю, кто это писал, но за то знаю, кому пренадлежил авторство конкретной версии, но за то знаю, кто писал первую... и этот человек мне еще говорил, что мой экстеншен в 50 строк, который через рифлексию миллион строк из IDataReader за секунду в коллекцию объектов возвращял, уверял меня, что это медленное и корявое говно. нет, это медленное и корявое говно!

    господи, за что?

    Lokich, 21 Марта 2016

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

    +5

    1. 1
    2. 2
    3. 3
    function cache(cache) {
      return cache.cache();
    }

    thepotato, 14 Марта 2016

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

    +1

    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
    foreach ($child as $ch) {
                if ($ch->nodeName === 'w:style') {
                    $sum++;
                    if ($ch->hasAttributes()) {
                        /** @var DOMAttr $attribute */
                        foreach ($ch->attributes as $attribute) {
                            if ($attribute->name === 'styleId') {
                                if ($attribute->value == $sTempStyle) {
                                    /** @var DOMElement $styleNode */
                                    foreach ($ch->childNodes as $styleNode) {
                                        if (isset($styleNode->tagName) && $styleNode->tagName === 'w:basedOn') {
                                            $basedOn    = $styleNode->getAttribute('w:val');
                                            $properties = $this->wordStyle2Array($basedOn, $tagName, $properties);
                                        }
                                        if (isset($styleNode->tagName) && $styleNode->tagName === $tagName) {
                                            $elements = $styleNode->childNodes;
                                            /** @var DOMElement $element */
                                            foreach ($elements as $element) {
                                                if (isset($element->tagName)) {
                                                    switch ($element->tagName) {
                                                        case 'w:color':
                                                            if ($element->hasAttribute('w:val')) {
                                                                $properties['color']['hex'] = '#' . $element->getAttribute
                                                                    ('w:val');
                                                            }
                                                            break;
                                                        case 'w:rFonts':
                                                            if ($element->hasAttribute('w:ascii')) {
                                                                $properties['font_family'] = $element->getAttribute('w:ascii');
                                                            }
                                                            break;
                                                        //кейсы - бесконечные как осень в России
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }

    Чувак, мы слышали ты любишь плодить уровни вложенности, поэтому мы написали switch в if в foreach в if в foreach в if в if в foreach в if в if в foreach, кажется.

    mad_money, 24 Февраля 2016

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

    −99

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    Запрос.УстановитьПараметр("Бумага", Справочники.Номенклатура.НайтиПоКоду("g0000000012"));
    	Запрос.УстановитьПараметр("Пленка", Справочники.Номенклатура.НайтиПоКоду("g0000000382"));
    	Запрос.УстановитьПараметр("Тиснение", Справочники.Номенклатура.НайтиПоКоду("g0000000481"));
    	Запрос.УстановитьПараметр("Фольга", Справочники.Номенклатура.НайтиПоКоду("g0000000459"));
    	Запрос.УстановитьПараметр("Полуфабрикат", Справочники.Номенклатура.НайтиПоКоду("g0000001919"));
    	Запрос.УстановитьПараметр("Ламинация1", Справочники.Номенклатура.НайтиПоКоду("g0000000074"));
    	Запрос.УстановитьПараметр("Ламинация2", Справочники.Номенклатура.НайтиПоКоду("g0000001292"));

    Возможно стоило использовать предопределенные элементы? Или справочник виды номенклатуры? Или свойства и категории объектов? Или создать своё перечисление? ДА БЛИН ЧТО УГОДНО ТОЛЬКО НЕ ЭТО!!!

    levxxx, 24 Февраля 2016

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

    −1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    private bool IsDriverSuccessfullyInstalled(DriverInfo di, string historyDriverVersion, string historyPackageVersion)
    {
      bool flag = false;
      if (!string.IsNullOrWhiteSpace(di.VersionAfterInstallation) && !string.IsNullOrWhiteSpace(di.VersionAfterInstallation) && new Version(di.VersionAfterInstallation).CompareTo(new Version(di.VersionBeforeInstallation)) >= 0)
    	flag = true;
      return flag;
    }

    При попытке поставить драйвер интеловской видюхи инсталлер вывалился с ArgumentNullException. Декомпильнул его и увидел вот это.
    Копипаста головного мозга.

    yamamoto, 13 Февраля 2016

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

    −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
    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
    //------------------------------------------------------------------------------
    // <auto-generated>
    //    This code was generated from a template.
    //
    //    Manual changes to this file may cause unexpected behavior in your application.
    //    Manual changes to this file will be overwritten if the code is regenerated.
    // </auto-generated>
    //------------------------------------------------------------------------------
    
    using System.Collections.ObjectModel;
    using System.Linq;
    
    namespace DemoFeb2014.DataContexts
    {
        using System;
        using System.Collections.Generic;
        
        public partial class Author
        {
           ....
    
      public ICollection<Tuple<MusicalWork, string>> Author2MusicalWorkParsed
            {
                get
                {
                   ...
                }
            }
            
        }
    }

    Спасибо коллегам! Благодаря только им можно потратить полчаса времени на розыск коммита в котором пропал метод Author2MusicalWorkParsed и выяснения причин того, почему же он пропал...
    Видимо комментарии в начале файла недостаточно "жирные".

    leon_mz, 12 Февраля 2016

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

    +2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    <td>Текущий статус</td>
                <td><select name="nStatus" size="1" disabled>
                    <option value="0" <?if ($row[nStatus] == '0') { echo 'SELECTED'; }?>>Cоздан</option>
                    <option value="1" <?if ($row[nStatus] == '1') { echo 'SELECTED'; }?>>Продан</option>
                    <option value="2" <?if ($row[nStatus] == '2') { echo 'SELECTED'; }?>>Тестируется</option>
                    <option value="3" <?if ($row[nStatus] == '3') { echo 'SELECTED'; }?>>Бесплатная работа</option>
                    <option value="4" <?if ($row[nStatus] == '4') { echo 'SELECTED'; }?>>Эксплуатация</option>
                    <option value="5" <?if ($row[nStatus] == '5') { echo 'SELECTED'; }?>>Заблокирован</option>
                    <option value="7" <?if ($row[nStatus] == '7') { echo 'SELECTED'; }?>>Приостановлен</option>
                    <option value="6" <?if ($row[nStatus] == '6') { echo 'SELECTED'; }?>>Отключен</option>
                    </select></td>

    grieverrr, 11 Февраля 2016

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

    −1

    1. 1
    http://i.imgur.com/xzte9cX.png

    Я.. я не могу просто взять и скопировать этот код сюда. Посмотрите сами...

    mikamika83, 06 Февраля 2016

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

    +4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    check_p = (p)->
          if p && p.p
            "?p=#{p.p}"
          else
            ''

    Не знаю, зачем это нужно и что оно делает

    Sandwich, 04 Февраля 2016

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