Информация об изменениях

Сообщение Нестандартный стиль быдлокодера от 16.01.2015 20:01

Изменено 18.01.2015 20:25 Mamut [ищите в других сетях]

Я никогда не работал на работодателя, и у меня в ходе написания моей программы сформировался собственный стиль кода. Вот два фрагмента Delphi-кода моей программы:

case lowercase(curstrings[0])[1] of
'v': begin//Вектор
et:=vetOneArrow;
if curstrings.Count>7 then if lowercase(curstrings[7])='n' then et:=vetNoArrows;
if curstrings.Count>8 then begin
AddCustomVector(vector(strtofloat(curstrings[1]),strtofloat(curstrings[2]),strtofloat(curstrings[3])),vector(strtofloat(curstrings[4]),strtofloat(curstrings[5]),strtofloat(curstrings[6])),false,et,strtofloat(curstrings[8]),strtofloat(curstrings[9]),floatcolor(strtofloat(curstrings[10]),strtofloat(curstrings[11]),strtofloat(curstrings[12])),strtofloat(curstrings[13]));
end
else AddCustomVector(vector(strtofloat(curstrings[1]),strtofloat(curstrings[2]),strtofloat(curstrings[3])),vector(strtofloat(curstrings[4]),strtofloat(curstrings[5]),strtofloat(curstrings[6])),true,et,0,0,floatcolor(0,0,0),0);
end;//v
'p': begin//Плоскость
pltransp:=true;
if curstrings.Count>13 then if lowercase(curstrings[13])='n' then pltransp:=false;
if curstrings.Count>14 then begin
AddCustomPlane(vector(strtofloat(curstrings[1]),strtofloat(curstrings[2]),strtofloat(curstrings[3])),vector(strtofloat(curstrings[4]),strtofloat(curstrings[5]),strtofloat(curstrings[6])),vector(strtofloat(curstrings[7]),strtofloat(curstrings[8]),strtofloat(curstrings[9])),vector(strtofloat(curstrings[10]),strtofloat(curstrings[11]),strtofloat(curstrings[12])),false,floatcolor(strtofloat(curstrings[14]),strtofloat(curstrings[15]),strtofloat(curstrings[16])),strtofloat(curstrings[17]),pltransp);
end
else AddPlane(vector(strtofloat(curstrings[1]),strtofloat(curstrings[2]),strtofloat(curstrings[3])),vector(strtofloat(curstrings[4]),strtofloat(curstrings[5]),strtofloat(curstrings[6])),vector(strtofloat(curstrings[7]),strtofloat(curstrings[8]),strtofloat(curstrings[9])),vector(strtofloat(curstrings[10]),strtofloat(curstrings[11]),strtofloat(curstrings[12])),0,false);
end;//p
end;//case



for q:=0 to groups.Count-2 do begin
if not hasnums[q] then continue;
for w:=q+1 to groups.Count-1 do begin
if not hasnums[w] then continue;
if tpointgroup(groups[q]).Name<>tpointgroup(groups[w]).Name then continue;
if tpointgroup(groups[q]).GeneratorsCount<>tpointgroup(groups[w]).GeneratorsCount then continue;
curequal:=tpointgroup(groups[q]).MainOperationsEqual(tpointgroup(groups[w]));
if curequal then begin
//У двух групп одинаковые номера соответствия. Значит, одну из этих групп, у которой больше расхождение, следует удалить
if displvals[q]>displvals[w] then begin hasnums[q]:=false; break; end
else begin hasnums[w]:=false; continue; end;
end;//if
end;//next w
end;//next q


Здесь в браузере обрезаются строки, а так у меня в коде могут быть строки больше 500 символов.

Мои особенности стиля:
1) Нет стандартных пробелов в начале каждой строки.
2) Во многих местах стоят мелкие комментарии, например часто после end; — это может быть конец цикла, конец условного оператора и т.д., соответственно после end-а пишу //next x и т.п.
3) Довольно часто несколько операторов помещаются в одну строку, например какое-то действие и exit; или break;

Я одно время пытался перейти на стандартный стиль, но пришёл к выводу что мой собственный удобнее, по крайней мере для меня. Например, мне лень расставлять правильные пробелы в каждой строке; без этих пробелов возникает проблема, что иногда трудно различить, какому begin-у соответствует каждый end, и для решения этой проблемы после end-ов часто ставятся комментарии (next I, end if, end case и т.п.). Код, на мой взгляд, выглядит компактнее и удобнее для чтения, если во многих случаях в одну строку помещается много операторов (обычно вся такая строка выглядит как обособленный участок кода).


