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

    Всего: 13

  2. JavaScript / Говнокод #19946

    −2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    this.params.IsCellEditable = function(rowNumber, cellNumber) {
    	cellNumber == 1;
    	this.params.ButtonList = this.params.ButtonList.filter(b=>b[0] === "OnRefresh");
    
    	let textContr = new CTextArea('textContr');
    	textContr.SourceName = "value";
    	textContr.ViewName = "Params";
    	textContr.ComEdit = true;
    	this.params.arrEditObj[1] = textContr;
    
    }

    Найдено в нашем проекте в старом модуле, в авторстве никто не признаётся.
    Во-первых, строка 2 бессмысленна. Во-вторых, всё последующее имело бы хоть какой-то смысл _вне_ этой функции, а внутри уже на строке 3 выкидывает ошибку, потому что контекст там и есть this.param из первой строчки. В-третьих, строка 3 призвана выкидывать из тулбара виджета this.param все кнопки, кроме OnRefresh, но на самом деле она там только одна и есть. В-четвёртых, строчки 7 и 8 просто лишние (ну, это из логики используемого в проекте движка следует). В-пятых, из названия метода можно предположить (и это действительно так), что он должен бы возвращать булевское значение, но он всегда возвращает только undefined и, таким образом, все ячейки виджета оказываются нередактируемыми — что совсем лишает смысла создание контрола для редактирования в строках 5—9.
    Редкостная бредятина. Кто-то в полном затмении писал, и даже десяти секунд не потратил на тестирование.

    torbasow, 06 Мая 2016

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

    +9

    1. 1
    2. 2
    3. 3
    4. 4
    let i=document.createElement("i");
    //какого чёрта это тег i? - Программист
    //Тег i короткий и по звучанию ближе всего к «image» или «icon». А с точки зрения семантики здесь нет ничего страшного, т.к. текста внутри тега нет, и он фактически пустой. - Дизайнер
    //Тег i для текста! - Программист

    Перебранка Программиста, фаната стандартов, и Дизайнера в Javascript-коде (но относительно HTML). Дизайнер последовательно использует тег i для иконок, прописываемых в CSS-стиле background-image.

    torbasow, 16 Декабря 2015

    Комментарии (24)
  4. JavaScript / Говнокод #19132

    +5

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    for(var i=0; i<data.length; i++) {
    	…
    	self._markerList[data[i].r_osm_id].GOZ.arrRowNum[self._markerList[data[i].r_osm_id].GOZ.arrRowNum.length] = parseInt(i);
    	self._markerList[data[i].r_federal_osm_id].GOZ.arrRowNum[self._markerList[data[i].r_federal_osm_id].GOZ.arrRowNum.length] = parseInt(i);
    	self._markerList[0].GOZ.arrRowNum[self._markerList[0].GOZ.arrRowNum.length] = parseInt(i);
    }

    Это parseInt умилительно. Нет, со счётчиком ничего внутри цикла не делается. Но а вдруг?

    torbasow, 04 Декабря 2015

    Комментарии (2)
  5. JavaScript / Говнокод #18165

    +143

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    //выберем все th-ячейки заголовка грида
    var allGridHeaderCells = cell.parentNode.children;
    //получим индекс ячейки 0...N, на которой произошел клик
    for (var ThisColNum = 0; ThisColNum < allGridHeaderCells.length; ThisColNum++) {
    	if (allGridHeaderCells[ThisColNum] == cell) {
    		break;
    	}
    }

    Пишет очень аккуратный программист. Но зачем так?! Вместо простого cell.cellIndex.
    Отдельный штрих, что дальше он использует переменную ThisColNum, определённую в цикле, доступность которой вне цикла — это вообще пережиток прошлого ECMAScript, не знавшего let.

    torbasow, 14 Мая 2015

    Комментарии (0)
  6. JavaScript / Говнокод #18069

    +142

    1. 1
    this.reparent = function (new_parent) {var el = this.element; el.parentNode.removeChild(el); new_parent.appendChild(el);}

    Наткнулся в старом, но ещё работающем коде. Может быть, это даже я написал. Надеюсь, что нет.
    …Нет, похоже, всё-таки не я. Я бы не назвал класс подсвеченного элемента hilited, даже десять лет назад. Похоже, это босс писал.

    torbasow, 27 Апреля 2015

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

    +160

    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
    function displayFilterElements(typeList){
    	_filter.form.elements["name1"].closest("tr").hidden = (typeList === "Type1") ? false : true;
    	_filter.form.elements["name2"].closest("tr").hidden = (typeList === "Type1") ? false : true;
    	_filter.form.elements["nam3"].closest("tr").hidden = (typeList === "Type1") ? false : true;
    	_filter.form.elements["name4"].closest("tr").hidden = (typeList === "Type1") ? false : true;
    	_filter.form.elements["name5"].closest("tr").hidden = (typeList === "Type1") ? false : true;
    	_filter.form.elements["name6"].closest("tr").hidden = (typeList === "Type1") ? false : true;
    	_filter.form.elements["name7"].closest("tr").hidden = (typeList === "Type1") ? false : true;
    	_filter.form.elements["name8"].closest("tr").hidden = (typeList === "Type2") ? false : true;
    	_filter.form.elements["name9"].closest("tr").hidden = (typeList === "Type2") ? false : true;
    	_filter.form.elements["name10"].closest("tr").hidden = (typeList === "Type2") ? false : true;
    	_filter.form.elements["name11"].closest("tr").hidden = (typeList === "Type2") ? false : true;
    	_filter.form.elements["name12"].closest("tr").hidden = (typeList === "Type2") ? false : true;
    	_filter.form.elements["name13"].closest("tr").hidden = (typeList === "Type2") ? false : true;
    	_filter.form.elements["name14"].closest("tr").hidden = (typeList === "Type2") ? false : true;
    	_filter.form.elements["name15"].closest("tr").hidden = (typeList === "Type2") ? false : true;
    	_filter.form.elements["name16"].closest("tr").hidden = (typeList === "Type2") ? false : true;
    	_filter.form.elements["name17"].closest("tr").hidden = (typeList === "Type2") ? false : true;
    	_filter.form.elements["name18"].closest("tr").hidden = (typeList === "Type2") ? false : true;
    	_filter.form.elements["name19"].closest("tr").hidden = (typeList === "Type2") ? false : true;
    	_filter.form.elements["name20"].closest("tr").hidden = (typeList === "Type2") ? false : true;
    	_filter.form.elements["name21"].closest("tr").hidden = (typeList === "Type2") ? false : true;
    	_filter.form.elements["name22"].closest("tr").hidden = (typeList === "Type2") ? false : true;
    	_filter.form.elements["name23"].closest("tr").hidden = (typeList === "Type2") ? false : true;
    	_filter.form.elements["name24"].closest("tr").hidden = (typeList === "Type2") ? false : true;
    	_filter.form.elements["name25"].closest("tr").hidden = (typeList === "Type2") ? false : true;
    	_filter.form.elements["name26"].closest("tr").hidden = (typeList === "Type2") ? false : true;
    	_filter.form.elements["name27"].closest("tr").hidden = (typeList === "Type2") ? false : true;
    	_filter.form.elements["name28"].closest("tr").hidden = (typeList === "Type3") ? true : false;
    	_filter.form.elements["name29"].closest("tr").hidden = (typeList === "Type3") ? false : true;
    };
    	
    function stateFilterElements(){
    	let select = false;
    	["name1", "name2", "name3", "name4", "name5", "name6", "name7", "name8", "name9", "name10", "name11", "name12", "name13"].forEach(function(fieldName){
    		if ($.query.hashJSON.has(fieldName))
    			select = true;
    	});
    	return select;
    }

    Получил в доработку модуль сотрудника. Идентификаторы изменены для публикации, не в них суть.

    torbasow, 17 Марта 2015

    Комментарии (2)
  8. JavaScript / Говнокод #16458

    +158

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    scope = new Object();
    scope = document.getElementById("scope");
    …
    var block = document.getElementById("scope");
    var els = block.getElementsByClassName("noactive");
    for(var n in els)
    {
    els[n].className = "active";
    }

    Проклятие, этот человек хоть что-нибудь думает, когда кодит? Хочется взять — и… Потому что мне с этим потом работать.

    torbasow, 31 Июля 2014

    Комментарии (48)
  9. JavaScript / Говнокод #16258

    +158

    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
    function toJData(
                                r_name_short_row,
                                r_name_full_row,
                                r_id_row, r_name_short_col,
                                r_name_full_col, r_id_col,
                                r_period,
                                r_year,
                                r_recruit,
                                r_contract,
                                r_recruit_plan,
                                r_contract_plan,
                                index
                    ){
    		var tmp = new Object();
    		tmp.r_name_short_row=r_name_short_row;
    		tmp.r_name_full_row = r_name_full_row;
    		tmp.r_id_row = r_id_row;
    		tmp.r_name_short_col = r_name_short_col;
    		tmp.r_name_full_col = r_name_full_col;
    		tmp.r_id_col = r_id_col;
    		tmp.r_period =r_period;
    		tmp.r_year = r_year;
    		tmp.r_recruit = r_recruit;
    		tmp.r_contract = r_contract;
    		tmp.r_recruit_plan = r_recruit_plan;
    		tmp.r_contract_plan = r_contract_plan;
    		tmp.index = index;
    		return tmp;
    		
    	}

    Разбираю код сотрудника, отчалившего в отпуск.
    Внезапно до меня доходит, что я вижу: это же пресловутое клонирование!

    torbasow, 30 Июня 2014

    Комментарии (12)
  10. JavaScript / Говнокод #16241

    +158

    1. 1
    2. 2
    3. 3
    var CLICK = "click";
    var CHANGE = "change";
    periodTo.addEventListener(CLICK,function(){…});

    Когда я спросил «Зачем?!», автор ответил, что так можно же, при необходимости, легко внести изменение типа «var CLICK = "mousedown";»

    torbasow, 27 Июня 2014

    Комментарии (1)
  11. JavaScript / Говнокод #15805

    +148

    1. 1
    2. 2
    3. 3
    var attr_class = document.createAttribute("class");
    attr_class.nodeValue="th_tr";
    th.setAttributeNode(attr_class);

    И нет, attr_class больше нигде не используется. Кто-то из наших сотрудников экспериментировал, похоже.

    torbasow, 21 Апреля 2014

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