1. 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)
  2. JavaScript / Говнокод #16241

    +158

    1. 1
    2. 2
    3. 3
    var CLICK = "click";
    var CHANGE = "change";
    periodTo.addEventListener(CLICK,function(){…});

    Когда я спросил «Зачем?!», автор ответил, что так можно же, при необходимости, легко внести изменение типа «var CLICK = "mousedown";»

    torbasow, 27 Июня 2014

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

    +133

    1. 1
    2. 2
    /* All the message are high priority message  */
    message_id = message_id | LOW_PRIORITY_MESSAGE_MASK;

    Все сообщения с высоким приоритетом. *Да-да, конечно*

    sermp, 27 Июня 2014

    Комментарии (1)
  4. C++ / Говнокод #16239

    +10

    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
    int getNextCode(int &currentByte, int codeLen)
    {
        int nextCode = 0, mask;
        mask = (int)pow(2, codeLen) - 1;
        if (rest >= codeLen) {
            nextCode = currentByte & mask;
            currentByte >>= codeLen;
            rest -= codeLen;
        } else {
            int nextByte, temp;
            encoded >> std::hex >> nextByte;
            if (codeLen <= rest + 8) {
                temp = nextByte;
                temp <<= rest;
                temp += currentByte;
                rest = 8 + rest - codeLen;
                currentByte = nextByte >> (8 - rest);
            } else {
                int secondByte;
                encoded >> std::hex >> secondByte;
                temp = secondByte << (rest + 8);
                temp += nextByte + currentByte;
                rest = 16 + rest - codeLen;
                currentByte = secondByte >> (8 - rest);
            }
            nextCode = temp & mask;
        }
        return nextCode;
    }

    Функция, для декодера *gif . Считывает несколько бит из файла.

    Juksare, 26 Июня 2014

    Комментарии (2)
  5. Pascal / Говнокод #16238

    +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
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    procedure TRegistry.GetKeyNames(Strings: TStrings);
    var
      Len: DWORD;
      I: Integer;
      Info: TRegKeyInfo;
      S: string;
    begin
      Strings.Clear; // Очистить список перед добавлением. Это пиздец, как важно!!! Программист не додумается сам очистить список. 
      if GetKeyInfo(Info) then
      begin
        SetString(S, nil, Info.MaxSubKeyLen + 1);
        for I := 0 to Info.NumSubKeys - 1 do
        begin
          Len := Info.MaxSubKeyLen + 1;
          RegEnumKeyEx(CurrentKey, I, PChar(S), Len, nil, nil, nil, nil);
          Strings.Add(PChar(S));
        end;
      end;
    end;

    Из registry.pas (Delphi 2009)
    Все регистровые функции зашкварены этим, не знаю, как в семерке; это значит, что в цикле их без дерьма не поюзаешь.
    Очень обидно.

    brutushafens, 26 Июня 2014

    Комментарии (32)
  6. PHP / Говнокод #16236

    +157

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    # http://habrahabr.ru/post/227277/
    # открыл первый попавшийся скрипт на гитхабе по ссылке в посте, дальше не читал
    
    function validate_email($str)
    {
        return preg_match('/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/',$str);
    }

    Sulik78, 25 Июня 2014

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

    −165

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    Процедура ОбработкаПроведения(Отказ, РежимПроведения)
    
    ........
    
    
    	если ЭтотОбъект.Проведен тогда 
    		Сообщить("Уже проведений, терміни не рухаємо");
    	иначе    ЭтотОбъект.ПолучитьФорму().Открыть();
    			     Сообщить("А тепер нажміть ОК");
            КонецЕсли;
    
    КонецПроцедуры // ОбработкаПроведения()

    омг...

    alexinzaz, 25 Июня 2014

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

    +8

    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
    {
        if(find(p) == board.end() || (*find(p))->suit != (*selected)->suit)[&]
        {
            {
              auto it = std::find_if(board.pieceCapturings().begin(),
                           board.pieceCapturings().end(),
                                       [&](board::Board::Movements_t::value_type const &m)
                                       {
                                           return m.first == selected && m.second == p;
                                       });
                if(it != board.pieceCapturings().end())
                {
                    for(auto jt = board.pieceCapturables().begin(); jt != board.pieceCapturables().end(); ++jt)
                    {
                        if(jt->second == p)
                        {
                            if(board.capture(selected, it, jt))
                            {
                                nextTurn();
                                return;
                            }
                        }
                    }
                }
            }
            {
                auto it = std::find_if(board.pieceTrajectories().begin(),
                                       board.pieceTrajectories().end(),
                                       [&](board::Board::Movements_t::value_type const &m)
                                       {
                                           return m.first == selected && m.second == p;
                                       });
                if(it != board.pieceTrajectories().end())
                {
                    if(board.move(selected, it))
                    {
                        nextTurn();
                    }
                }
            }
        }();
        selected = board.end(); //deselect
    }

    https://github.com/cpluspluscom/ChessPlusPlus/blob/master/src/app/ChessPlusPlusState.cpp
    When you see it...

    Soul_re@ver, 25 Июня 2014

    Комментарии (0)
  9. Java / Говнокод #16233

    +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
    13. 13
    import java.lang.reflect.Field; 
    
    public class Main {
        public static void main(String[] args) throws Exception {
            Class cache = Integer.class.getDeclaredClasses()[0];
            Field c = cache.getDeclaredField("cache");
            c.setAccessible(true);
            Integer[] array = (Integer[]) c.get(cache);
            array[132] = array[133];
    
            System.out.printf("%d",2 + 2);
        }
    }

    Джаважды джва равно пять

    http://ideone.com/1Ap0wW

    TarasB, 25 Июня 2014

    Комментарии (173)
  10. PHP / Говнокод #16232

    +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
    /* $res = array ('res_count' => 15,   кол-во результатов
                               '...' => прочее,
    )*/
    
    {if ($res) && (($res['res_count']%10) == 1)&& ((($res['res_count']/10)%10) != 1)}  
    	нашёлся <b>{$res['res_count']}</b> результат
    {else} 
    	нашлось <b>{$res['res_count']}</b> 
    	{if ($res) && ((($res['res_count']/10)%10) != 1) && (($res['res_count']%10)>1) && (($res['res_count']%10)<5)}
    		результата
    	{else}
    		результатов
    	{/if}
    {/if}

    нашёл функцию под SMARTY для склонения слов, которая используется при выводе результатов поиска... она была записана в 1-у строчку для "лучшего понимания" (напишу в комменте )

    govnokoder2, 25 Июня 2014

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