1. Список говнокодов пользователя yvu

    Всего: 15

  2. Java / Говнокод #7137

    +79

    1. 1
    2. 2
    boolean direct = !Boolean.FALSE.equals(directParam);
        boolean demoAgency = !direct;

    yvu, 03 Июля 2011

    Комментарии (45)
  3. Куча / Говнокод #5617

    +137

    1. 1
    <div style="height: 1px; line-height: 0.1; overflow: hidden; font-size: 12px; color: #fff;">999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 999 </div><!--Распорка для float:left-->

    yvu, 10 Февраля 2011

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

    +74

    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
    @Name("solr")
    @AutoCreate
    public class SolrClient {
        @Create
        public void init() {
            try {
                server = startRemoteSolr();
            } catch (Exception e) {
                log.error(e, e);
            }
        }
    
        public SolrServer startRemoteSolr() throws MalformedURLException, SolrServerException {
            CommonsHttpSolrServer solr = new CommonsHttpSolrServer("http://localhost:8983/solr");
            solr.setRequestWriter(new BinaryRequestWriter());
            return solr;
        }
    
    }

    Seam. Перевод для непричастного: на старте сайта вызывается метод startRemoteSolr(). Solr - это поисковый движок. Если он не запустится, на сайте не будет работать поиск. И если на запуске Solr будет ошибка, то в лог она попадёт просто как exception + stack trace.

    Что не так в коде? Очевидно, его писали люди, не задумываясь об эксплуатации, что свойственно новичкам. А ведь устранение проблем в рабочем сайте - это приоритет номер один. Сама разработка сайта, сидя в удобном кресле с кашкой кофе - где-то сильно ниже.

    Так вот, что не так?

    1. При выводе ошибок надо писать - что это за ошибка. В данном случае: "Запуск поисковика неудался, ПОИСК НА САЙТЕ РАБОТАТЬ НЕ БУДЕТ." И уже потом - stack trace.

    2. Если некая ошибка связана с ресурсами - сетевыми, или на файловой системе, в логе надо также описывать этот ресурс. Т.е. "Не удалось запустить клиент поисковика по адресу http://localhost:8983/solr". Что бы из логов сразу было видно, что порт указан правильно или нет, хост и тд.

    Но выпускникам ВМК МГУ такие вещи неведомы, они слишком крутые что бы опускаться до таких мелочей. Чайники, хуле.

    yvu, 12 Января 2011

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

    +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
    /**
     * произвольные группы районов
     */
    public enum DistrictGroup {
    /*...*/
        public int getOrdinal() {
        	for (int i = 0; i < values().length; i++) {
        		if (this == values()[i]) {
        			return i;
        		}
        	}
        	throw new Error("no ordinal found"); // never can be
        }
    }

    Вот так пишут выпускники ВМК МГУ.

    yvu, 16 Декабря 2010

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

    +77

    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
    JavaServer Faces 1.2, Facelets, страница .xhtml:
    
        <p:nbsp/>
    
    Что является вызовом facelet-тага, ссылающегося на другой (НEвалидный) .xhtml-файл:
    
        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
        <ui:component xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:ui="http://java.sun.com/jsf/facelets">
            <h:outputText escape="false" value="&amp;nbsp;" />
        </ui:component>
    
    Это, типа, способ вставить &nbsp; на страницу. Вместо того, что бы просто написать &nbsp; где это нужно. 
    А что бы это работало в xhtml-нике, нужно всего лишь поставить правильный DOCTYPE вначале 
    документа.

    yvu, 11 Ноября 2010

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

    +87

    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
    /**
     * The Time class is a faster replacement for the java.util.Calendar and
     * java.util.GregorianCalendar classes. An instance of the Time class represents
     * a moment in time, specified with second precision. It is modelled after
     * struct tm, and in fact, uses struct tm to implement most of the
     * functionality.
     */
    public class Time {
    
    ...
    
        /**
         * Year. TBD. Is this years since 1900 like in struct tm?
         */
        public int year;
    
    ...
    
    }

    Android 1.5. TBD в публичном API официального SDK - это пять. Ну мы ещё подумаем, как нам нравится, а вы пока просто посмотрите в дебаге! Гы.

    yvu, 07 Июля 2010

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

    +81

    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
    if (f.mColor != null) {
                    int c = -1;
    
                    if (f.mColor.equalsIgnoreCase("aqua")) {
                        c = 0x00FFFF;
                    } else if (f.mColor.equalsIgnoreCase("black")) {
                        c = 0x000000;
                    } else if (f.mColor.equalsIgnoreCase("blue")) {
                        c = 0x0000FF;
                    } else if (f.mColor.equalsIgnoreCase("fuchsia")) {
                        c = 0xFF00FF;
                    } else if (f.mColor.equalsIgnoreCase("green")) {
                        c = 0x008000;
                    } else if (f.mColor.equalsIgnoreCase("grey")) {
                        c = 0x808080;
                    } else if (f.mColor.equalsIgnoreCase("lime")) {
                        c = 0x00FF00;
                    } else if (f.mColor.equalsIgnoreCase("maroon")) {
                        c = 0x800000;
                    } else if (f.mColor.equalsIgnoreCase("navy")) {
                        c = 0x000080;
                    } else if (f.mColor.equalsIgnoreCase("olive")) {
                        c = 0x808000;
                    } else if (f.mColor.equalsIgnoreCase("purple")) {
                        c = 0x800080;
                    } else if (f.mColor.equalsIgnoreCase("red")) {
                        c = 0xFF0000;
                    } else if (f.mColor.equalsIgnoreCase("silver")) {
                        c = 0xC0C0C0;
                    } else if (f.mColor.equalsIgnoreCase("teal")) {
                        c = 0x008080;
                    } else if (f.mColor.equalsIgnoreCase("white")) {
                        c = 0xFFFFFF;
                    } else if (f.mColor.equalsIgnoreCase("yellow")) {
                        c = 0xFFFF00;
                    } else {
                        try {
                            c = XmlUtils.convertValueToInt(f.mColor, -1);
                        } catch (NumberFormatException nfe) {
                            // Can't understand the color, so just drop it.
                        }
                    }

    Исходники Android 1.5, Html.java:636 .

    Неудивительно, что Html.fromHtml() тормозит так, что юзать для списков вообще нельзя, даже один раз.

    yvu, 07 Июля 2010

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

    +72

    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
    String.format(
            "<b>%s:%s %s %s %d</b>",
            setDisplayFromNumber(calendar.get(GregorianCalendar.HOUR_OF_DAY)), 
            setDisplayFromNumber(calendar.get(GregorianCalendar.MINUTE)),
            setDisplayFromNumber(calendar.get(GregorianCalendar.DAY_OF_MONTH)),
            getMonthNameFromNumber(calendar.get(GregorianCalendar.MONTH)),
            calendar.get(GregorianCalendar.YEAR)
    );
    
    private String setDisplayFromNumber(Integer number) {
        if(number < 10) {
            return String.format("0%d", number);
        }
        else {
            return number.toString();
        }
    }

    yvu, 24 Июня 2010

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

    +69

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    private String setArticleHTML() {
        // ...
    }
    
    ...
    
    mArticleView.loadDataWithBaseURL(mBaseUrl, setArticleHTML(), "text/html", "UTF-8", "");

    yvu, 15 Июня 2010

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

    +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
    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
    private String getIdString() {
            String answer = Integer.toHexString(id.intValue());
            switch (answer.length()) {
            case 0:
                answer = "00000000";
                break;
            case 1:
                answer = "0000000" + answer;
                break;
            case 2:
                answer = "000000" + answer;
                break;
            case 3:
                answer = "00000" + answer;
                break;
            case 4:
                answer = "0000" + answer;
                break;
            case 5:
                answer = "000" + answer;
                break;
            case 6:
                answer = "00" + answer;
                break;
            case 7:
                answer = "0" + answer;
                break;
            }
            return answer;
        }

    JBoss Netty org.jboss.netty.channel.AbstractChannel

    yvu, 30 Апреля 2010

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