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

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

    −169

    1. 1
    LEFT JOIN ($regions_table LEFT JOIN ($states_table LEFT JOIN

    мы встроили вам лефт джоин в лефт джоин чтобы лефтжоинить лефт джоин...

    xAlz, 02 Декабря 2014

    Комментарии (46)
  3. PHP / Говнокод #16892

    +155

    1. 1
    mail("[email protected]", "Тема письма", "Текст письма");

    Заметка из цикла "О вреде копипаста".
    Коллега попросил разобраться, отчего почта не приходит. Пять лет программирования на PHP, говорил он, когда устраивался к нам в контору... Вопрос один: как его вообще на работу взяли?..

    gmihalkov, 19 Октября 2014

    Комментарии (46)
  4. Куча / Говнокод #16618

    +124

    1. 1
    ru.m.wikipedia.org/wiki/Мобильный_вирус

    "Наиболее перспективной платформой для написания вирусов является Java 2ME , так как подавляющее большинство современных телефонов поддерживает данную платформу"
    Не, ну это пиздец. Сегодня полдня доказывал чуваку что на его говнозвонилке вирусов быть не может технически. Потом посмотрел в вики и охуел - такое ощущение что статью писал кто то из лаборатории Касперского, с целью напугать хомячков и попиарить себя.
    Соседняя статья:
    "Некомпетентные пользователи ошибочно относят к компьютерным вирусам и другие виды вредоносных программ — программы-шпионы и прочее."
    http://ru.wikipedia.org/wiki/Компьютерный_вирус

    Pythoner, 29 Августа 2014

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

    +155

    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
    58. 58
    59. 59
    const WCT_SYMBOLS = new Buffer('ABCDEFGO'); /*задаём строку для поиска
     в ней символов*/
    const WCT_LENGTH = 3;
    const fs = require('fs');
     
    /*функция для перевода целой части числа из 10-й в любую сс*/
    function Cel(number, c, out, offset, length){
      var pos = offset + length - 1;
    
      number |= 0; /*берём целую часть от числа*/
      
      do {
        out[pos--] = WCT_SYMBOLS[number % c | 0]; /*повторяем пока число не будет равно нулю берём целую часть при
        делении числа на основание и берём остаток + 1 от деления целой части на 16, записываем
        результат посимвольно в строку out*/
        number = number / c | 0;
      } while (number != 0);
      
      while(pos >= offset)
        out[pos--] = WCT_SYMBOLS[0];
    }
    
    (function wctEditor() {
      const argv = process.argv;
      
      if(argv.length < 4) {
        console.log('Not enough parameters!');
        process.exit(1);
      }
      
      const input = argv[2], output = argv[3];
    
      if(!fs.existsSync(input)) {
        console.log('File not exist!');
        process.exit(2);
      }
      
      const BUFFER_SIZE = 1024;
      const f1 = fs.openSync(input, 'r');
      const f2 = fs.openSync(output, 'w');
      const I = new Buffer(BUFFER_SIZE);
      const O = new Buffer(WCT_LENGTH * BUFFER_SIZE);
      
      while(1) {
        var readBytes = fs.readSync(f1, I, 0, I.length, null);
        if(!readBytes) break;
        
        for(var i=0; i<readBytes; ++i)
          Cel(I[0], WCT_SYMBOLS.length, O, i * WCT_LENGTH, WCT_LENGTH);
        
        fs.writeSync(f2, O, 0, readBytes * WCT_LENGTH, null);
      }
    
      fs.closeSync(f1);
      fs.closeSync(f2);
      
    })();
    
      /* TODO -oUser -cConsole Main : Insert code here */

    По следам http://programmersforum.ru/showthread.php?t=264223. Ну тормозит же!
    Я долго боролся с собой, и всё же от авторского стиля остались только комментарии и имена f1, f2 и I...
    WCT editor: теперь и под Node.

    1024--, 16 Августа 2014

    Комментарии (46)
  6. Java / Говнокод #16242

    +75

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    protected String createPublicCacheKey(String...keyElements) {
    	String initial = "public";
    
    	StringBuilder format = new StringBuilder();
    	format.append(initial);
    
    	for(int i=0;i<keyElements.length;i++) {
    		format.append(".%s");
    	}
    
    	return String.format(format.toString(), keyElements);
    }

    Объясните, позязя, почему нельзя сразу добавлять данные к StringBuilder'у. Может быть в этом есть скрытый сакральный смысл желание выпендриться знанием JDK.

    kostoprav, 27 Июня 2014

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

    +131

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    private static List<XElement> processAccountWithAdress(List<Dictionary<string, object>> AccountWithAdress, OrganizationServiceProxy service)
    		{
    			foreach (Dictionary<string, object> item in AccountWithAdress)
    			{
    				try
    				{
    					var adressees = (from n in AccountWithAdress
    									 where n["accountid"].ToString() == item["accountid"].ToString()
    									 select n);

    Вот такой код продают некоторые Киевские ИТ компании....

    ychernobai, 28 Февраля 2014

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

    +45

    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
    for (int i=0; i<N-1; ++i) for (int j=0; j<N-1; ++j)
    		{
    			int& 
    				f1=fields[i  ][j  ].index,
    				f2=fields[i+1][j  ].index,
    				f3=fields[i  ][j+1].index,
    				f4=fields[i+1][j+1].index;
    			if (f1<=0 && f2<=0 && f3<=0 && f4<=0) 
    			{
    				f1=-1;
    				f2=-1;
    				f3=-1;
    				f4=-1; 
    			}				
    		}

    несколько минут пырился в код и не мог понять, где ошибка
    БЛЯДСКАЯ КРЕСТОПИДЕРАСТИЧНАЯ СИСТЕМА ИМЕНОВАНИЯ ТИПОВ ПЕРЕМЕННЫХ

    TarasB, 10 Февраля 2014

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

    +110

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    public void UpdateCollection()
    {
        object l = new object();
        lock (l)
        {
            // Обновляем коллекцию
        }
    }

    Эксклюзивная блокировка в действии

    dormendo, 03 Июля 2013

    Комментарии (46)
  10. Java / Говнокод #12940

    +73

    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
    public static String[] getServerUrls(){
        String[] res = new String[getServersMap().size()];
        Collection<Server> servers = getServersMap().values();
        int i = 0;
        for(Iterator<Server> it= servers.iterator();it.hasNext();){
            Server server = it.next();
            res[i] = server.getUrl();
            i = i + 1;
        }
        return res;
    }
        
    public static Server getServer(int index){
        Server server = null;
        String[] serverUrls = getServerUrls();
        String serverUrl = serverUrls[index];
        for(Iterator<String> it = getServersMap().keySet().iterator(); it.hasNext();){
            String alias = it.next();
            if(getServersMap().get(alias).getUrl().equals(serverUrl)){
                server = getServersMap().get(alias);
            }
        }
        return server;
    }

    Поиск элемента по индексу в мапе, ага. И контрольный в голову - getServersMap() возвращает HashMap.

    nafania217518, 26 Апреля 2013

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

    +100

    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
    <?php
    /*
    Все очень просто. Создаем файл.
    Например login.php (что бы никто не догадался=) )
    И записываем в него несколько функций
    */
    function echoJavaScript($str)
    {
     echo " <script type=\"text/javascript\">
            <!--
            window.alert(\"$str\");
            //-->
            </script>";
    }
    function JavaScript_href()
    {
    echo " <script type=\"text/javascript\">
          <!--
          location.href = '/';
          //-->
          </script>";
    }
    ?>
    
    
    <?php
    /*Создаем еще один файл, где эти функции мы будем вызывать
     Ну, например, у вас имеются на сайте скрипты,
     доступные только зарегистрированным пользователям
     Получив отрицательный результат проверки юзера,
     Вы вызываете эти функции, не забыл, естественно,
     предварительно подключить нужный файл
    */
    include("login.php");
    #Вначале популярно объясняем что к чему
    echoJavaScript('Вы не имеете прав доступа к этой странице.');
    #А потом перенаправляем на главную страницу
    JavaScript_href();
    
    ?>

    Прячем JavaScript от пользователя.

    superfood, 07 Февраля 2013

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