- 
        Список говнокодов пользователя torbasowВсего: 13 
- 
        
        
                −2         
                            - 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 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 torbasow,
            06 Мая 2016
 
- 
        
        
                +9         
                            - 1
- 2
- 3
- 4
 let i=document.createElement("i");
//какого чёрта это тег i? - Программист
//Тег i короткий и по звучанию ближе всего к «image» или «icon». А с точки зрения семантики здесь нет ничего страшного, т.к. текста внутри тега нет, и он фактически пустой. - Дизайнер
//Тег i для текста! - Программист
 
 
            Перебранка Программиста, фаната стандартов, и Дизайнера в Javascript-коде (но относительно HTML). Дизайнер последовательно использует тег i для иконок, прописываемых в CSS-стиле background-image.
         
             torbasow,
            16 Декабря 2015 torbasow,
            16 Декабря 2015
 
- 
        
        
                +5         
                            - 1
- 2
- 3
- 4
- 5
- 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 torbasow,
            04 Декабря 2015
 
- 
        
        
                +143         
                            - 1
- 2
- 3
- 4
- 5
- 6
- 7
- 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 torbasow,
            14 Мая 2015
 
- 
        
        
                +142         
                            - 1
 this.reparent = function (new_parent) {var el = this.element; el.parentNode.removeChild(el); new_parent.appendChild(el);}
 
 
            Наткнулся в старом, но ещё работающем коде. Может быть, это даже я написал. Надеюсь, что нет.
 …Нет, похоже, всё-таки не я. Я бы не назвал класс подсвеченного элемента hilited, даже десять лет назад. Похоже, это босс писал.
 
             torbasow,
            27 Апреля 2015 torbasow,
            27 Апреля 2015
 
- 
        
        
                +160         
                            - 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 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 torbasow,
            17 Марта 2015
 
- 
        
        
                +158         
                            - 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 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 torbasow,
            31 Июля 2014
 
- 
        
        
                +158         
                            - 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 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 torbasow,
            30 Июня 2014
 
- 
        
        
                +158         
                            - 1
- 2
- 3
 var CLICK = "click";
var CHANGE = "change";
periodTo.addEventListener(CLICK,function(){…});
 
 
            Когда я спросил «Зачем?!», автор ответил, что так можно же, при необходимости, легко внести изменение типа «var CLICK = "mousedown";»
         
             torbasow,
            27 Июня 2014 torbasow,
            27 Июня 2014
 
- 
        
        
                +148         
                            - 1
- 2
- 3
 var attr_class = document.createAttribute("class");
attr_class.nodeValue="th_tr";
th.setAttributeNode(attr_class);
 
 
            И нет, attr_class больше нигде не используется. Кто-то из наших сотрудников экспериментировал, похоже.
         
             torbasow,
            21 Апреля 2014 torbasow,
            21 Апреля 2014