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

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

    +126

    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
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes")]
    private static void LoadSendMethodFromConfig()
    {
        if (!sendMethod.HasValue)
        {
            sendMethod = SendMethodTypes.Default;
    
            try
            {
                // read SendKeys value from config file, not case sensitive
                string value = System.Configuration.ConfigurationManager.AppSettings.Get("SendKeys");
    
                if (string.IsNullOrEmpty(value))
                    return;
    
                if (value.Equals("JournalHook", StringComparison.OrdinalIgnoreCase))
                    sendMethod = SendMethodTypes.JournalHook;
                else if (value.Equals("SendInput", StringComparison.OrdinalIgnoreCase))
                    sendMethod = SendMethodTypes.SendInput;
            }
            catch { } // ignore any exceptions to keep existing SendKeys behavior
        }
    }

    Сорцы дотнета. Игнорируем любые исключения. Возмущение компилятора отключаем атрибутом. Как мило!

    Пруф: http://referencesource.microsoft.com/#System.Windows.Forms/ndp/fx/src/winforms/Managed/System/WinForms/SendKeys.cs#323f3884113aa0ae#references

    Цимес ещё и в том, что раньше в коде не было строк:

    if (string.IsNullOrEmpty(value))
    return;

    То есть NullReferenceException тоже глушилось.

    ЗЫ: пришлось пароль вспоминать, чтобы запостить. А то лень было логиниться, из под геста изредка комментил.

    koodeer, 28 Апреля 2014

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

    +154

    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
    trait TPerson {
        public $fname;
        public $lname;
        public $mname;
    
        // ...
    }
    
    class BUser extends EMongoDocument {
        public $first_name;
        public $last_name;
        public $middle_name;
    
        // ...
    }
    
    class User extends BUser {
        public $firstname;
        public $lastname;
    
        // ...
    
    }

    Попалось такое наследие на одном рабочем месте. Было два типа юзеров, каждый из них наследовал BUser, в одном из них были firstname и lastname, в другом не были. В монге документы юзера, у которого свои firstname и lastname были вида:
    {
    _id: ObjectId("..."),
    ...
    first_name: '',
    last_name: '',
    middle_name: '',
    fname: '',
    lname: '',
    mname: '',
    firstname: '',
    lastname: ''
    }

    LubarVV, 26 Апреля 2014

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

    +72

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    if(error == CABtEngineErrors.K_ERR_BTENGINE_CANCEL) {
    	mObserver.btEngineEncryptError(CABtEngineErrors.K_ERR_BTENGINE_CANCEL);
    } else {
    	mObserver.btEngineEncryptError(error);
    }

    busylee, 26 Апреля 2014

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

    +154

    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
    $massiv = array(1,2,3,4,5,6,7,8);
    $her = 0;
    $idRazdelov = array();
    $idRoditela = $idrazdelf;
    foreach($massiv as $chislo){
     
    $db_list = CIBlockSection::GetList(Array(SORT=>"ASC"), $arFilter = Array("IBLOCK_ID"=>"7", "ID"=>$idRoditela), true); 
    while($ar_result = $db_list->GetNext()){
        
        if ($her == 0){
        if ($ar_result["IBLOCK_SECTION_ID"]){
           $idRazdelov[].= $ar_result["ID"];
           $idRoditela = $ar_result["IBLOCK_SECTION_ID"]; 
        }else{
            $idRazdelov[].= $ar_result["ID"];
            $her = 1;
        }
        }
        
        }
    }

    Cotard, 25 Апреля 2014

    Комментарии (2)
  6. Куча / Говнокод #15824

    +125

    1. 1
    'q<->5.,q<->r<0>3.,q<T>r<0>3.,q<:>r<0>3.,q<:>r<0>3.,r<0>2.' 8!:2<.2014 3 2 3 30 46.034

    Еще одни даты на J.

    Abbath, 22 Апреля 2014

    Комментарии (2)
  7. Куча / Говнокод #15822

    +122

    1. 1
    }:;(1,5#3)<@}."_1'--T:: ',.~":,.10000+<.6!:0''

    Даты. Теперь на J.

    Abbath, 22 Апреля 2014

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

    +153

    1. 1
    print implode('-', array_reverse(explode('-', trim(substr($project->start_date, 0, count($project->start_date) - 9)))));

    Форматирует дату с Y-m-d в d-m-Y. Альтернатива для
    date_format(new DateTime($project->start_date), 'd-m-Y');

    djumpen, 22 Апреля 2014

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

    +72

    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
    if (match) {
    	formCell(sheet, rowPlus2, 0, 0, fulBorderCalignFont10, 1, false);
    	formCell(sheet, rowPlus2, 8, 8, fulBorderCalignFont10, 2, false);
    	formCell(sheet, rowPlus2, 14, 14, fulBorderCalignFont10, 3, false);
    	formCell(sheet, rowPlus2, 20, 20, fulBorderCalignFont10, 4, false);
    	formCell(sheet, rowPlus2, 26, 26, fulBorderCalignFont10, 5, false);
    	formCell(sheet, rowPlus2, 32, 32, fulBorderCalignFont10, 6, false);
    	formCell(sheet, rowPlus2, 42, 42, fulBorderCalignFont10, 7, false);
    	formCell(sheet, rowPlus2, 48, 48, fulBorderCalignFont10, 8, false);
    	formCell(sheet, rowPlus2, 54, 54, fulBorderCalignFont10, 9, false);
    	formCell(sheet, rowPlus2, 60, 60, fulBorderCalignFont10, 10, false);
    	formCell(sheet, rowPlus2, 66, 66, fulBorderCalignFont10, 11, false);
    	formCell(sheet, rowPlus2, 72, 72, fulBorderCalignFont10, 12, false);
    } else {
    	formCell(sheet, rowPlus2, 0, 0, fulBorderCalignFont10, 1, false);
    	formCell(sheet, rowPlus2, 8, 8, fulBorderCalignFont10, 2, false);
    	formCell(sheet, rowPlus2, 14, 14, fulBorderCalignFont10, 3, false);
    	formCell(sheet, rowPlus2, 20, 20, fulBorderCalignFont10, 4, false);
    	formCell(sheet, rowPlus2, 26, 26, fulBorderCalignFont10, 5, false);
    	formCell(sheet, rowPlus2, 32, 32, fulBorderCalignFont10, 6, false);
    	formCell(sheet, rowPlus2, 38, 38, fulBorderCalignFont10, 7, false);
    	formCell(sheet, rowPlus2, 42, 42, fulBorderCalignFont10, 8, false);
    	formCell(sheet, rowPlus2, 48, 48, fulBorderCalignFont10, 9, false);
    	formCell(sheet, rowPlus2, 54, 54, fulBorderCalignFont10, 10, false);
    	formCell(sheet, rowPlus2, 60, 60, fulBorderCalignFont10, 11, false);
    	formCell(sheet, rowPlus2, 66, 66, fulBorderCalignFont10, 12, false);
    	formCell(sheet, rowPlus2, 72, 72, fulBorderCalignFont10, 13, false);
    	formCell(sheet, rowPlus2, 78, 78, fulBorderCalignFont10, 14, false);
    }

    evg_ever, 17 Апреля 2014

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

    +157

    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
    switch ($vs_TmpStr)
    {
    	case "230";
    		$vb_isCompl = true;
    		break;
    	case "11619";
    		$vb_isCalcul = true;
    		break;
    	case "11660";
    		$vb_isSevice = true;
    		break;
    	case "11668";
    		$vb_isCalcul = true;
    		break;
    	case "11670";
    		$vb_isCalcul = true;
    		break;
    	case "11669";
    		$vb_isCalcul = true;
    		break;
    	case "11678";
    		$vb_isSevice = true;
    		break;
    	case "11679";
    		$vb_isSevice = true;
    		break;
    	case "11681";
    		$vb_isSevice = true;
    		break;
    ...
    }

    125-ти строчный switch.

    any0ne2567, 17 Апреля 2014

    Комментарии (2)
  11. PHP / Говнокод #15756

    +152

    1. 1
    2. 2
    3. 3
    4. 4
    if (ctype_space($text[$pos] && $pos < $len)) {
        while (ctype_space($text[$pos++]) && $pos < $len);
        $pos--;
    }

    Написал я когда-то такое и подумал: а какой смысл в $pos++ в последней итерации, если потом сразу $pos--?
    И тут до меня дошло, что
    while (ctype_space($text[$pos++]) && $pos < $len);
    это не то же самое, что
    while (ctype_space($text[$pos]) && $pos < $len) $pos++;
    ибо в первом случае $pos++ выполнится в последней итерации, даже если ctype_space возвратит false.
    И в итоге заоптимизировал до while (ctype_space($text[$pos]) && $pos < $len) $pos++; (уже без ифа и декремента).

    Мораль: нефиг выпендриваться (ставить инкременты и декременты в условия), если можно написать по-простому.

    arzeth, 14 Апреля 2014

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