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

    В номинации:
    За время:
  2. 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)
  3. 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)
  4. 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)
  5. 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)
  6. 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)
  7. Куча / Говнокод #11493

    +144

    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
    Уважаемые пользователи ресурса Говнокод.ру.
    
    В связи с повышением процента неадекватных участников и по этой причине участившимися ЧП.
    А также регулярным нарушением правил оными, сообщаю, что проводится расширение дружного модераторского коллектива.
    Посредством набора новых добровольцев-модераторов.
    
    Получив права модератора Вы сможете:
    - банить неугодных вам пользователей
    - закрывать неудобные для вас темы
    - выигрывать в спорах, если аргументы закончились - достаточно просто зайти под модератором и забанить оппонента (например за троллинг)
    
    Чтобы обеспечить анонимность Вам будут выданы спец. аккаунты. 
    Для обусждения вашей кандидатуры пишите мне на e-mail [email protected] или в личку.

    Модератор

    moderator, 29 Июля 2012

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

    −101

    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
    -(void)showRetrySuccess:(NSString*)requestUrlString
    {
    	NSString *statusMessage = @"";
    	
    	if([requestUrlString rangeOfString:kFollowFriendsRequest].location != NSNotFound)
    	{
    		statusMessage =@"Your follow friend request completed successfully.";
    	}
    	else
    		if([requestUrlString rangeOfString:kUnfollowFriendsRequest].location != NSNotFound)
    		{
    			statusMessage =@"Your unfollow friend request completed successfully.";
    		}else
    			if([requestUrlString rangeOfString:kDeleteContentService].location != NSNotFound)
    			{
    				statusMessage =@"Your delete request completed successfully.";
    			}else
    				if([requestUrlString rangeOfString:kSavePostService].location != NSNotFound)
    				{
    					statusMessage =@"Your save post request completed successfully";
    				}else
    					if([requestUrlString rangeOfString:kSaveMediaService].location != NSNotFound)
    					{
    						statusMessage =@"Your save request  completed successfully";
    					}else
    						if([requestUrlString rangeOfString:kSaveTwitterDirectMessage].location != NSNotFound)
    						{
    							statusMessage =@"Your request completed successfully.";
    						}else
    							if([requestUrlString rangeOfString:kSaveTwitterResponse].location != NSNotFound)
    							{
    								statusMessage =@"Your request completed successfully.";
    							}
    							else
    								if([requestUrlString rangeOfString:kAddCommentService].location != NSNotFound)
    								{
    									statusMessage =@"Your post comment request completed successfully.";
    								}
    	UIAlertView * alert = [[[UIAlertView alloc] initWithTitle:@"" message:statusMessage delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]autorelease];
    	[alert show];
    	
    	
    }

    GLvRzZZ, 13 Июля 2012

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

    +48

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    function is_array_assoc($arr) {
        if (is_array($arr)) {
            foreach ($arr as $k => $v) {
                if (is_string($k) || (is_int($k) && $k < 0)) {
                    return 1;
                }
            }
            return 0;
        }
        return -1;
    }

    Взята с php.net проверка массива на ассоциативность.
    Типа array(5 => 4, 8=>9, 1 => 3) не ассоциативный?

    mkusher, 09 Июля 2012

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

    +21

    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
    template <typename T> 
    void sort( T array[], size_t length ) {
    	size_t left_index = 0;
    	size_t right_index = length - 1;
    
    	while ( left_index < right_index ) {
    		size_t min_index = min( array, left_index, right_index );
    		swap( array, min_index, left_index );
    
    		size_t max_index = max( array, left_index, right_index );
    		swap( array, max_index, right_index );
    
    		left_index++;
    		right_index--;
    	}
    }

    Fai, 05 Июля 2012

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

    +58

    1. 1
    2. 2
    $cats = get_categories(array("child_of" => get_category_by_slug($wp_query->query_vars["category_name"])->category_parent ? get_category_by_slug($wp_query->query_vars["category_name"])->category_parent : get_category_by_slug($wp_query->query_vars["category_name"])->cat_ID,
    						 "hide_empty" => false));

    Я старался.
    Всегда ваш,

    varg242, 01 Июля 2012

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