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

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

    +142

    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
    public function uninstall()
    	{
    		if (!Configuration::deleteByName('YC_SHOPID')
    				|| !Configuration::deleteByName('YC_SCID')
    				|| !Configuration::deleteByName('YC_SHOPPASSWORD')
                                    || !!Configuration::deleteByName('YC_ALLOW_YANDEXMONEY')
                                    || !!Configuration::deleteByName('YC_ALLOW_BANK_CARD')
                                    || !!Configuration::deleteByName('YC_ALLOW_MOBILE')
                                    || !!Configuration::deleteByName('YC_ALLOW_TERMINAL')
                                    || !!Configuration::deleteByName('YC_ALLOW_WEBMONEY')
                                    || !!Configuration::deleteByName('YC_ALLOW_SBERBANK')
                                    || !!Configuration::deleteByName('YC_ALLOW_MPOS')                        
                                    || !!Configuration::deleteByName('YC_DEMO_MODE')
    				|| !parent::uninstall())
    			return false;
    		return true;
    	}

    https://github.com/anisimow/yacassa/blob/master/yacassa/yacassa.php#L64

    eg0r, 17 Июня 2015

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

    +142

    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
    public void AllocateMemory(ref int[] segmentSizeProcess)
            {
                int[] difference;
                int j = 0;
                int tempo = 0;
    
                for (int i = 0; i < segmentSizeProcess.Count(); i++)
                {
                    difference = new int[memory.Count]; // храним разность размера блока памяти и требуемого размера для процесса
                    for (int count = 0; count < memory.Count; count++)
                    {
                        difference[count] = -2; // предварительно инициализируем 
                    }
                    for (int count_memory=0; count_memory<memory.Count();
                        count_memory++)
                    {
                        if (memory[count_memory].size - segmentSizeProcess[i] >= 0) // если равно 0, значит 
                        // сегмент полностью распределён
                        {
                            if (!memory[count_memory].isAllocate)
                            { difference[count_memory] = memory[count_memory].size - segmentSizeProcess[i]; }
                            else
                            { difference[count_memory] = -1; } // если сегмент занят - 
                            // то он недоступен
                        }
                    }
                    tempo = GetMinDifference(ref difference); // получаем индекс минимальной разности
                    // если результат "-", значит секторы заняты, выходим из цикла
                    if (difference[tempo] >= 0)
                    {
                        memory.ElementAt(tempo).isAllocate = true; // процесс занял сегмент
                        if (difference[tempo] > 0) // если остаётся фрагмент памяти
                        {
                            CreateDifferenceSegment(difference[tempo]); // создаем новый сегмент, равный
                            // наименьшей разности памяти сегмента и памяти для процесса
                        }
                            memory[tempo].size = segmentSizeProcess[i]; // распределяем память
                    }
                    else
                    {
                        break;
                    }
                }
            }

    Примерная реализация алгоритма best-fit

    qstd, 15 Июня 2015

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

    +142

    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
    orders_list_app.constant('User', {
        auth : ('False' == 'True') ? true : false,
        contractor : ('' == 'True')  ? true : false,
        user_id : ('False' == 'True') ? None : false
    });
    
    // goes in another place
    
    angular.forEach(rootCategory.categories, function(category_2){
        angular.forEach(category_2.service_orders, function(service_2){
            rootCategory.service_orders.push(service_2);
                angular.forEach(category_2.categories, function(category_3){
                    angular.forEach(category_3.service_orders, function(service_3){
                        rootCategory.service_orders.push(service_3);
                    });
                });
            });
        });
        rootCategory.service_orders.push({name:"Другие услуги" ,text: "", title: "Другие услуги"});
    });

    На одном из отечественном сайте в продакшыне..

    alek0585, 15 Июня 2015

    Комментарии (0)
  5. Куча / Говнокод #18341

    +142

    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
    'Check that the TGD exists
        If objFSO.FileExists(strTGDFileName) Then
        
            'Get the definition of the tag group
            objTagGroupFile.RetrieveDefinition strTGDFileName, intArrayLength, varSymbols, varSubstitutions, varDescriptions
                    
            'Ensure that the supplied strings match the strings in the tag group
            If (UBound(strSymbols) = UBound(strSubstitutions) And UBound(strSymbols) = UBound(varSymbols) And UBound(strSymbols) = UBound(varSubstitutions)) Or _
            (blIgnoreAdditional And (UBound(strSymbols) = UBound(strSubstitutions) And UBound(strSymbols) < UBound(varSymbols) And UBound(strSymbols) < UBound(varSubstitutions))) Then
                For intLoop = 0 To UBound(strSymbols)
                    If Not (strSymbols(intLoop) = varSymbols(intLoop) And strSubstitutions(intLoop) = varSubstitutions(intLoop)) Then
                        'TDG is out of date; create tag group file
                        CheckTagGroup = IIf(CreateTagGroupFile(strSymbols, strSubstitutions, strDescriptions, strTGDFileName), 1, 0)
                        GoTo Way_Out
                    End If
                Next
            Else
                'TDG is out of date; create tag group file
                CheckTagGroup = IIf(CreateTagGroupFile(strSymbols, strSubstitutions, strDescriptions, strTGDFileName), 1, 0)
                GoTo Way_Out
            End If
        
        Else
            'TGD does not exist so create the file
            CheckTagGroup = IIf(CreateTagGroupFile(strSymbols, strSubstitutions, strDescriptions, strTGDFileName), 1, 0)
            GoTo Way_Out
        End If

    Всё равно получишь шайбу!
    Вот такие умные проверки нашёл перед вызовом одной и той же функции.

    VB6

    Domkrat, 15 Июня 2015

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

    +142

    1. 1
    Куда пропадают кучки? Замечал и ранее, но думал что к этому причастны сами авторы, а сегодня пропал мой через пол-часа после публикации. Кто включил gc?

    FlySnake, 14 Июня 2015

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

    +142

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    public class Generator
        {
            private Random R = new Random();
            public Generator() 
            { 
                
            }
            public int GetNumber(int left, int right)
            {
                return R.Next(left, right);
            }
        }

    Полезный класс

    tarasfromgomel, 13 Июня 2015

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

    +142

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    void _cls(){
        static const int LINE_COUNT = 200;
        for (int i = 0; i < LINE_COUNT; i++)
            cout << "\n";
    }

    С форума - "Допустим я запустил консольную программку, там что-то она делает, и в результате экран заполняется текстом и т.д. Как программно можно очистить экран консоли?"
    Ответ:
    очистка экзана за счет пустых строк <код>

    ennnax, 12 Июня 2015

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

    +142

    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
    CREATE TABLE IF NOT EXISTS `go_report` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `user` varchar(255) DEFAULT NULL,
      `date_year` int(4) DEFAULT NULL,
      `date_month` int(2) DEFAULT NULL,
      `td3_1` double(16,2) DEFAULT NULL,
      `td4_1` double(16,2) DEFAULT NULL,
      `td5_1` double(16,2) DEFAULT NULL,
      `td6_1` double(16,2) DEFAULT NULL,
      `td7_1` double(16,2) DEFAULT NULL,
      `td8_1` double(16,2) DEFAULT NULL,
      `td9_1` double(16,2) DEFAULT NULL,
      `td10_1` double(16,2) DEFAULT NULL,
      `td11_1` double(16,2) DEFAULT NULL,
      `td12_1` double(16,2) DEFAULT NULL,
      `td13_1` text,
      `td3_1_1` double(16,2) DEFAULT NULL,
      `td4_1_1` double(16,2) DEFAULT NULL,
      `td5_1_1` double(16,2) DEFAULT NULL,
      `td6_1_1` double(16,2) DEFAULT NULL,
      `td7_1_1` double(16,2) DEFAULT NULL,
      `td8_1_1` double(16,2) DEFAULT NULL,
      `td9_1_1` double(16,2) DEFAULT NULL,
      `td10_1_1` double(16,2) DEFAULT NULL,
      `td11_1_1` double(16,2) DEFAULT NULL,
      `td12_1_1` double(16,2) DEFAULT NULL,
      `td13_1_1` text,
      `td3_1_1_1` double(16,2) DEFAULT NULL,
      `td4_1_1_1` double(16,2) DEFAULT NULL,
      `td5_1_1_1` double(16,2) DEFAULT NULL,
      `td6_1_1_1` double(16,2) DEFAULT NULL,
      `td7_1_1_1` double(16,2) DEFAULT NULL,
      `td8_1_1_1` double(16,2) DEFAULT NULL,
      `td9_1_1_1` double(16,2) DEFAULT NULL,
      `td10_1_1_1` double(16,2) DEFAULT NULL,
      `td11_1_1_1` double(16,2) DEFAULT NULL,
      `td12_1_1_1` double(16,2) DEFAULT NULL,
      `td13_1_1_1` text,
    ......
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=436 ;

    882 поля в сумме. Реляционная БД? Нет, не слышал.

    AndrewUldin, 12 Июня 2015

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

    +142

    1. 1
    $s2 = "period=DAILY&tickers=OGKB&d1=".date("d")."&m1=".date("m")."&y1=".date("Y")."&d2=".date("d")."&m2=".date("m")."&y2=".date("Y")."&lastdays=30&separator=;&data_format=BROWSER";

    ledergerat, 11 Июня 2015

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

    +142

    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
    <select name="period" id="period">
                <option value="" selected="">Выберите...</option>
    <?
    $sel = '';
    if ($_GET['period']=='year'){
    //	$sel = 'selected="selected"';
    }
    ?>
                <option <?=$sel?> value="year">год</option>
    <?
    $sel = '';
    if ($_GET['period']=='ytd'){
    //	$sel = 'selected="selected"';
    }
    ?>
                <option <?=$sel?> value="ytd">с начала года</option>
    <?
    $sel = '';
    if ($_GET['period']=='6'){
    //	$sel = 'selected="selected"';
    }
    ?>
                <option <?=$sel?> value="6">6 месяцев</option>
    <?
    $sel = '';
    if ($_GET['period']=='3'){
    //	$sel = 'selected="selected"';
    }
    ?>
                <option <?=$sel?> value="3">3 месяца</option>
    <?
    $sel = '';
    if ($_GET['period']=='1'){
    //	$sel = 'selected="selected"';
    }
    ?>
                <option <?=$sel?> value="1">месяц</option>
     </select>

    Сайт одной госкомпании, состоит чуть менее чем на половину из ТАКОГО. Для тех кто в курсе, это код в компоненте bitrix! Это даже не шаблон.

    ledergerat, 11 Июня 2015

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