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

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

    +66

    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
    60. 60
    Map<Organization, Collection<IFormula>> comissionFormulasMap = getComissionFormulae(bank, service, a);
                transIterator:
                for (Transaction T : afterBillingMemorandum) {//для каждой транзакции
    
                    if (comissionFormulasMap.isEmpty()) {
                        //System.out.println("Нет формулы для комиссии");
                        afterComissionSet.add(T); //если нет формулы для определения комиссии транзакция попадает в список на расщепление
                    } else {
                        BigDecimal transactionStartValue = T.getStartValue();
                        Set<Transaction> afterComissionForCurrent = new HashSet<>();
                        BigDecimal fullTax = BigDecimal.ZERO;
                        Collection<IFormula> comissionsAKT = new LinkedList<>();
    
                        for (Map.Entry<Organization, Collection<IFormula>> comissionsByBank : comissionFormulasMap.entrySet()) {
                            Organization comissionBank = comissionsByBank.getKey();
                            for (IFormula f : comissionsByBank.getValue()) {//для каждой формулы по комиссии
                                GeneratedTransactionTypes transactionType = f.getGeneratedTransactionTypes(comissionBank);
    
                                if (transactionType == GeneratedTransactionTypes.AKT) {
                                    comissionsAKT.add(f);
                                } else {
                                    BigDecimal commie = f.commission(transactionStartValue);//Определяем значение комиссии
                                    if (commie.compareTo(BigDecimal.ZERO) == 0)
                                        continue; //Комиссия 0 нам не интересна, переходим к следующей формуле
                                    fullTax = fullTax.add(commie);//складываем комиссии
                                    if (fullTax.compareTo(transactionStartValue) == 1) {
                                        log.error("Помилка зняття комісії. Сума комісій більша 100 %. Транзакція не буде оброблена. Транзакція: {}", T.toBaseString());
                                        continue transIterator;
                                    } else {
                                        afterComissionForCurrent.add(T.getComissionTransaction(f.getOrganization(), commie, transactionType));
                                    }
                                }
                            }
                        }
    //
    //                    afterComissionSet.addAll(afterComissionForCurrent);
    //                    afterComissionForCurrent.clear();
    
                        //Далі зняття по акту
                        BigDecimal afterComissionStartValue = transactionStartValue.subtract(fullTax);
                        BigDecimal aktFullTax = BigDecimal.ZERO;
                        for (IFormula f : comissionsAKT) {
                            GeneratedTransactionTypes transactionType = GeneratedTransactionTypes.AKT;
    
                            BigDecimal commie = f.commission(afterComissionStartValue);
                            if (commie.compareTo(BigDecimal.ZERO) == 0)
                                continue;
                            BigDecimal newFullTax = aktFullTax.add(commie);
                            if (newFullTax.compareTo(afterComissionStartValue) > 0) {
                                continue;
                            }
                            aktFullTax = newFullTax;
                            afterComissionForCurrent.add(T.getComissionTransaction(f.getOrganization(), commie, transactionType));
                        }
    
    
                        afterComissionSet.add(T.getRestTransaction(fullTax.add(aktFullTax)));
                        afterComissionSet.addAll(afterComissionForCurrent);
                    }
                }

    Писал один товарещ, притом взрослый и сформировавшийся как личность )

    ekh, 30 Июня 2015

    Комментарии (2)
  3. C++ / Говнокод #18052

    +66

    1. 1
    2. 2
    3. 3
    4. 4
    AnimationAnimator* AnimationAnimator::getThis()
    {
        return this;
    }

    Я не знаю что это было, но теперь оно такое. Вызывается из трех мест. Мне страшно :С

    netherwire, 23 Апреля 2015

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

    +66

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    Компиляторами являются:
    1. С++
    2. Паскаль
    3. Ассемблер
    4. Unix

    Какой-то жопоразрывающий тест по с++ из ивановской области
    http://hashcode.ru/questions/398214/

    Fike, 10 Февраля 2015

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

    +66

    1. 1
    if(version.StartsWith("Windows 9")) { /* 95 and 98 */ } else {

    по слухам, именно из-за этого говна следующая windows будет 10ой
    https://issues.jenkins-ci.org/secure/attachment/18777/PlatformDetailsTask.java

    Lokich, 07 Октября 2014

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

    +66

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    int array[100];    
    //~=//=~
    for(i=0;i<100;++i)
    {   
        if(array[i] != 0) continue; 
        break;
    }

    Код ужасно упрощен, но смысл передан полностью. Как я такое написал хз.

    Rofl113, 23 Апреля 2014

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

    +66

    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
    @NamedQuery(
        		name = "ImageBankTag.findAllTags",
        		query = "select distinct tag from AdTag tag where tag.tag in (:tags) order by tag.tag"
        )
    })
    
    @Data
    @Entity
    @Table(name = "image_bank_tags",uniqueConstraints = {@UniqueConstraint(columnNames={"tag"})})
    public class ImageBankTag implements Serializable{
    
    . . .
    
        @NamedQuery(
        		name = "AdTag.findAllTags",
        		query = "select distinct tag from AdTag tag where tag.tag in (:tags) order by tag.tag"
        )
    })
    
    @Data
    @Entity
    @Table(name = "admanager2_tags",uniqueConstraints = {@UniqueConstraint(columnNames={"tag"})})
    public class AdTag implements Serializable{

    Такой вот своеобразный джоин, с подстраховкой.

    wvxvw, 26 Января 2014

    Комментарии (12)
  8. Java / Говнокод #13058

    +66

    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
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    98. 98
    99. 99
    package islands.general.playerlist;
    
    import islands.general.player.Player;
    import java.io.Externalizable;
    import java.io.IOException;
    import java.io.ObjectInput;
    import java.io.ObjectOutput;
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    
    /**
     * Список игроков.
     *
     * @author Григорий
     */
    public class PlayerList implements Externalizable, Iterable<Player> {
    
        private static final long serialVersionUID = -8237639142683577971L;
        private static final Player[] emptyPlayerArray = new Player[0];
        private List<Player> list;
        private int maxIndex;
    
        public PlayerList() {
            this(emptyPlayerArray);
        }
    
        public PlayerList(Player... players) {
            list = new ArrayList<Player>();
            maxIndex = 0;
            for (int i = 0; i < players.length; i++) {
                Player player = players[i];
                add(player);
            }
        }
    
        /**
         * Добавить нового игрока в конец списка.
         *
         * @param player новый игрок
         * @return индекс нового игрока
         */
        public final int add(Player player) {
            list.add(maxIndex, player);
            return maxIndex++;
        }
    
        /**
         * Установить нового игрока по указанному индексу.
         *
         * @param index индекс для установки
         * @param player новый игрок
         */
        public void set(int index, Player player) {
            list.set(index, player);
        }
    
        /**
         * Возвратить количество игроков.
         *
         * @return количество игроков
         */
        public int getLength() {
            return maxIndex;
        }
    
        /**
         * Возвратить игрока по указанному индексу.
         *
         * @param index индекс игрока
         * @return игрок
         */
        public Player get(int index) {
            return list.get(index);
        }
    
        @Override
        public void writeExternal(ObjectOutput out) throws IOException {
            out.writeInt(maxIndex);
            for (int i = 0; i < maxIndex; i++) {
                list.get(i).writeExternal(out);
            }
        }
    
        @Override
        public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
            maxIndex = in.readInt();
            for (int i = 0; i < maxIndex; i++) {
                Player player = new Player();
                player.readExternal(in);
                list.add(player);
            }
        }
    
        @Override
        public Iterator<Player> iterator() {
            return list.iterator();
        }
    }

    Dougrinch, 27 Мая 2013

    Комментарии (30)
  9. PHP / Говнокод #12424

    +66

    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
    // генрация паролей
    function generatePassword($l = 8) {
    	function make_seed() {
    		list($usec, $sec) = explode(' ', microtime());
    		return (float) $sec + ((float) $usec * 100000);
    	}
    	$le = split('-', 'q-w-e-r-t-y-u-i-o-p-a-s-d-f-g-h-j-k-l-z-x-c-v-b-n-m-q-W-E-R-T-Y-U-I-O-P-A-S-D-F-G-H-J-K-L-Z-X-C-V-B-N-M-7-2-1-8-6-3-8-7-2-1-6-0-9-g-s-a-d-f-k-a-k-j-w-q-h-2-7-8-1-6-3-g-d-h-m-H-U-F-G-K-J-H-A-S-G-J-G');
    	$password = '';
    	while (strlen($password)<$l) {
    		srand(make_seed());
    		$rnd = rand(0, count($le)-1);
    		$password.=$le[$rnd];
    	}
    	return $password;
    }

    Крайне хардкорный генератор случайных паролей заданной длины. Особенно гениальна строчка №7. Всем говнокоду за мой счет!

    SunnyMagadan, 15 Января 2013

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

    +66

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    @$maxday=mysql_result(mysql_query("
       select max(`day`) from `hours` 
          where `login` in (
             select `login` from people 
             where `type`='1' and `show`='yes') 
          and `begin`='10:00'
          and `end`='18:00'
          and `login`!='roma'"),0);

    Рома, мы от тебя устали.

    madfriend, 24 Декабря 2012

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

    +66

    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
    <?php
    
       //You can even add more Dollar Signs
    
       $Bar = "a";
       $Foo = "Bar";
       $World = "Foo";
       $Hello = "World";
       $a = "Hello";
    
       $a; //Returns Hello
       $$a; //Returns World
       $$$a; //Returns Foo
       $$$$a; //Returns Bar
       $$$$$a; //Returns a
    
       $$$$$$a; //Returns Hello
       $$$$$$$a; //Returns World
    
       //... and so on ...//
    
    ?>

    Из комментов на http://www.php.net/manual/en/language.variables.variable.php

    xaionaro, 12 Октября 2012

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