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

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

    +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
    14. 14
    15. 15
    case 4096:
                                //chat message
                                tmp = new byte[4];
                                System.arraycopy(rp.getData(), 4, tmp, 0, 4); //nick length
                                int nickl = byteToInt(tmp);
                                System.arraycopy(rp.getData(), 8, tmp, 0, 4); //message length
                                int mlen = byteToInt(tmp);
                                tmp = new byte[nickl];
                                System.arraycopy(rp.getData(), 12, tmp, 0, nickl); //retrieving nick
                                String r2Nick = new String(byteToChar(tmp));
                                tmp = new byte[mlen];
                                System.arraycopy(rp.getData(), 12+nickl, tmp, 0, mlen); //message
                                String msg = new String(byteToChar(tmp));
                                System.out.println("<"+r2Nick+"> "+msg);
                            break;

    UDP чат без сервера (т.е. широковещательные UDP запросы).
    всё из той-же серии, что и мой прошлый пост

    danilissimus, 06 Ноября 2010

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

    +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
    14. 14
    15. 15
    16. 16
    //...
            Hashtable somehash = new Hashtable();
    //...
    
            public String keyByValue (String value) {
                String s;
    
                    while (somehash.elements().hasMoreElements()) {
                        s = (String) somehash.elements().nextElement(); //!!!
    
                        if (s.equals(value)) { //!!!
                         return s;
                        }
                    }
                return null;
            }

    Cr0s, 05 Ноября 2010

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

    +75

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    StringUtils.join(
                    Collections2.transform(Arrays.asList(ArrayUtils.toObject(data)),
                            new Function<Byte, String>() {
    
                                @Override
                                public String apply(final Byte from) {
                                    return "0x" + Integer.toHexString(from);
                                }
                            }), " ")

    data имеет тип byte[]

    в питоне это было бы ' '.join(map(hex, data))

    burdakovd, 18 Октября 2010

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

    +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
    PriceWithInterval pwi = new PriceWithInterval();
                pwi.setPrice(p);
                pwi.setStart(dateFormat.parse(dateFormat.format(p.getStartDate())).getTime());
                Long endTm = dateFormat.parse(dateFormat.format(p.getEndDate())).getTime();
                //Больше 50 лет - техническая бесконечность
                if (((endTm-pwi.getStart())/1000/3600/24/365)>50)
                {
                    endTm = dateFormat.parse("31.12.9999").getTime();
                }
    
                // Где dateFormat объявлен как
                new SimpleDateFormat("dd.MM.yyyy");

    Вот такое вот масло масляное. Думается, что этот трюк применён здесь для того, чтобы получить начало дня. Чем не устраивает Calendar, неясно. Ну в крайнем случае, можно было целочисленно поделить и умножить на 1000 * 3600 * 24. Ну и вычисление в общем-то константной "технической бесконечности" радует неимоверно.

    konsoletyper, 30 Июля 2010

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

    +75

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    public class SomeClass
    {
    	@SuppressWarnings("unused")
    	private Validator validator;
    
    	... 
    }

    Эта переменная реально не используется. Удалить бы - ан нет, автор почему-то считает, что лучше пометить её как неиспользуемую, чтобы компилятор и Эклипс не ругались.
    Чем только народ думает...

    asolntsev, 21 Июля 2010

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

    +75

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    float lan = getLan();
           float lon = getLan();
           if(lan == lan || lon == lon)
           {
               throw new RuntimeException("Bad value");
           }

    Из моего реалного проекта. Этот код реально делает полезную вещь

    xaoc, 16 Июля 2010

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

    +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
    String message = myObj.getMessage();
    
    if (!message.equals("")) {
        if (showDialog(s)) {
            method1();
            method2();
            method3();
        } 
    } else {
        method1();
        method2();
        method3();
    }

    Пособие для не ленивых.

    lotik, 29 Июня 2010

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

    +75

    1. 1
    2. 2
    3. 3
    if ((getProductId() != null) && (getProductId().equals(new String("5")))) {
      //do it
    }

    ProductId читается один раз при старте приложения, а таких проверок около 50-и.

    lotik, 10 Июня 2010

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

    +75

    1. 1
    setDouble((float)getAnotherDouble());

    Не могу понять: то ли ето какой-то реликтовый артефакт, то ли в етом есть глубокий смысл.
    Подскажите, а..

    OlegYch, 08 Июня 2010

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

    +75

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    String q = "SELECT login, accessLevel FROM accounts ";
    		if (m.equals("1"))
    			q = q.concat("WHERE accessLevel<0");
    		else if (m.equals("2"))
    			q = q.concat("WHERE accessLevel>0");
    		else if (m.equals("3"))
    			q = q.concat("WHERE accessLevel=0");
    		q = q.concat(" ORDER BY login ASC");

    из l2j

    pitch, 31 Мая 2010

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