1. Java / Говнокод #8836

    +144

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    private static final BigDecimal $150 = BigDecimal.valueOf(150);
    private static final BigDecimal $500 = BigDecimal.valueOf(500);
    private static final BigDecimal $751 = BigDecimal.valueOf(751);
    
    // rule example
    all(
        paymentOfType(COMPREHENSIVE, greaterOrEqual($500)),
        noPaymentsButComprehensive
    ).mapTo(result(ACTIVITY_TYPE_ACC, COMPREHENSIVE_OVER_500))

    Код мой. Есть таблица правил (в Excel), по которой нужно классифицировать некие объекты. Все правила собраны в одном классе и представляют из себя конструкции наподобие той, что в топике.
    У меня с остальной частью команды возник конфликт по поводу наименования констант: все считают, что называть константы как $500 - сущее зло, а правильно называть MAX_AMOUNT_FOR_COMP_OVER_500. Я считаю, что $500 - это 500 долларов, блеать, а константа нужна только в одном месте и для читаемости. Мне по сути пофигу, как называется константа, интересно узнать ваше мнение.
    наболело

    roman-kashitsyn, 15 Декабря 2011

    Комментарии (35)
  2. Java / Говнокод #8831

    +83

    1. 1
    2. 2
    URI uri = new URI("http://themoneyconverter.com/USD/rss.xml");
    Document doc = db.parse(uri.toString());

    Умей передавать строки правильно, падаван

    digi, 15 Декабря 2011

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

    +76

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    public int RemoveEquals(AtASEData[] ar,int ln) {
       if (ln==0) return 0;
       int i=1;
       int j=0;
       while (i<ln) {
          if (((Integer)ar[i].inData).intValue()==((Integer)ar[j].inData).intValue())
          ar[i].SetRootData(ar[j]); else ar[++j]=ar[i];
          i++;
       }
       return j+1;
    }

    Loord, 14 Декабря 2011

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

    +84

    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
    private enum FolderType{inbound, outbound, archive, rejected}
    
    private String inboundName = "inbound";
    private String outboundName = "outbound";
    private String archiveName = "archive";
    private String rejectedName = "rejected";
    
    // чуть ниже....
    private String getFolderTypeName(FolderType type){
        switch (type){
            case inbound:
                return inboundName;
            case outbound:
                return outboundName;
            case archive:
                return archiveName;
            case rejected:
                return rejectedName;
            default:
                throw new IllegalArgumentException(type.toString());
        }
    }

    Похоже, кто-то так и не въехал в жабьи енумы.

    roman-kashitsyn, 12 Декабря 2011

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

    +121

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    final List<OrderSpecifier<?>> orderBy = ImmutableList.<OrderSpecifier<?>>of(
    		// Whoa! Sorting by four columns. We really are insane.
    		q.urgent.desc(),
    		q.queued.desc(),
    		q.receiver.asc(),
    		q.created.desc());

    Заказчик попросил.

    someone, 12 Декабря 2011

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

    +76

    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
    public class Xorer {
        private static long SHIFR= 71180519;
        private Xorer() {
        }
    
        /**
         * ��������� �������� value XOR shifr
         * @param value ������� �������� �������� � ��������� �������
         * @return ��������� ��� �������� �������� � ��������� �������
         */
        public static synchronized String executeString(String value){
            String res=null;
            long code=0;
            try{
                  code=Long.parseLong(value);
            } catch(Exception e){
                e.printStackTrace();
            }
            res=execute(code);
            return res;
        }
    
        /**
         * ��������� �������� value XOR shifr
         * @param code ������� �������� �������� � ������� long
         * @return ��������� ��� �������� �������� � ��������� �������
        */
        public static synchronized String execute(long code){
            String res=null;
            if(code>0){
                long newvalue= code ^ SHIFR;
                res=""+newvalue;
            }
            return res;
        }
    }

    Вот вам ещё еда.

    nikelin, 08 Декабря 2011

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

    +80

    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
    /** ���� ��������� ���� @P@R@I@V@E@T@ @1@8 - ���� ��� ���� ������ */
            public static String removeSabakaCoding(String inStr)
            {
                    try {
                            char[] chars = inStr.toCharArray();
                            StringBuffer sb = new StringBuffer();
                            boolean mustBe = true;
                            boolean sobakaCoding = true;
                            for (int i = 0; i < inStr.length(); i++)
                            {
                                    if (mustBe)
                                    {
                                            if (chars[i] == '@')
                                            { // ���� ��� sobakaCoding � ����..
                                            } else
                                            {
                                                sobakaCoding = false;
                                                break;
                                            }
                                    } else
                                            sb.append(chars[i]);
                                    mustBe=!mustBe;
                            }
                            if (sobakaCoding)
                                    return sb.toString();
                    } catch (Exception e)
                    {
                            e.printStackTrace();
                    }
                    return inStr;
            }

    Чмоке всем в этам чяте!!!111

    nikelin, 08 Декабря 2011

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

    +76

    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
    @Retention(RetentionPolicy.RUNTIME)
    @Target({ ElementType.FIELD})
    public static @interface Property { String value(); }
    	
    public static class PropertyImpl implements Property {
        private final String value; 
        public PropertyImpl(String value) { this.value = value; }
        @Override public Class<? extends Annotation> annotationType() { return Property.class; }		
        @Override public String value() { return this.value; }
        @Override public int hashCode() { return (127 * "value".hashCode()) ^ value.hashCode();  }
        @Override public boolean equals(Object o) {
            if (!(o instanceof Property)) { return false; }
            Property other = (Property) o;
            return value.equals(other.value());
        }
    }

    отформатировал для компактности.
    Идеи для чего делать реализцию аннотации?

    tir, 06 Декабря 2011

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

    +71

    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
    setCookie(new String[] {username, Long.toString(expiryTime), signatureValue}, tokenLifetime, request, response);
    
    int tokenLifetime = calculateLoginLifetime(request, successfulAuthentication);
    
    protected int calculateLoginLifetime(HttpServletRequest request, Authentication authentication) {
            return getTokenValiditySeconds();
        }
    
    protected int getTokenValiditySeconds() {
            return tokenValiditySeconds;
        }
    
    private int tokenValiditySeconds = TWO_WEEKS_S;
    
    public static final int TWO_WEEKS_S = 1209600;

    Spring Security........
    Логирование по куки токену.....

    KaRRamBa, 06 Декабря 2011

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

    +75

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    if(false || DEBUG)
        {
          System.out.print("analysis: "+Integer.toBinaryString(analysis));
          System.out.println(", "+WalkerFactory.getAnalysisString(analysis));
        }

    Вычурный способ делать комментарии. Пример может и боян, но зато где: в исходниках API Android 2.2 Froyo.

    google-moogle, 04 Декабря 2011

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