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

    В номинации:
    За время:
  2. Куча / Говнокод #23790

    0

    1. 1
    2. 2
    3. 3
    4. 4
    Пришла в голову интересная идея. В говнокодике символы для капчи
    генерируются через mt_rand, почему бы нам не устроить атаку по времени?
    Если сделать так, что бы запрос дошёл именно в нужное время, то можно
    будет угадать всю цепочку значений mt_rand. Или нет?

    dm_fomenok, 14 Февраля 2018

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

    −81

    1. 1
    2. 2
    3. 3
    4. 4
    Говнокотаны!
    У меня дочка родилась!
    Я научу её питону, жс, познакомлю с пидаром, тридаром, Тарасом, и вообще!
    Боже, дай мне силы не набухаться с утра!

    bakagaijin, 18 Сентября 2016

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

    +142

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    else{
    	// тот случай когда будет сразу нажата кнопка
    	// однако это будет перехватывать валидация на отправку
    	// в итоге сюда мы никогда не попадем
    }

    sevenflash, 02 Июня 2015

    Комментарии (78)
  5. JavaScript / Говнокод #17262

    +163

    1. 1
    2. 2
    3. 3
    4. 4
    $('.vse-zaeblo').click(function() {
            $.fancybox($(this));
            return false;
        });

    Получил задачу пофиксить сайт созданный другой компанией, заглянул в код и увидел самую первую функцию

    Xases, 05 Декабря 2014

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

    +64

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    #include <iostream>
    #include <typeinfo>
    
    struct Test {};
    
    int main()
    {
    	std::cout << typeid(int).name() << ", " << typeid(Test).name() << std::endl;
    }

    Очередные КРЕСТОПРОБЛЕМЫ.

    MSVC: int, struct Test
    GCC: i, 4Test

    http://ideone.com/KPsIlP

    Вот что говорит стандарт:

    The class type_info describes type information generated by the implementation. Objects of this class effectively store a pointer to a name for the type, and an encoded value suitable for comparing two types for equality or collating order. The names, encoding rule, and collating sequence for types are all unspecified and may differ between programs.

    RTTI ещё бесполезнее, чем я думала.

    someone, 18 Января 2014

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

    +126

    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
    using System.Management;
    
    try
    {
        ManagementObjectSearcher searcher =
            new ManagementObjectSearcher("root\\CIMV2",
            "SELECT * FROM Win32_DiskDrive");
    
        foreach(ManagementObject queryObj in searcher.Get())
        {
            foreach(ManagementObject o in queryObj.GetRelated("Win32_DiskPartition"))
            {
                foreach(ManagementBaseObject b in o.GetRelated("Win32_LogicalDisk"))
                {
                    Debug.WriteLine("    #Name: {0}", b["Name"]);
                }
            }
            // One of: USB, IDE
            Debug.WriteLine("Interface: {0}", queryObj["InterfaceType"]);
            Debug.WriteLine("--------------------------------------------");
        }
    }
    catch (ManagementException f)
    {
        Debug.WriteLine(f.StackTrace);

    Тру кодер изобрел собственный способ получения сведений о дисках.

    WinApi для петушков.

    Stertor, 16 Октября 2013

    Комментарии (78)
  8. Python / Говнокод #12317

    −96

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    def run(self):
            count = 0
    
            while True:
                if count < 5:
                    self.saveUsers(self.queue.get())
                    count += 5
                else:
                    GlobalConfig().setUsers(self.db.selectUsers())
                    count = 0
    
            self.db.close()

    bool не нужен!

    voice, 19 Декабря 2012

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

    +18

    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
    bool isRightTriangle(int a, int b, int c)
    {
        int przeciw=a;
    	if (b>przeciw) przeciw = b;
    	if (c>przeciw) przeciw = c;
    
    	if (przeciw=a)
    		if (a*a==b*b+c*c) return true;
    	else if (przeciw=b)
    		if (b*b==a*a+c*c) return true;
    	else if (przeciw=c)
    		if (c*c==a*a+b*b) return true;
                
        return false;
    }

    Fai, 11 Ноября 2012

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

    +113

    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
    #include <stdio.h>
     
    int main()
    {
            void say_hello()
            {
                    puts("Hello govnokod!");
            }
     
            say_hello();
    
    	return 0;
    }

    http://ideone.com/QZipp

    rat4, 11 Июля 2012

    Комментарии (78)
  11. Java / Говнокод #11301

    +83

    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
    private String toHTML(String unicode)
        {
            String output = "";
    
            char[] charArray = unicode.toCharArray();
    
            for (int i = 0; i < charArray.length; ++i)
            {                        
                if ((int)charArray[i]>255)
                {
                    String s = ""+Integer.toHexString(charArray[i]);
                    switch (s.length())
                    {
                        case 1: s="\\u000"+s; break;
                        case 2: s="\\u00"+s; break;
                        case 3: s="\\u0"+s; break;
                        case 4: s="\\u"+s; break;
                        default: throw new RuntimeException( s +" is tool long to be a Character");
                    }
                    output += s;
                }
                else
                {
                    output += charArray[i];
                }
                
            }
            return output;
        }

    Эпичнейший говнокод! На серваке top показывает нагрузку 10-12. 3000 пользователей, 100 нод, интеграция с SAP, который пачками проводит документы и выдаёт цены, отчёты по остаткам и т.п. И всё это, как оказалось, капля в море по сравнению с 5 человеками техподдержки, которые сидят в аяксовой консоле мониторинга, для которой HTTP-ответ экранируется данным шедевром. Без этого шедевра нагрузка держится в районе 2-3 даже при достаточно большой активности.

    konsoletyper, 26 Июня 2012

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