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

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

    +999

    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
    #include <iostream>
    #include <algorithm>
    #include <stdlib.h>
    
    const size_t MB = 1024*1024;
    size_t MOD = 0;
    
    unsigned char uniqueNumber () {
      static unsigned char number = 0;
      return ++number % MOD;
    }
    
    int main(int argc, char** argv) {
      if (argc < 3) {
        return 1;
      }
    
      size_t BLOCK_SIZE = atoi(argv[1]) * MB;
      MOD = atoi(argv[2]);
    
      unsigned char* garbage = (unsigned char *) malloc(BLOCK_SIZE);
    
      std::generate_n(garbage, BLOCK_SIZE, uniqueNumber);
      std::sort(garbage, garbage + BLOCK_SIZE);
    
      free(garbage);
    
      return 0;
    }

    http://habrahabr.ru/blogs/cpp/138132/

    It makes me cry. Понятно, что это всего лишь демонстрационный пример. Но все таки это не оправдание. Итак, начнем по порядку с самого худшего:
    1. Сишные malloc/free вперемешку с STL-алгоритмами. WTF? Зачем?
    2. Глобальная переменная? Автор не осилил хотя бы bind? Который, к тому же, уже давно std::bind.
    3. Uppercase для локальной переменной.
    4. Отступ в джва пробела.

    invi, 15 Февраля 2012

    Комментарии (80)
  3. 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)
  4. 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)
  5. 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)
  6. ActionScript / Говнокод #7422

    −109

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

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

    hyzhak, 02 Августа 2011

    Комментарии (80)
  7. 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)
  8. 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)
  9. C# / Говнокод #4810

    +118

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

    zheka, 02 Декабря 2010

    Комментарии (80)
  10. 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)
  11. ActionScript / Говнокод #136

    −453.9

    1. 1
    2. 2
    //_domain = url.match(/http\:\/\/(.*?)\/.*/is)[1]; не работает с https
    _domain =  url.substr(url.indexOf("://")+3).substr(0,url.substr(url.indexOf("://")+3).indexOf("/"));

    не работает никак

    guest, 12 Декабря 2008

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