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

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

    +135

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    class Program
    {
        static void Main(String[] args)
        {
            for (int i = 0; i < 10; i++)
            {
                Main();
            }
        }
    }

    Студент выдал такое в ответ на задание написать код, вызывающий функцию 10 раз. Пол часа бедняга втыкал откуда стэк оверфлоу...

    vistefan, 26 Января 2012

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

    +952

    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
    namespace AppendStrinAtBegin
    {
        class Program
        {
            static void ProcessDirectory(string path, string fileMask, Action<string> action)
            {
                Directory.EnumerateFiles(path, fileMask).ToList().ForEach(action);
                Directory.EnumerateDirectories(path).ToList().ForEach
                    (
                        subDirectory => ProcessDirectory(subDirectory, fileMask, action)
                    );
            }
    
            static void Main(string[] args)
            {
                Console.WriteLine("Path FileMask AppendedString");
                if (args.Length < 3)
                    return;
                var appendedString = args.Skip(2).Aggregate((workingSentence, next) => workingSentence+ " " +next);
                ProcessDirectory(args[0], args[1], (file) => ProcessFile(file, appendedString));
                Console.WriteLine("Gun done");
            }
    
            static void ProcessFile(string file, string appendedStringAtBegin)
            {
                var fileLines = File.ReadAllLines(file, Encoding.GetEncoding(1251));
                var fileResulted = fileLines.ToList();
                fileResulted.Insert(0, appendedStringAtBegin);
                File.WriteAllLines(file, fileResulted, Encoding.GetEncoding(1251));
            }
        }
    }

    ohlol, 18 Октября 2011

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

    −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
    21. 21
    Функция ВыделитьАртикул(А) Экспорт
    	Перем СтрВспом, Инд;
    	
    	Инд = 1;
    	СтрВспом = "";
    	
    	Пока Инд <= СтрДлина(А) Цикл
    		Если (Сред(А,Инд,1)="0") ИЛИ (Сред(А,Инд,1)="1") ИЛИ
    			 (Сред(А,Инд,1)="2") ИЛИ (Сред(А,Инд,1)="3") ИЛИ
    			 (Сред(А,Инд,1)="4") ИЛИ (Сред(А,Инд,1)="5") ИЛИ
    			 (Сред(А,Инд,1)="6") ИЛИ (Сред(А,Инд,1)="7") ИЛИ
    			 (Сред(А,Инд,1)="8") ИЛИ (Сред(А,Инд,1)="9") ИЛИ 
    			 (Сред(А,Инд,1)="/") ИЛИ (Сред(А,Инд,1)="-") Тогда
    			СтрВспом = СтрВспом + Сред(А, Инд, 1);
    			Инд = Инд + 1;
    		Иначе
    			Прервать;
    		КонецЕсли;
    	КонецЦикла;
    	Возврат СтрВспом;
    КонецФункции

    Нашел у клиента, когда рефакорил код конфы. Страшно подумать, если придется выделять еще с десяток символов...

    YouAreEmpty, 09 Сентября 2011

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

    −109

    1. 1
    Math.pow(-1,Math.round(1+Math.random()))*Math.random() * x

    случайное число в диапазоне [-x, x].

    hyzhak, 02 Августа 2011

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

    +167

    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
    struct LexicalToken
            {
            public:
                LexicalToken(DataStructs::Lexem &lex,
                             SyntaxTree::SyntaxNode::Type type,
                             const IOSystem::Position &pos = IOSystem::Position()) :
                    lexem(lex), position(pos), type(type)
                {}
    
                LexicalToken(const LexicalToken &other) :
                    lexem(other.lexem), position(other.position), type(other.type)
                {}
    
                LexicalToken& operator = (const LexicalToken &other)
                {
                    memcpy(this, &other, sizeof(LexicalToken));
                    return *this;
                }
    
                DataStructs::Lexem &lexem;
                IOSystem::Position position;
                SyntaxTree::SyntaxNode::Type type;
            };

    Use pointers, Luke

    Elvenfighter, 09 Мая 2011

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

    +166

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    template <typename RetT> RetT Max() { return (RetT)0; }
    
    template <typename RetT, typename ArgT, typename ... Args> RetT Max(ArgT Arg1, Args ... args)
    { RetT Temp = Max<RetT>(args ...); return ((RetT)Arg1 > Temp) ? ((RetT)Arg1) : (Temp); }
    
    int main(int argc, char* argv[])
    {
        printf("%d\n", Max<int>(100, 200.356, false, -300));
        return 0;
    }

    оцените полет человеческой мысли и чудеса нового стандарта С++0x... семпл мой, правда довольно редко используется...

    ReL, 19 Апреля 2011

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

    +118

    1. 1
    if (string.IsNullOrEmpty(email) != false)

    zheka, 02 Декабря 2010

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

    +175

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    string user="Администратор";
        char* qwe1;
        int i=0;
        for(i=0;user[i]!=0;i++){};
        qwe1[]=new char[i];
        for(int j=0;user[j]!=0;j++)qwe1[j]=user[j];

    перевод std::string в массив чаров

    niXman, 30 Октября 2010

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