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

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

    +66

    1. 1
    2. 2
    3. 3
    4. 4
    function EchoForum( $var ){
    	return true;
    	echo $var.'<BR>';
    }

    Из модуля форума...

    Мартин, 27 Мая 2012

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

    +66

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    catch (com.google.gwt.event.shared.UmbrellaException ex) {
    					Iterator<Throwable> it = ex.getCauses().iterator();
    					while (it.hasNext()) {
    						Throwable msg = it.next();
    						System.out.println(msg.getStackTrace());
    					}

    обрабатываем exception......

    sermolaev, 16 Мая 2012

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

    +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
    package util;
    
    import play.db.jpa.JPA;
    import play.db.jpa.Model;
    import play.mvc.Http;
    import play.mvc.Router;
    import play.mvc.Scope;
    
    import javax.persistence.Query;
    import javax.persistence.EntityManager;
    import java.lang.reflect.Field;
    import java.util.Arrays;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    /**
     * Page of results for model classes (because paginate module looks too buggy).
     * It is not generic solution but it fits the needs.
     * @author <a href="mailto:[email protected]">Roman Kashitsyn</a>
     */
    public class Page<M extends Model> implements PageBuilder<M> {
        
        public static final int MAX_PAGE_SIZE = 20;
        public static final int DEFAULT_PAGE_SIZE = 10;
        public static final int DEFAULT_PAGE_NUMBER = 1;
    
        public static final String PAGE_NUMBER_PARAM = "page";
        public static final String PAGE_SIZE_PARAM = "psize";
        public static final String ORDER_PARAM = "order";
        public static final String ORDER_BY_PARAM = "orderBy";
        
        private static final String ASC = "asc";
        private static final String DESC = "desc";
        private static final List<String> ALLOWED_ORDERS = Arrays.asList(ASC, DESC);
    
        private int pageSize = DEFAULT_PAGE_SIZE;
        private int pageNumber = DEFAULT_PAGE_NUMBER;
        private int total;
        private String orderBy;
        private String order;
        private final Http.Request request;
        private final Map<String, Object> params;
        private List<M> results;
        private final Class<M> clazz;
    
        public class SizeSwitcher {
            private final Map<String, Object> params;
    
            private SizeSwitcher() {
                // making defensive copy
                params = new HashMap<String, Object>(Page.this.params);
                // list of different size should always begin with 1 page
                params.put(PAGE_NUMBER_PARAM, 1);
            }
    
            public String urlToSwitchSize(int newSize) {
                params.put(PAGE_SIZE_PARAM, newSize);
                return Router.reverse(Page.this.request.action, params).url;
            }
    
            public int currentSize() {
                return Page.this.pageSize;
            }
        }
    
        private Page(Class<M> clazz) {
            this.clazz = clazz;
            request = Http.Request.current();
            params = new HashMap<String, Object>(Scope.Params.current().allSimple());
        }
        
        public static <M extends Model> PageBuilder<M> of(Class<M> modelClass) {
            return new Page<M>(modelClass);
        }
        
        public PageBuilder<M> withParams(Map<?, ?> params) {
            pageNumber = limit(params.get(PAGE_NUMBER_PARAM), pageNumber, Integer.MAX_VALUE);
            pageSize = limit(params.get(PAGE_SIZE_PARAM), pageSize, MAX_PAGE_SIZE);
            Object orderByParam = params.get(ORDER_BY_PARAM);
            if (orderByParam != null) {
                orderBy(getSingleValue(orderByParam).toString());
            }
            Object orderParam = params.get(ORDER_PARAM);
            if (orderParam != null) {
                String proposedValue = getSingleValue(orderParam).toString();
                if (ALLOWED_ORDERS.contains(proposedValue)) {
                    order = getSingleValue(orderParam).toString();
                }
            }
            return this;
        }
    
        public PageBuilder<M> withNumber(int num) {
            this.pageNumber = num;
            return this;
        }

    Govnisti_Diavol, 03 Мая 2012

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

    +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
    if (!retval){
    			String svcLocation = bp.getParameterValueObjectFromAnyComponent("ReqTDQuestions", "svcLocation") + "";
    			if (svcLocation.contains("GreaterChina")){
    				retval=true;
    			}
    		}
    
    if(!retval){
    			String svcCategory = bp.getParameterValueObjectFromAnyComponent("ReqTDQuestions", "svcCategory") + "";
    			if(svcCategory.contains("ValueAddedServices") || 
    					svcCategory.contains("distWarehouse") ||
    					svcCategory.contains("transportation")){
    				retval =true;
    			}
    		}

    элегантно.

    zloizerg, 27 Марта 2012

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

    +66

    1. 1
    count = indexFactory.getIndexHelper(section).getSearcher().docFreq(new Term("firm", Long.toString(firm)));

    матрешка :)

    zlob.jc, 14 Февраля 2012

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

    +66

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    Какая у вас OS?
    
    <select name="os">
    <option value="win">Windows
    <option value="mac">Mac OS
    <option value="linux">Linux
    ....
    <option value="win">Не знаю
    </select>

    С баша, по сути не говнокод, но доставляет...

    Nemoden, 15 Ноября 2011

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

    +66

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    Integer obj = (Integer)dump.get("size");
            if(obj == null) {
                return;
            }
            int size = obj;
            for(int i=0; i<size; i++) {

    Самое странное, что автор явно знает, что такое автобоксинг, но всё равно использовал его коряво.

    lucidfox, 08 Сентября 2011

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

    +66

    1. 1
    http://svn.codehaus.org/groovy/trunk/groovy/groovy-core/src/main/org/codehaus/groovy/runtime/ArrayUtil.java

    Было? Вроде нет...

    wvxvw, 30 Июня 2011

    Комментарии (15)
  10. Куча / Говнокод #6794

    +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
    .cl-ul .cl-li .cl-li-in{
    	padding: 10px 12px 10px 10px;
    	margin: 0 0 10px;
    	}
    .cl-ul .cl-li .cl-li .cl-li-in{
    	margin-left: 25px;
    	}
    .cl-ul .cl-li .cl-li .cl-li .cl-li-in{
    	margin-left: 50px;
    	}
    .cl-ul .cl-li .cl-li .cl-li .cl-li .cl-li-in{
    	margin-left: 75px;
    	}
    .cl-ul .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li-in{
    	margin-left: 100px;
    	}
    .cl-ul .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li-in{
    	margin-left: 125px;
    	}
    .cl-ul .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li-in{
    	margin-left: 150px;
    	}
    .cl-ul .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li-in{
    	margin-left: 175px;
    	}
    .cl-ul .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li-in{
    	margin-left: 200px;
    	}
    .cl-ul .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li-in{
    	margin-left: 225px;
    	}
    .cl-ul .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li-in{
    	margin-left: 250px;
    	}
    .cl-ul .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li-in{
    	margin-left: 275px;
    	}
    .cl-ul .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li-in{
    	margin-left: 300px;
    	}
    .cl-ul .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li-in{
    	margin-left: 325px;
    	}
    .cl-ul .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li-in{
    	margin-left: 350px;
    	}
    .cl-ul .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li-in{
    	margin-left: 375px;
    	}
    .cl-ul .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li-in{
    	margin-left: 400px;
    	}
    .cl-ul .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li-in{
    	margin-left: 425px;
    	}
    .cl-ul .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li-in{
    	margin-left: 450px;
    	}
    .cl-ul .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li-in{
    	margin-left: 475px;
    	}
    .cl-ul .cl-li .cl-li .cl-form{
    	margin-left: 25px;
    	}
    .cl-ul .cl-li .cl-li .cl-li .cl-form{
    	margin-left: 50px;
    	}
    .cl-ul .cl-li .cl-li .cl-li .cl-li .cl-form{
    	margin-left: 75px;
    	}
    .cl-ul .cl-li .cl-li .cl-li .cl-li .cl-li .cl-form{
    	margin-left: 100px;
    	}
    .cl-ul .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-form{
    	margin-left: 125px;
    	}
    .cl-ul .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-form{
    	margin-left: 150px;
    	}
    .cl-ul .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-form{
    	margin-left: 175px;
    	}
    .cl-ul .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-form{
    	margin-left: 200px;
    	}
    .cl-ul .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-form{
    	margin-left: 225px;
    	}
    .cl-ul .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-form{
    	margin-left: 250px;
    	}
    .cl-ul .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-li .cl-form{
    	margin-left: 275px;
    	}
    
    и т.д.

    «Древо зла» в стилях одного крупного проекта.

    whitespace, 31 Мая 2011

    Комментарии (22)
  11. Куча / Говнокод #4970

    +66

    1. 1
    2. 2
    cd TempDir
    del /f /q /s *

    Когда-то давно написал батник для автоматизации каких-то работ по удалению временных файлов. Там были переходы посложнее между папками, чем сдесь, но для илюстрации соли фейла подойдет и это.
    Однажды моё предположение о существовании некоторых папок неоправдалось. И некоторые из комманд типа cd TempDir сфейлили. Естественно, на ошибки результат их выполнения я не проверял и при ерроре не выходил из батника. Запустил я в тот роковой день батник и смотрю - что-то очень долго удаляется директория временных файлов...
    Подскос пошёл весь логический диск с данными. :D
    В результате той комбинации не сфейлевших комманд cd текущем каталогом оказался корневой каталог диска.
    Естественно, батник до наших дней не дошёл, тк был на этом логическом диске и слава богу. :D

    Говногость, 18 Декабря 2010

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