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

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

    −95

    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
    private var _disabled:int = 0;
            public function set enabled(v:Boolean):void {
                if (!v) {
                    this._disabled ++;
                } else {
                    this._disabled --;
                }
                this.run();
            }
    
            public function get enabled():Boolean {
                return !this._disabled;
            }

    Интересно что будет если _disabled внезапно примет значение -1.

    kyzi007, 27 Сентября 2012

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

    −121

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    Функция ПолучитьКонтрольКонтрагентовВключен() Экспорт
    	мПривилегированныйРежим=ПривилегированныйРежим();
    	Если НЕ мПривилегированныйРежим Тогда
    		УстановитьПривилегированныйРежим(Истина);
    		мКонтрольКонтрагентовВключен=КОнстанты.КонтрольКонтрагентовВключен.Получить()=Истина;
    		УстановитьПривилегированныйРежим(мПривилегированныйРежим);
    	Иначе
    		мКонтрольКонтрагентовВключен=КОнстанты.КонтрольКонтрагентовВключен.Получить()=Истина;
    	КонецЕсли;	
    	
    	Возврат мКонтрольКонтрагентовВключен;
    КонецФункции

    Получение константы в в привилегированном режиме поражает. Антипаттерн Спагетти (можно обойтись двумя строками). Автор Хан Юрий Валентинович.

    ilya2184, 27 Сентября 2012

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

    +74

    1. 1
    2. 2
    //переворачиваем массив с ног на голову, отрезаем голову, чтоб осталось 10 элементов и ставим все что осталось на ноги
    $_lasts = array_reverse(array_splice(array_reverse($last_view), 5));

    "казнь" массива

    Mihard, 17 Сентября 2012

    Комментарии (13)
  5. ActionScript / Говнокод #11771

    −86

    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
    switch(page) {
    		case 0:
    			showCurrentCar(page);
    			hidePreviousCar(currentModel);
    			currentModel = page;
    			break;
    		case 1:
    			showCurrentCar(page);
    			hidePreviousCar(currentModel);
    			currentModel = page;
    			break;
    		case 2:
    			showCurrentCar(page);
    			hidePreviousCar(currentModel);
    			currentModel = page;
    			break;
    		case 3:
    			showCurrentCar(page);
    			hidePreviousCar(currentModel);
    			currentModel = page;
    			break;
    	}

    Долго искал отличия кейсов, не нашол

    Edd, 14 Сентября 2012

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

    +45

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    function Login($user_login, $user_password) {
            if (isset($user_loginl) && isset($user_password)) {
                $user = $this->mongo_db->get_where('users', array(
                    'EMAIL' => $user_email,
                    'PASSWORD' => $user_password)
                );            
                if (isset($user->email)) {
                    return true;
                }
            }
            return false;
        }

    Из категорий, нет ошыбок но почемуто не работает!

    dzen, 07 Сентября 2012

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

    +112

    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
    public class _
    { ...some code... }
    
    public class ClassHelper : _
    { ...more code... }
    
    в другой сборке
    
    public class __
    { ...some code... }
    ...
    //Разработчик понял, что начинает путаться в именах классов _ и __ и написал
    
    public class lib : __
    { ... }

    Flyperformances, 06 Сентября 2012

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

    +116

    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
    delegate β ƒ<α, β>(α x);
    delegate α γ<α>(γ<α> f);
     
    static ƒ<α, β> Y<α, β>(ƒ<ƒ<α, β>, ƒ<α, β>> f) {
      return new γ<ƒ<α, β>>(h => F => f(h(h))(F))(h => F => f(h(h))(F));
    }
    
    static ƒ<int, int> Fact(ƒ<int, int> fact) {
      return n => (n == 0) ? 1 : n * fact(n - 1);
    }
    ...
    var fact = Y<int, int>(Fact);
    Console.WriteLine("fact(6) = {0}", fact(6));

    HaskellGovno, 22 Августа 2012

    Комментарии (13)
  9. C++ / Говнокод #11625

    +27

    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
    // до рефакторинга
    if(!y) {
        if(!x) {
            if(grid[pos+1] || grid[pos+fieldWidth])
                ret = true;
        } else if(x == fieldWidth - 1) {
            if(grid[pos - 1] || grid[pos+fieldWidth])
                ret = true;
        } else {
            if(grid[pos-1] || grid[pos+1] || grid[pos+fieldWidth])
                ret = true;
        }
    } else if(y == fieldHeigth - 1) {
        if(!x) {
            if(grid[pos+1] || grid[pos-fieldWidth])
                ret = true;
        } else if(x == fieldWidth - 1) {
            if(grid[pos - 1] || grid[pos-fieldWidth])
                ret = true;
        } else {
            if(grid[pos-1] || grid[pos+1] || grid[pos-fieldWidth])
                ret = true;
        }
    } else {
        if(!x) {
            if(grid[pos+1] || grid[pos+fieldWidth] || grid[pos-fieldWidth])
                ret = true;
        } else if(x == fieldWidth - 1) {
            if(grid[pos - 1] || grid[pos+fieldWidth] || grid[pos+fieldWidth])
                ret = true;
        } else {
            if(grid[pos - 1] || grid[pos+fieldWidth] || grid[pos-fieldWidth] || grid[pos + 1])
                ret = true;
        }
    }
    
    // после рефакторинга
    bool ret = getGridPoint(x-1, y) || getGridPoint(x+1, y) || getGridPoint(x, y-1) || getGridPoint(x, y+1))

    Код одного из моих друзей. Проверяет закрашена ли хотя бы одна клеточка вокруг указанной...

    bormand, 20 Августа 2012

    Комментарии (13)
  10. C++ / Говнокод #11575

    +24

    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
    #include <stdio.h>
    #include "gost.h"
    
    int main() {
        MemoryFile mf("root.cer");
        MemoryFile mf2("test.cer");
    
        ASN1Parser parser(mf);
        ASN1Parser parser2(mf2);
    
        ASN1Block e1[2];
        parser.Split("30{30{A0#,02$1,30#,30#,30#,30#,30{30#,03$2},A3#},30#,03#}", e1);
    
        unsigned char px[32], py[32], r[32], s[32], h[32];
        for (int i=0;i<32;i++) {
            px[i] = mf.data[e1[1].offset+i+3];
            py[i] = mf.data[e1[1].offset+i+35];
        }
    
        parser2.Split("30{30$1,30#,03$2}", e1);
        for (int i=0;i<32;i++) {
            r[i] = mf2.data[e1[1].offset+64-i];
            s[i] = mf2.data[e1[1].offset+32-i];
        }
    
        Gost3411 hash;
        hash.AddData(mf2.data+e1[0].offset-4, e1[0].size+4);
        hash.Finish(h);
    
        Gost3410 g;
        if (!g.VerifySignature(h, px, py, r, s)) {
            printf("Invalid!");
        } else {
            printf("Valid!");
        }
        return 0;
    }

    Продолжение http://govnokod.ru/11528. Вот так я проверял валидность сертификата...
    Прекрасные говорящие имена переменных...
    Удобный парсер ASN.1...
    Отличная инкапсуляция...
    Ни одного магического числа...

    bormand, 12 Августа 2012

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

    +42

    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
    foreach ($balancedSlots as $cluster) {
                    if ($cluster['type']=='cluster'){
                            foreach ($cluster['servers'] as $ip=>$server) {
                                    if ($GLOBALS['mode']!='test'){
                                            $GLOBALS['dataVar'][$i] = array();
                                            if (isset($server['snmp_server'])){
                                                    $p = preg_split('/,/', $server['snmp_server']);
                                                    $GLOBALS['dataVar'][$i]['proc_handle'] = popen(dirname(__FILE__).'/snmp_server.sh '.$p[0].' '.$p[1], 'r');
                                                    $GLOBALS['dataVar'][$i]['snmp_params'] = $p;
                                                    $GLOBALS['dataVar'][$i]['snmp_result'] = array('ifName'=>array(), 'counter'=>array());
                                            }
                                            else {
                                                    //print "proc_handle: ".$server['snmp_cmd']."\n";
                                                    $GLOBALS['dataVar'][$i]['proc_handle'] = popen($server['snmp_cmd'], 'r');
                                            }
                                            $GLOBALS['dataVar'][$i]['server']=$server;
                                            $GLOBALS['dataVar'][$i]['server']['ip']=$ip;
                                            $GLOBALS['dataVar'][$i]['eb'] = event_buffer_new($GLOBALS['dataVar'][$i]['proc_handle'], "read_result", NULL, "error_func", $i);
                                            event_buffer_timeout_set($GLOBALS['dataVar'][$i]['eb'], 4, 60);
                                            event_buffer_base_set($GLOBALS['dataVar'][$i]['eb'], $GLOBALS['base']);
                                            event_buffer_enable($GLOBALS['dataVar'][$i]['eb'], EV_READ);
                                    }
                                    elseif ($GLOBALS['mode']=='test')
                                    {
                                            if (!array_key_exists($ip, $testLastServers)) {
                                                    $testLastServers[$ip]=0;
                                            }
                                            if ($testServersData[$ip][$testServersIteration]!==false){
                                                    $GLOBALS['result'][$ip] = new ArrayObject(array('counter64'=>$testLastServers[$ip]+$testServersData[$ip][$testServersIteration], 'ts'=>$GLOBALS['mesure_time']));
                                                    $testLastServers[$ip] = $GLOBALS['result'][$ip]['counter64'];
                                            }
                                    }
                                    $i++;
                            }
                    }
            }

    Попытка одного товарища использовать библиотеку libevent. Видно щедрое использование глобальных переменных.

    Bdfy, 31 Июля 2012

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