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

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

    +121

    1. 1
    2. 2
    if (_flag_visible == true) obj.SetVisible();
    else if (_flag_visible == false) obj.SetInvisible();

    Crazzy, 05 Января 2011

    Комментарии (81)
  3. Си / Говнокод #3358

    +138

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    -(void)terminateSearchThreadInBackground:(NSNumber*)threadPtr
    {
        NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
        SearchThread* thread = (SearchThread*)[threadPtr unsignedLongValue];
    
        delete thread;
        [pool release];
    }

    И вновь я в шоке от нашего проекта. По какой-то неведомой причине передать в качестве параметра указатель на поток - это очень не трушно. Зато значительно более трушно - создать из него NSNumber, предварительно преобразовав к unsigned long...

    Highlander, 31 Мая 2010

    Комментарии (81)
  4. Си / Говнокод #5

    +23

    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
    long gr, ri, r1, r2, y, z, z_rev;
    	for (i = 2; i < qr_count; i++) {
    		step = 0;
     		ri = r[i];
    		gr = - mpz_fdiv_ui(lowM, pm[i][step]);
    		r1 = gr + ri;
    		r2 = gr + pm[i][step] - ri;
    		if (r1 < 0) {
    			r1 += pm[i][step];
    		}
    		if (r2 < 0) {
    			r2 += pm[i][step];
    		}
    		while (r1 < (long) Ml2) {
    			sieve[r1][i] += 1;
    			r1 += pm[i][step];
    		}
    		while (r2 < (long) Ml2) {
    			sieve[r2][i] += 1;
    			r2 += pm[i][step];
    		}
    		for (step = 1; step < degr[i]; step++) {
    			gr = - mpz_fdiv_ui(lowM, pm[i][step]);
    			y = ri*ri;
    			y -= Npm[i][step];
    			y = y/( (long) pm[i][step-1]);
    			if (y < 0) { y += pm[i][step]; }
    			z_rev = (ri<<1) % QR[i];
    			//?IOOA?EOO ?OI?AOEO IA UAAEEIE?AIEA
    			if (z_rev == 0) { y = 0; }
    			else {
    				z = 1;	
    				while ((z_rev*z % QR[i]) != 1) { z++;}
    				y *= z*pm[i][step-1];
    				y = y % pm[i][step];
    			}
    			ri -= y;
    			if (ri < 0) { ri += pm[i][step]; }
    			r1 = gr+ri;
    			r2 = gr+pm[i][step]-ri;
    			if (r1 < 0) { r1 += pm[i][step]; }
    			if (r2 < 0) { r2 += pm[i][step]; }
    			while (r1 < (long) Ml2) {
    				sieve[r1][i] += 1;
    				r1 += pm[i][step];
    			}
    			while (r2 < (long) Ml2) {
    				sieve[r2][i] += 1;
    				r2 +=pm[i][step];
    			}
    		}
    	}

    Когда лучше, чтобы кода не было, чем, чтобы он был...

    guest, 26 Ноября 2008

    Комментарии (81)
  5. C# / Говнокод #27920

    0

    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
    using KoKo.Property;
    
    namespace MyProject {
    
        public class Person {
    
            private StoredProperty<string> FirstName { get; }
            private StoredProperty<string> LastName { get; }
            public Property<string> FullName { get; }
    
            public Person(string firstName, string lastName) {
                FirstName = new StoredProperty<string>(firstName);
                LastName = new StoredProperty<string>(lastName);
                FullName = DerivedProperty<string>.Create(FirstName, LastName, (first, last) => $"{first} {last}");
            }
    
            public void SetFirstName(string firstName) {
                FirstName.Value = firstName;
            }
    
        }
    }

    3_dar, 04 Января 2022

    Комментарии (80)
  6. C++ / Говнокод #27289

    0

    1. 1
    Как крестьяне говна поели

    This function is defined as the RtlSecureZeroMemory function (see WinBase.h). The implementation of RtlSecureZeroMemory is provided inline and can be used on any version of Windows (see WinNT.h.)

    Use this function instead of ZeroMemory when you want to ensure that your data will be overwritten promptly, as some C++ compilers can optimize a call to ZeroMemory by removing it entirely.

    Petro-san, 10 Марта 2021

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

    0

    1. 1
    https://habr.com/ru/post/456558/

    Какой багор )))))))))))))))))))))))))))))))))))))))) ))))))))))))))))))

    AHCKuJlbHblu_nemyx, 19 Июня 2019

    Комментарии (80)
  8. Assembler / Говнокод #25428

    −3

    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
    format pe gui 5.0
    
    include 'win32ax.inc'
    
      _title db '1Kbyte window',0
      _class db '#32770',0
    
      old_wndproc dd 0
    
    entry $
      xor edi,edi
      mov ecx,$80000000
      mov esi,$400000
      mov eax,WS_VISIBLE+WS_OVERLAPPEDWINDOW
      invoke CreateWindowEx,edi,_class,edi,eax,ecx,ecx,ecx,ecx,edi,edi,edi,edi
      mov ebx,eax
      invoke SetWindowLong,ebx,GWL_WNDPROC,wnd_proc
      mov [old_wndproc],eax
      invoke SendMessage,ebx,WM_INITDIALOG,edi,edi
      sub esp,32
      mov ebx,esp
    
    msg_loop:
      invoke GetMessage,ebx,edi,edi,edi
      cmp eax,1
      jb app_exit
      jne msg_loop
      invoke DispatchMessage,ebx
      jmp msg_loop
    
    wnd_proc:
      mov eax,[esp+8]
      cmp eax,WM_INITDIALOG
      je app_init
      cmp eax,WM_CLOSE
      je app_exit
      pop eax
      push [old_wndproc]
      push eax
      jmp [CallWindowProc]
    
    app_init:
      mov eax,[esp+4]
      invoke SendMessage,eax,WM_SETTEXT,0,_title
      xor eax,eax
      ret
    
    app_exit:
      invoke ExitProcess,edi
    
    data import
      library\
        kernel32,'kernel32.dll',\
        user32,'user32.dll'
      include 'api\kernel32.inc'
      include 'api\user32.inc'
    end data

    Приветствуем!
    Вот это говнокод однако?
    ...

    chiacorp, 05 Марта 2019

    Комментарии (80)
  9. Куча / Говнокод #25340

    +1

    1. 1
    https://i.imgur.com/7uRLULs.mp4

    Аппаратная нейросеть в мозгах петуха совершила ошибку классификации.

    j123123, 30 Января 2019

    Комментарии (80)
  10. Си / Говнокод #24383

    0

    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
    void trampoline(void (*func)(void), bool flag)
    {
        if (flag)
            func();
        else
            trampoline(func, true);
    }
    
    int 
    main(int argc, char *argv[])
    {
        /*... */
        trampoline(set_aes_keys, false);
    }

    Зачем так? ЯННП.

    codemonkey, 14 Июня 2018

    Комментарии (80)
  11. Куча / Говнокод #12041

    +129

    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
    public Match(source:SourceLexemes, namedLinkDictionary:NamedLinkDictionary, settings:MatchSettings):MatchResult
    				def endMatchingBlockLexemesByType = settings._endMatchingBlockLexemesByType;
    				def endMatchingBlockLexemesByValue = settings._endMatchingBlockLexemesByValue;
    				assert([_beginOfMatchBlock, _endOfMatchBlock].ForAll(excludedItem => !endMatchingBlockLexemesByValue.Contains(excludedItem)));
    				def matchLexeme(amountOfEntryBlock=0, matchedLexemes=[], sourceTail=source)
    					|(0, _::_, _)                                                                    => Some(matchedLexemes, sourceTail)
    					|(_, _, lexeme_::_) when endMatchingBlockLexemesByType.Contains(lexeme_._type)   => None()
    					|(_, _, lexeme_::lexemes_)                                                       => 
    						match(lexeme_._value, amountOfEntryBlock)
    							|(value_, _) when endMatchingBlockLexemesByValue.Contains(value_)   => None()
    							|(_beginOfMatchBlock, _)                                            => matchLexeme(amountOfEntryBlock+1, lexeme_::matchedLexemes, lexemes_)
    							|(_endOfMatchBlock, 0)                                              => None()
    							|(_endOfMatchBlock, _)                                              => matchLexeme(amountOfEntryBlock-1, lexeme_::matchedLexemes, lexemes_)
    							|(_, 0)                                                             => None()
    							|(_, _)                                                             => matchLexeme(amountOfEntryBlock, lexeme_::matchedLexemes, lexemes_)
    							|_                                                                  => None()
    					|_                                                                               => None()
    				match(matchLexeme())
    					|None                                                    => MatchResult.Failure(source, namedLinkDictionary)
    					|Some((matchedLexemes_, unmatchedLexemesTail_))          => MatchResult.Success(unmatchedLexemesTail_, updateNamedLinkDictionary(matchedLexemes_, namedLinkDictionary))

    Вчера заглянул в свой код.
    Есть один язык, так вот в нем паттерн-матчинг задается на уровне сигнатур функций.
    В связи с тем, что я каждую ночь читал книгу по кулХацкелу, то то что там было написано - вьелось мне в подкоррку и я этого даже не заметил.
    По ночам когда читаешь что-то, оно проникает в незащищенное подсознание. Я даже не ожидал, что напишу такой код. Но я его написал и только опосля понял, что с кодом что-то не так.
    Беда пришла оттуда, откуда её не ждали.
    Ещё я больше не могу без таких функций, как id или ($) или (.) или стрелочка\рыбка. Меня все это конечно раздражает... Мне кажется, что меня держут в клетке и не дают пользоваться правильными функциями.
    Я всегда считал, что зашквар и профессиональная деформация может быть только от крестов.
    Похоже я очень сильно ошибался и поплатился за это.
    Что посоветуете?

    LispGovno, 01 Ноября 2012

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