Пожалуйста не пинайте меня, профессиональные офисные программеры, лучше скажите – где-нибудь ещё может использоваться похожий стиль?
Нестандартный стиль быдлокодера
Я никогда не работал на работодателя, и у меня в ходе написания моей программы сформировался собственный стиль кода. Вот два фрагмента Delphi-кода моей программы:

case lowercase(curstrings[0])[1] of
'v': begin//Вектор
et:=vetOneArrow;
if curstrings.Count>7 then if lowercase(curstrings[7])='n' then et:=vetNoArrows;
if curstrings.Count>8 then begin
AddCustomVector(vector(strtofloat(curstrings[1]),strtofloat(curstrings[2]),strtofloat(curstrings[3])),vector(strtofloat(curstrings[4]),strtofloat(curstrings[5]),strtofloat(curstrings[6])),false,et,strtofloat(curstrings[8]),strtofloat(curstrings[9]),floatcolor(strtofloat(curstrings[10]),strtofloat(curstrings[11]),strtofloat(curstrings[12])),strtofloat(curstrings[13]));
end
else AddCustomVector(vector(strtofloat(curstrings[1]),strtofloat(curstrings[2]),strtofloat(curstrings[3])),vector(strtofloat(curstrings[4]),strtofloat(curstrings[5]),strtofloat(curstrings[6])),true,et,0,0,floatcolor(0,0,0),0);
end;//v
'p': begin//Плоскость
pltransp:=true;
if curstrings.Count>13 then if lowercase(curstrings[13])='n' then pltransp:=false;
if curstrings.Count>14 then begin
AddCustomPlane(vector(strtofloat(curstrings[1]),strtofloat(curstrings[2]),strtofloat(curstrings[3])),vector(strtofloat(curstrings[4]),strtofloat(curstrings[5]),strtofloat(curstrings[6])),vector(strtofloat(curstrings[7]),strtofloat(curstrings[8]),strtofloat(curstrings[9])),vector(strtofloat(curstrings[10]),strtofloat(curstrings[11]),strtofloat(curstrings[12])),false,floatcolor(strtofloat(curstrings[14]),strtofloat(curstrings[15]),strtofloat(curstrings[16])),strtofloat(curstrings[17]),pltransp);
end
else AddPlane(vector(strtofloat(curstrings[1]),strtofloat(curstrings[2]),strtofloat(curstrings[3])),vector(strtofloat(curstrings[4]),strtofloat(curstrings[5]),strtofloat(curstrings[6])),vector(strtofloat(curstrings[7]),strtofloat(curstrings[8]),strtofloat(curstrings[9])),vector(strtofloat(curstrings[10]),strtofloat(curstrings[11]),strtofloat(curstrings[12])),0,false);
end;//p
end;//case



for q:=0 to groups.Count-2 do begin
if not hasnums[q] then continue;
for w:=q+1 to groups.Count-1 do begin
if not hasnums[w] then continue;
if tpointgroup(groups[q]).Name<>tpointgroup(groups[w]).Name then continue;
if tpointgroup(groups[q]).GeneratorsCount<>tpointgroup(groups[w]).GeneratorsCount then continue;
curequal:=tpointgroup(groups[q]).MainOperationsEqual(tpointgroup(groups[w]));
if curequal then begin
//У двух групп одинаковые номера соответствия. Значит, одну из этих групп, у которой больше расхождение, следует удалить
if displvals[q]>displvals[w] then begin hasnums[q]:=false; break; end
else begin hasnums[w]:=false; continue; end;
end;//if
end;//next w
end;//next q


Здесь в браузере обрезаются строки, а так у меня в коде могут быть строки больше 500 символов.

Мои особенности стиля:
1) Нет стандартных пробелов в начале каждой строки.
2) Во многих местах стоят мелкие комментарии, например часто после end; — это может быть конец цикла, конец условного оператора и т.д., соответственно после end-а пишу //next x и т.п.
3) Довольно часто несколько операторов помещаются в одну строку, например какое-то действие и exit; или break;

Я одно время пытался перейти на стандартный стиль, но пришёл к выводу что мой собственный удобнее, по крайней мере для меня. Например, мне лень расставлять правильные пробелы в каждой строке; без этих пробелов возникает проблема, что иногда трудно различить, какому begin-у соответствует каждый end, и для решения этой проблемы после end-ов часто ставятся комментарии (next I, end if, end case и т.п.). Код, на мой взгляд, выглядит компактнее и удобнее для чтения, если во многих случаях в одну строку помещается много операторов (обычно вся такая строка выглядит как обособленный участок кода).


Пожалуйста не пинайте меня, профессиональные офисные программеры, лучше скажите – где-нибудь ещё может использоваться похожий стиль?

Убедительная просьба использовать специальные теги для оформления кода