SlideShare a Scribd company logo
1 of 58
г-нокод
  работает     трудный для
неправильно     понимания
     тяжело изменять
     или использовать
Э, слышь, а чо там
      насчёт
быдлокода?
Работать, солнце ещё высоко!
• корректность
• устойчивость: живучесть, целостность
• эффективность


спецификация
проверки
оптимизация
Одно мучение!
•   удобство сопровождения
•   гибкость
•   портируемость
•   возможность повторного использования
•   тестируемость


дизайн: абстракция, декомпозиция
Ни слова не понял!
• удобочитаемость
• понятность




code convention: наименование, форматирование,
  комментарии
дизайн: абстракция, декомпозиция
Ни слова не понял!
• «Пишите код исходя из того, что все
  программисты, которые будут сопровождать
  вашу программу, — склонные к насилию
  психопаты, знающие, где вы живёте.»

• «Каждый дурак может написать код, понятный
  компьютеру. Хорошие программисты пишут
  код, понятный людям.» – Мартин Фаулер

• «Можешь не писать – не пиши.» – Лев Толстой
Design patterns
спешат на помощь
•   Программирование методом
    копирования-вставки (Copy and

•
    paste programming)
    Спагетти-код (Spaghetti code)
                                    Антипаттерны
•   Жёсткое кодирование (Hard
    code)
•   Магические числа (Magic
    numbers)
•   Магическая кнопка (Magic
    pushbutton)
•   Поток лавы (Lava flow)
•   Паблик Морозов (Object orgy)
•   Объектная клоака (Object
    cesspool)
Запахи
    «Если что-то плохо пахнет, это что-то надо поменять.
                       - Мнение бабушки Бек, высказанное
            при обсуждении проблем детского воспитания»

•    дублирование кода
•    длинная функция
•    длинный список параметров
•    группы данных
•    комментарии
•    неочевидное поведение
•    непоследовательность
•    некорректное граничное поведение
•    непонятные намерения
•    магические числа
•    составные условия
•    отрицательные условия
•    множественная ответственность функции
•    скрытые временные привязки
наименование, форматирование

СТИЛЬ
for(xi=-aGraph/2-x0;xi<aGraph/2-x0;xi++){
    if((2*A*K*(xi-Cx)+2*B*(M*xi-Cy))*(2*A*K*(xi-Cx)+2*B*(M*xi-
Cy))-4*(A*K*K+B)*(A*(xi-Cx)*(xi-Cx)-Ck+B*(M*xi-Cy)*(M*xi-
Cy))>=0)
         yi=(-(2*A*K*(xi-Cx)+2*B*(M*xi-
Cy))+(int)(Math.sqrt((2*A*K*(xi-Cx)+2*B*(M*xi-Cy))*(2*A*K*(xi-
Cx)+2*B*(M*xi-Cy))-4*(A*K*K+B)*(A*(xi-Cx)*(xi-Cx)-Ck+B*(M*xi-
Cy)*(M*xi-Cy)))))/(2*(A*K*K+B));
    if (xi+xx>xGraph&&xi+xx<xGraph+aGraph&&-yi + yy>yGraph&&-yi
+ yy<yGraph+bGraph&&
             (2*A*K*(xi-Cx)+2*B*(M*xi-Cy))*(2*A*K*(xi-
Cx)+2*B*(M*xi-Cy))-4*(A*K*K+B)*(A*(xi-Cx)*(xi-Cx)-Ck+B*(M*xi-
Cy)*(M*xi-Cy))>=0) {
         g.drawLine(xi + xx, -yi + yy, xi + xx, -yi + yy);
         if(m==1)
             g.fillOval(xi + xx-1,-yi + yy-1,2,2);
    }
}


                            Java
/*----------------------------------------------------------------------------*/
double XzMinSec( double XBOCT, unsigned int OKP){ /*Gr(Ch).dG(dC)->Gr(Ch)MS.dS*/
signed int   min,   xz = XBOCT; XBOCT-=xz; min=60*XBOCT;       XBOCT=(XBOCT*60-min)*60;
if (XBOCT>=59.5) { unsigned char teg[32]; double n =       pow(10,OKP) * (XBOCT-min);
signed int z=n;n-=z; if(n>=0.5||n<=-0.5){ signed int x,y=0; sprintf(teg,"%d",z);
while(teg[y]!='0') y++;    z=1; for( x=0; x<OKP; x++ )    if ( teg[--y]!='9' ) z=0;
if(z==1) if(abs(min)==59) if(min<0) XBOCT=-4100; else XBOCT=4100; else if(min<0)
XBOCT=-100; else XBOCT=100; }}       return   xz * 10000   +     min * 100   +   XBOCT; }
/*----------------------------------------------------------------------------*/




                                         C
int p,k,l,i,j,d,q,R,t,r;
 S1:     s=0; p=1;
 S2:     if (s==0) { i=1; j=n; k=n; l=2*n+1; }
         if (s==1) { i=n+1; j=2*n; k=0; l=n+1; }
         d=1; q=p; r=p;
 S3:     if (x[i]>K>x[j]->K) goto S8;
 S4:     k=k+d; x[k]=x[i]; c[k]=c[i];
 S5:     i+=1; q-=1; if (q>0) goto S3;
 S6:     k+=d; if (k==l) goto S13; else x[k]=x[j];c[k]=c[j];
 S7:     j-=1; r-=1; if (r>0) goto S6; else goto S12;
 S8:     k+=d; x[k]=x[j]; c[k]=c[j];
 S9:     j-=1; r-=1; if (r>0) goto S3;
 S10:    k+=d; if (k==l) goto S13; else x[k]=x[i];c[k]=c[i];
 S11:    i+=1; q-=1; if (q>0) goto S10;
 S12:    q=p; r=p; d=-d; t=k; k=l; l=t; if (j-i<p) goto S10; else goto S3;
 S13:    p+=p; if (p<n) { s=1-s; goto S2; }
         if (s==0) for (t=1; t<=n; t+=1) { x[t]=x[t+n];c[t]=c[t+n] }




                                        C++
[TestMethod]
public void OnMouseMoveFunctionalTestVerticalSplitIndicatorExactlyOnTheLeftBorderOfTheFirstCellOnTheTheWeekViewAndGroupByResourceAndTwoResources()
{
}




                                                                            C#
for J1:=0 to Length(wArTypCoil[JJ])-1 do begin
      with wArTypCoil[JJ][J1] do begin
      with cTyp_coil do begin NRow:=J1+1;NTab:=II_Tabl+4; Itm5:=II;StrN:=2230;mEd:=true;Lev:=2;end;P5;ArP5[IJ5]:=@cTyp_coil;inc(IJ5);inc(II);
      with cD_in do begin NRow:=J1+1;NTab:=II_Tabl+4; Itm1:=II; StrN:=2231;mEd:=true;NPos:=1;Lev:=2;end;P1;ArP1[IJ1]:=@cD_in;inc(IJ1);inc(II);
       with cTyp_pr do begin NRow:=J1+1;NTab:=II_Tabl+4;
Itm6:=II;NTypChs1:=1;StrN:=2232;mEd:=true;Lev:=2;end;P6;ArP6[IJ6]:=@cTyp_Pr;inc(IJ6);inc(II);
      with cRad_str do begin NRow:=J1+1;NTab:=II_Tabl+4; Itm5:=II; StrN:=2233;mEd:=true;Lev:=2;end;P5;ArP5[IJ5]:=@cRad_str;inc(IJ5);inc(II);
       with cPW_coil_rad do begin NRow:=J1+1;NTab:=II_Tabl+4; Itm2:=II;
StrN:=2235;mEd:=true;Lev:=2;end;P2;ArP2[IJ2]:=@cPW_coil_rad;inc(IJ2);inc(II);
       with cPW_coil_os do begin NRow:=J1+1;NTab:=II_Tabl+4; Itm2:=II;
StrN:=2248;mEd:=true;Lev:=2;end;P2;ArP2[IJ2]:=@cPW_coil_os;inc(IJ2);inc(II);
       with cRat_cur do begin NRow:=J1+1;NTab:=II_Tabl+4; Itm1:=II;
StrN:=2236;mEd:=true;NPos:=2;Lev:=2;end;P1;ArP1[IJ1]:=@cRat_cur;inc(IJ1);inc(II);
       with cTrn_coil do begin NRow:=J1+1;NTab:=II_Tabl+4; Itm1:=II;
StrN:=2237;mEd:=true;NPos:=3;Lev:=2;end;P1;ArP1[IJ1]:=@cTrn_coil;inc(IJ1);inc(II);
       with cRad_dim do begin NRow:=J1+1;NTab:=II_Tabl+4; Itm1:=II;
StrN:=2271;mEd:=true;NPos:=3;Lev:=2;end;P1;ArP1[IJ1]:=@cRad_dim;inc(IJ1);inc(II);
      //...
      end;
     end;
     with wArNconcentr[JJ] do begin NRow:=1;NTab:=II_Tabl+1; Itm2:=II;
StrN:=2279;mEd:=false;Lev:=1;end;P2;ArP2[IJ2]:=@wArNconcentr[JJ];inc(IJ2);inc(II);
     with wArM_c[JJ] do begin NRow:=1;NTab:=II_Tabl+1; Itm3:=II;
StrN:=2316;mEd:=true;NPos:=0;Lev:=1;end;P3;ArP3[IJ3]:=@wArM_c[JJ];inc(IJ3);inc(II);
 //    with wArNumZoneOtvod_c[JJ] do begin NTab:=II_Tabl+1; Itm3:=II;
StrN:=2317;mEd:=true;NPos:=0;Lev:=1;end;P3;ArP3[IJ3]:=@wArNumZoneOtvod_c[JJ];inc(IJ3);inc(II);
 //    with wArNumZoneVdod_c[JJ] do begin NTab:=II_Tabl+1; Itm3:=II;
StrN:=2318;mEd:=true;NPos:=0;Lev:=1;end;P3;ArP3[IJ3]:=@wArNumZoneVdod_c[JJ];inc(IJ3);inc(II);
 //    with wArNxod_c[JJ] do begin NTab:=II_Tabl+1; Itm3:=II;
StrN:=2319;mEd:=true;NPos:=0;Lev:=1;end;P3;ArP3[IJ3]:=@wArNxod_c[JJ];inc(IJ3);inc(II);
 //    with wArNcur_c[JJ] do begin NTab:=II_Tabl+1; Itm3:=II;
StrN:=2320;mEd:=true;NPos:=0;Lev:=1;end;P3;ArP3[IJ3]:=@wArNcur_c[JJ];inc(IJ3);inc(II);
 //    with wArParam_c[JJ] do begin NTab:=II_Tabl+1; Itm3:=II;
StrN:=2321;mEd:=true;NPos:=0;Lev:=1;end;P3;ArP3[IJ3]:=@wArParam_c[JJ];inc(IJ3);inc(II);
//     with wArSw_c[JJ] do begin NTab:=II_Tabl+1; Itm3:=II; StrN:=2322;mEd:=true;NPos:=1;Lev:=1;end;P3;ArP3[IJ3]:=@wArSw_c[JJ];inc(IJ3);inc(II);
with wArNumKolc_top_c[JJ] do begin NRow:=1;NTab:=II_Tabl+1; ; Itm3:=II;
StrN:=2328;mEd:=true;NPos:=0;Lev:=1;end;P3;ArP3[IJ3]:=@wArNumKolc_top_c[JJ];inc(IJ3);inc(II);
     with wArNumKolc_bot_c[JJ] do begin NRow:=1;NTab:=II_Tabl+1; Itm3:=II;
StrN:=2329;mEd:=true;NPos:=0;Lev:=1;end;P3;ArP3[IJ3]:=@wArNumKolc_bot_c[JJ];inc(IJ3);inc(II);
     with wArNreek_ar[JJ] do begin NRow:=1;NTab:=II_Tabl+3; Itm3:=II;
StrN:=2313;mEd:=true;NPos:=0;Lev:=1;end;P3;ArP3[IJ3]:=@wArNreek_ar[JJ];inc(IJ3);inc(II);
     with wArGshreik_ar[JJ] do begin NRow:=1;NTab:=II_Tabl+3; Itm3:=II;
StrN:=2314;mEd:=true;NPos:=2;Lev:=1;end;P3;ArP3[IJ3]:=@wArGshreik_ar[JJ];inc(IJ3);inc(II);
     with wArGtreik_ar[JJ] do begin NRow:=1;NTab:=II_Tabl+3; Itm3:=II;
StrN:=2315;mEd:=true;NPos:=2;Lev:=1;end;P3;ArP3[IJ3]:=@wArGtreik_ar[JJ];inc(IJ3);inc(II);
     with wArShreik_ar[JJ] do begin NRow:=1;NTab:=II_Tabl+3; Itm3:=II;
StrN:=2404;mEd:=true;NPos:=2;Lev:=1;end;P3;ArP3[IJ3]:=@wArShreik_ar[JJ];inc(IJ3);inc(II);
    with wArNpr[JJ] do begin NRow:=1;NTab:=II_Tabl+3; Itm2:=II; StrN:=2369;mEd:=true;Lev:=1;end;P2;ArP2[IJ2]:=@wArNpr[JJ];inc(IJ2);inc(II);
     with wArShpr[JJ] do begin NRow:=1;NTab:=II_Tabl+3; Itm1:=II;
StrN:=2245;mEd:=true;NPos:=2;Lev:=1;end;P1;ArP1[IJ1]:=@wArShpr[JJ];inc(IJ1);inc(II);


     with wArRadZaz_w[JJ] do begin NRow:=1;NTab:=II_Tabl+1; Itm3:=II;
StrN:=2323;mEd:=true;NPos:=2;Lev:=1;end;P3;ArP3[IJ3]:=@wArRadZaz_w[JJ];inc(IJ3);inc(II);
     with wArStr_os_w[JJ] do begin NRow:=1;NTab:=II_Tabl+1; Itm1:=II;
StrN:=2324;mEd:=true;NPos:=2;Lev:=1;end;P1;ArP1[IJ1]:=@wArStr_os_w[JJ];inc(IJ1);inc(II);
     with wArPrizn_radop_w[JJ] do begin NRow:=1;NTab:=II_Tabl+1;
Itm4:=II;NTypChs:=0;StrN:=2325;mEd:=true;Lev:=1;end;P4;ArP4[IJ4]:=@wArPrizn_radop_w[JJ];inc(IJ4);inc(II);


     with wArAxStr[JJ].awAxialStr do begin NRow:=1;NTab:=II_Tabl+5; Itm5:=II;
StrN:=2243;mEd:=true;Lev:=1;end;P5;ArP5[IJ5]:=@wArAxStr[JJ].awAxialStr;inc(IJ5);inc(II);
     with wArYokeRast_bot_w[JJ] do begin NRow:=1;NTab:=II_Tabl+2; Itm1:=II;
StrN:=2265;mEd:=true;NPos:=2;Lev:=1;end;P1;ArP1[IJ1]:=@wArYokeRast_bot_w[JJ];inc(IJ1);inc(II);
     with wArElectrH_w[JJ] do begin NRow:=1;NTab:=II_Tabl+2; Itm1:=II;
StrN:=2266;mEd:=true;NPos:=2;Lev:=1;end;P1;ArP1[IJ1]:=@wArElectrH_w[JJ];inc(IJ1);inc(II);
     with wArElectr_centre[JJ] do begin NRow:=1;NTab:=II_Tabl+2; Itm1:=II;
StrN:=2395;mEd:=false;NPos:=1;Lev:=1;end;P1;ArP1[IJ1]:=@wArElectr_centre[JJ];inc(IJ1);inc(II);
     with wArKanBottom[JJ] do begin NRow:=1;NTab:=II_Tabl+2; Itm3:=II;
StrN:=2341;mEd:=true;NPos:=2;Lev:=1;end;P3;ArP3[IJ3]:=@wArKanBottom[JJ];inc(IJ3);inc(II);
     with wArKanTop[JJ] do begin NRow:=1;NTab:=II_Tabl+2; Itm3:=II;
StrN:=2342;mEd:=true;NPos:=2;Lev:=1;end;P3;ArP3[IJ3]:=@wArKanTop[JJ];inc(IJ3);inc(II);


     with wArComIsZone[JJ] do begin NRow:=1;NTab:=II_Tabl+6; Itm1:=II;
StrN:=2339;mEd:=true;NPos:=2;Lev:=1;end;P1;ArP1[IJ1]:=@wArComIsZone[JJ];inc(IJ1);inc(II);
     with wArMprIsZone[JJ] do begin NRow:=1;NTab:=II_Tabl+6; Itm1:=II;
StrN:=2340;mEd:=true;NPos:=2;Lev:=1;end;P1;ArP1[IJ1]:=@wArMprIsZone[JJ];inc(IJ1);inc(II);
     with wArKus_pr[JJ] do begin NRow:=1;NTab:=II_Tabl+7; Itm1:=II;
StrN:=2249;mEd:=true;NPos:=3;Lev:=1;end;P1;ArP1[IJ1]:=@wArKus_pr[JJ];inc(IJ1);inc(II);
     with wArKus_bm_is[JJ] do begin NRow:=1;NTab:=II_Tabl+7; Itm1:=II;
StrN:=2250;mEd:=true;NPos:=3;Lev:=1;end;P1;ArP1[IJ1]:=@wArKus_bm_is[JJ];inc(IJ1);inc(II);
with wArKus_ob_is[JJ] do begin NRow:=1;NTab:=II_Tabl+7; Itm1:=II;
StrN:=2251;mEd:=true;NPos:=3;Lev:=1;end;P1;ArP1[IJ1]:=@wArKus_ob_is[JJ];inc(IJ1);inc(II);
     with wArKus_mpr_is[JJ] do begin NRow:=1;NTab:=II_Tabl+7; Itm1:=II;
StrN:=2252;mEd:=true;NPos:=3;Lev:=1;end;P1;ArP1[IJ1]:=@wArKus_mpr_is[JJ];inc(IJ1);inc(II);
 //    with wArKus_msl_is[JJ] do begin NRow:=1;NTab:=II_Tabl+7; Itm1:=II;
StrN:=2253;mEd:=true;NPos:=3;Lev:=1;end;P1;ArP1[IJ1]:=@wArKus_msl_is[JJ];inc(IJ1);inc(II);
     with wArTypIsol[JJ] do begin NRow:=1;NTab:=II_Tabl+6;
Itm6:=II;NTypChs1:=2;StrN:=2254;mEd:=true;Lev:=1;end;P6;ArP6[IJ6]:=@wArTypIsol[JJ];inc(IJ6);inc(II);


     with wArEndIsol_bot[JJ] do begin NRow:=1;NTab:=II_Tabl+6; Itm3:=II;
StrN:=2258;mEd:=true;NPos:=1;Lev:=1;end;P3;ArP3[IJ3]:=@wArEndIsol_bot[JJ];inc(IJ3);inc(II);
     with wArEndIsol_top[JJ] do begin NRow:=1;NTab:=II_Tabl+6; Itm3:=II;
StrN:=2259;mEd:=true;NPos:=1;Lev:=1;end;P3;ArP3[IJ3]:=@wArEndIsol_top[JJ];inc(IJ3);inc(II);
     with wArTypMat_end_top_w[JJ] do begin NRow:=1;NTab:=II_Tabl+6;
Itm6:=II;NTypChs1:=3;StrN:=2326;mEd:=true;Lev:=1;end;P6;ArP6[IJ6]:=@wArTypMat_end_top_w[JJ];inc(IJ6);inc(II);
     with wArTypMat_end_bot_w[JJ] do begin NRow:=1;NTab:=II_Tabl+6;
Itm6:=II;NTypChs1:=3;StrN:=2327;mEd:=true;Lev:=1;end;P6;ArP6[IJ6]:=@wArTypMat_end_bot_w[JJ];inc(IJ6);inc(II);
     with wArNst_top_isol[JJ] do begin NRow:=1;NTab:=II_Tabl+6; Itm3:=II;
StrN:=2332;mEd:=true;NPos:=0;Lev:=1;end;P3;ArP3[IJ3]:=@wArNst_top_isol[JJ];inc(IJ3);inc(II);
     with wArNst_bot_isol[JJ] do begin NRow:=1;NTab:=II_Tabl+6; Itm3:=II;
StrN:=2333;mEd:=true;NPos:=0;Lev:=1;end;P3;ArP3[IJ3]:=@wArNst_bot_isol[JJ];inc(IJ3);inc(II);
     with wArSh_top_isol[JJ] do begin NRow:=1;NTab:=II_Tabl+6; Itm3:=II;
StrN:=2334;mEd:=true;NPos:=2;Lev:=1;end;P3;ArP3[IJ3]:=@wArSh_top_isol[JJ];inc(IJ3);inc(II);
     with wArSh_bot_isol[JJ] do begin NRow:=1;NTab:=II_Tabl+6; Itm3:=II;
StrN:=2335;mEd:=true;NPos:=2;Lev:=1;end;P3;ArP3[IJ3]:=@wArSh_bot_isol[JJ];inc(IJ3);inc(II);
     with wArRad_top_isol[JJ] do begin NRow:=1;NTab:=II_Tabl+6; Itm3:=II;
StrN:=2336;mEd:=true;NPos:=2;Lev:=1;end;P3;ArP3[IJ3]:=@wArRad_top_isol[JJ];inc(IJ3);inc(II);
     with wArRad_bot_isol[JJ] do begin NRow:=1;NTab:=II_Tabl+6; Itm3:=II;
StrN:=2337;mEd:=true;NPos:=2;Lev:=1;end;P3;ArP3[IJ3]:=@wArRad_bot_isol[JJ];inc(IJ3);inc(II);


 //    with wArPriznZakr[JJ] do begin NRow:=1;NTab:=II_Tabl+6; Itm3:=II;
StrN:=2338;mEd:=true;NPos:=0;Lev:=1;end;P3;ArP3[IJ3]:=@wArPriznZakr[JJ];inc(IJ3);inc(II);
    //....
   end;




                                                             Delphi
<?php
if ($_GET['code1c_Connected']=='') {
  if ($_GET['type']!="shop") {
    if ($_GET['type']!="lk") {
      if ($_GET['type']!="home") {
        if ($_GET['type']!="login_reg") {
          if ($_GET['type']!="reg_quick") {
            if ($_GET['type']!="order") {
              if ($_GET['type']!="order_g") {
                if ($GET['type']!="payment") {
                  if ($_GET['type']!='contakts') {
                    if ($_GET['type']!='contact_kiev_volinskaya47') {
                      if ($_GET['type']!='contact_kiev_lesi_ukrainki15') {
                        if ($_GET['type']!='contact_kiev_vozduhoflotskiy17') {
                          if ($_GET['type']!='contact_kiev_malinovskogo12') {
                            if ($_GET['type']!='contact_kiev_solomenskaya16') {
                               if ($_GET['type']!='contact_kiev_yakuba2') {
                                 if ($_GET['type']!='contact_odessa_tiraspolskaya35') {
                                   if ($_GET['type']!='contact_odessa') {
                                     if ($_GET['type']!='contact_kharkov') {
                                       if ($_GET['type']!='contact_kharkov_fonvizena18') {
                                         if ($_GET['type']!='contact_dnepropetrovsk') {
                                           if ($_GET['type']!='contact_dnepropetrovsk_suvorova14') {
                                             if ($_GET['type']!='contact_donetsk') {
                                               if ($_GET['type']!='contact_donetsk_shorsa24') {
                                                 if ($_GET['type']!='contact_zaporozhye') {
                                                   if ($_GET['type']!='contact_zaporozhye_borodinskaya52') {
                                                     if ($_GET['type']!='contact_sevastopol') {
                                                       if ($_GET['type']!='contact_sevastopol_vosstavshuh4') {
?>




                                                    PHP
сравнение с bool

УСЛОВНАЯ ЛОГИКА
if (result == true)
    return true;
else
    return result;




                  C++
if (var == true)
   return true;
else if (var == false)
   return false;
else
   return (!false && !true);




                   C#
public boolean isEnabled(ClassX obj) {
    boolean result = false;
    if (obj.isEnabled() == true)
        result = true;
    else
        result = false;
    return result;
}




                         Java
if (a == null == false) {
}




                   C#
if (string.IsNullOrEmpty(email) != false)




                   C#
<?php
$int = (int) $int;
if (is_int($int)) { // на всякий случай
     // ...
}
?>




                     PHP
bool IsBukva(char symbol)
{
    switch(symbol)
    {
        case'a':return 1;break;
        case'b':return 1;break;
        case'c':return 1;break;
        case'd':return 1;break;
        case'e':return 1;break;
        case'f':return 1;break;
        case'g':return 1;break;
        case'h':return 1;break;
        case'i':return 1;break;
        case'j':return 1;break;
        case'k':return 1;break;
        case'l':return 1;break;
        case'm':return 1;break;
        case'n':return 1;break;
       case'o':return 1;break;
       case'p':return 1;break;
       case'q':return 1;break;
case'r':return 1;break;
case's':return 1;break;
case't':return 1;break;
case'u':return 1;break;
case'v':return 1;break;
case'w':return 1;break;
case'x':return 1;break;
case'y':return 1;break;
case'z':return 1;break;
case'A':return 1;break;
case'B':return 1;break;
case'C':return 1;break;
case'D':return 1;break;
case'E':return 1;break;
case'F':return 1;break;
case'G':return 1;break;
case'H':return 1;break;
case'I':return 1;break;
case'J':return 1;break;
case'K':return 1;break;
case'L':return 1;break;
        case'M':return 1;break;
        case'N':return 1;break;
        case'O':return 1;break;
        case'P':return 1;break;
        case'Q':return 1;break;
        case'R':return 1;break;
        case'S':return 1;break;
        case'T':return 1;break;
        case'U':return 1;break;
        case'V':return 1;break;
        case'W':return 1;break;
        case'X':return 1;break;
        case'Y':return 1;break;
        case'Z':return 1;break;
        default:return 0;
    }
}



                                  C++
неуместное использование строк вместо других типов

STRINGLY-TYPED CODE
boolean is_admin;
// something
Boolean b = new Boolean( is_admin );
if( b.toString().length() == 4 ) {
    // something...
}
// something




                     Java
if(
      (s.Find("/0")!=-1)||
      (s.Find("Log10(-")!=-1)||
      (s.Find("Log10(0")!=-1))//stupid user error
{
}




                       C++
boolean IsWeekStartsMonday() {
if (strDay.equalsTo("Russia") ||
    strDay.equalsTo("Ukraina") || ....)
    return true;
else
    return false;
}

void SomeFunction(){
....
if (IsWeekStartsMonday())
    startDay = java.util.Calendar.getFirstDayOfWeek();
else
    startDay = java.util.Calendar.SUNDAY;
}




                            Java
Если (ШаблонПроводки.Наименование = "Распределять
   пропорционально расчетной базе")
Тогда
   МожноПроводить = 0;
    Сообщить(НазваниеДока+"неверно указан шаблон
проводки", "!");




                           1С
ошибки в обработке ошибок

ОБРАБОТКА ОШИБОК
try
{
      Folder folder = openFolder();
      processFolder(folder);
}
catch (MessagingException ex)
{
    Folder folder = openFolder();
    processFolder(folder);
}




                       Java
try
{
    if (field[i][j + 1] == 0) {
        field[i][j + 1] = 2;
        fifo.add(new Cell(i, j + 1));
    }
} catch (ArrayIndexOutOfBoundsException ignored) {
}




                        Java
логика предметной области в презентационном слое

“SMART” UI
if ((textBox2.Text != "") && (textBox3.Text != "") && (Convert.ToInt32(textBox2.Text) <
Convert.ToInt32(textBox3.Text)))
{
    int наименование = 0;
    string несозданы = null;
    int количество = 0;
    bool накладнаясоздана = false;
    int накладная = 0;
    наименование = Convert.ToInt32(comboBox1.SelectedValue);
    string наименованиест = наименование.ToString();
    for (int i = Convert.ToInt32(textBox2.Text); i < Convert.ToInt32(textBox3.Text) + 1; i++) {
        bool одинаково = false;
        foreach (СкладDataSet.ПоступлениеRow row in складDataSet.Поступление.Rows) {
            if ((i == row.__) && (наименованиест == row.Наименование)) {
                одинаково = true;
                несозданы += " " + i.ToString();
                yes = 2;
            }
        }
        if (одинаково == false) {
            складDataSet.Состояние.AddСостояниеRow(наименование.ToString(), i.ToString(), "2", "1", "");
            if (накладнаясоздана == false)
            ...
}
else
    MessageBox.Show("Поле пустое, введите номер прибора!!!", "Внимательнее!", MessageBoxButtons.OK,
MessageBoxIcon.Exclamation);




                                                 C#
Private Sub Label10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Label10.Click

   RadioButton1.Checked = False
   RadioButton2.Checked = False
   RadioButton3.Checked = False
   RadioButton4.Checked = False
   RadioButton5.Checked = False
   RadioButton6.Checked = False
   RadioButton7.Checked = False
   RadioButton8.Checked = False
   RadioButton9.Checked = False
   RadioButton10.Checked = False
   RadioButton11.Checked = False
   RadioButton12.Checked = False
   RadioButton13.Checked = False
   RadioButton14.Checked = False
   RadioButton15.Checked = False
   RadioButton16.Checked = False
   RadioButton17.Checked = False
   RadioButton18.Checked = False
   RadioButton19.Checked = False
   RadioButton20.Checked = False
   RadioButton21.Checked = False
   RadioButton22.Checked = False
   RadioButton23.Checked = False
   RadioButton24.Checked = False
   RadioButton25.Checked = False
   RadioButton26.Checked = False
   RadioButton27.Checked = False
RadioButton28.Checked   =   False
   RadioButton29.Checked   =   False
   RadioButton30.Checked   =   False
   RadioButton31.Checked   =   False
   RadioButton33.Checked   =   False
   RadioButton34.Checked   =   False
   RadioButton35.Checked   =   False
   RadioButton36.Checked   =   False
   RadioButton37.Checked   =   False
   RadioButton38.Checked   =   False
   RadioButton39.Checked   =   False
   RadioButton40.Checked   =   False
   RadioButton41.Checked   =   False
   RadioButton44.Checked   =   False

    Button1.Enabled = True
    Panel5.Visible = True
    Panel7.Visible = False
    Panel3.Visible = False
    Panel4.Visible = False
    Panel6.Visible = False
    Panel8.Visible = False
    Panel10.Visible = False
    Panel2.Visible = False
    Panel14.Visible = False
    Panel16.Visible = False
    Panel1.Visible = False
End Sub




                                       VisualBasic
<?php
$query = "SELECT `id`, IF(`nalichie` = 0,
'0.png', '1.png') AS `nalichieimg`, `cena` FROM
`buttons`";
//не достойные внимания строки опущены.
echo '<img src="'.$row['nalichieimg'].'">';
?>




                     PHP
идиотизм в веб-разработке

PHP-STYLE
<?php
if ( strlen( $string ) > 3 ) echo "Имя должно содержать не
больше 3-х символов";
elseif ( strlen( $string ) < 3 ) echo "Имя должно содержать не
менее 3-х символов";
else echo "Вы корректно ввели имя"
?>




                            PHP
<?php
@$captcha = $_POST['captcha'] or die("Убедитесь, что вы
ввели защитный код!$back");
 $num = $_POST['num'];


 if($captcha != $num)
 {
     echo "Вы ввели неправильный защитный код!$back";
     exit;
 }
?>




                            PHP
да здравствует код бессмысленный и беспощадный

РАК МОЗГА
public static void brute(long diap)
{
n = 68491; //задаем некое число
NewMessage("w8. Bruteforce working..."); //вызываем событие
for (int i = 0; i < diap; i++) //мутим цикл
{
d = i;
string brute = Convert.ToString(bug.Equals(n, d)); //сравниваем и
возвращаем результат в строку
if (brute == "True")
{
BruteComplete(d.ToString()); //вызываем событие при удачном
переборе
break;
}
}
if (ok == false)
{
NewMessage("Brete Failed:(");
}
}



                               C#
<?php
for($i=0;$i<10;$i++) {
        for($i=0;$i<5;$i++) {
              echo 'Какого х** зацикливает!!!!!!!';
        }
}
?>




                           PHP
int SUM(int A, int B)
{
       if (0 == A) return B;
       if (0 == B) return A;


       return (1 + (SUM(A, B - 1) + SUM(A - 1, B)) / 2);
}




                               C++
fm.bottom += ( tempBottom - fm.bottom );
fm.descent += ( tempDescent - fm.descent );
fm.ascent += ( tempAscent - fm.ascent );
fm.top += ( tempTop - fm.top );




                     Java
<?php
define("_WINDOWS_",
file_exists("c:autoexec.bat") ? TRUE : FALSE);
?>




                     PHP
function int2float($i) {
    return (string) $i . '.00';
}




                  PHP
if (file == null)
    System.out.println("File " +
file.getName() + " is null.");




                  Java
<?php
function get_rand_symbols($numeric)
{
    if($numeric ==   '1') { return 'п'; }   if($numeric ==   '2') { return 'р'; }
    if($numeric ==   '3') { return 'о'; }   if($numeric ==   '4') { return 'к'; }
    if($numeric ==   '5') { return 'е'; }   if($numeric ==   '6') { return 'а'; }
    if($numeric ==   '7') { return 'д'; }   if($numeric ==   '8') { return 'е'; }
    if($numeric ==   '9') { return 'й'; }   if($numeric == '10') { return 'в'; }
    if($numeric == '11') { return 'м'; }    if($numeric == '12') { return 'л'; }
    if($numeric == '13') { return 'с'; }    if($numeric == '14') { return 'т'; }
    if($numeric == '15') { return 'у'; }    if($numeric == '16') { return 'н'; }
    if($numeric == '17') { return 'ш'; }    if($numeric == '18') { return 'х'; }
    if($numeric == '19') { return 'щ'; }    if($numeric == '20') { return 'ъ'; }
    if($numeric == '21') { return 'ю'; }    if($numeric == '22') { return 'б'; }
    if($numeric == '23') { return 'я'; }    if($numeric == '24') { return 'ц'; }
    if($numeric == '25') { return 'ч'; }    if($numeric == '26') { return 'ё'; }
    if($numeric == '27') { return 'э'; }    if($numeric == '28') { return 'з'; }
    if($numeric == '29') { return 'и'; }    if($numeric == '30') { return 'ы'; }
}
function all_rand()
{
     return
     get_rand_symbols(rand(1, 30)).get_rand_symbols(rand(1, 30)).
     get_rand_symbols(rand(1, 30)).get_rand_symbols(rand(1, 30)).
     get_rand_symbols(rand(1, 30)).get_rand_symbols(rand(1, 30)).
     get_rand_symbols(rand(1, 30)).get_rand_symbols(rand(1, 30)).
     get_rand_symbols(rand(1, 30)).get_rand_symbols(rand(1, 30)).
     get_rand_symbols(rand(1, 30)).get_rand_symbols(rand(1, 30)).
     get_rand_symbols(rand(1, 30)).get_rand_symbols(rand(1, 30)).
     get_rand_symbols(rand(1, 30)).get_rand_symbols(rand(1, 30)).
     get_rand_symbols(rand(1, 30)).get_rand_symbols(rand(1, 30)).
     get_rand_symbols(rand(1, 30)).get_rand_symbols(rand(1, 30)).
     get_rand_symbols(rand(1, 30)).get_rand_symbols(rand(1, 30)).
     get_rand_symbols(rand(1, 30)).get_rand_symbols(rand(1, 30));
}
?>




                                     PHP
#define TRUE FALSE
#define private public




              C++
Говнокод

More Related Content

Featured

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
ThinkNow
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 

Featured (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Говнокод

  • 1.
  • 2. г-нокод работает трудный для неправильно понимания тяжело изменять или использовать
  • 3. Э, слышь, а чо там насчёт быдлокода?
  • 4. Работать, солнце ещё высоко! • корректность • устойчивость: живучесть, целостность • эффективность спецификация проверки оптимизация
  • 5. Одно мучение! • удобство сопровождения • гибкость • портируемость • возможность повторного использования • тестируемость дизайн: абстракция, декомпозиция
  • 6. Ни слова не понял! • удобочитаемость • понятность code convention: наименование, форматирование, комментарии дизайн: абстракция, декомпозиция
  • 7. Ни слова не понял! • «Пишите код исходя из того, что все программисты, которые будут сопровождать вашу программу, — склонные к насилию психопаты, знающие, где вы живёте.» • «Каждый дурак может написать код, понятный компьютеру. Хорошие программисты пишут код, понятный людям.» – Мартин Фаулер • «Можешь не писать – не пиши.» – Лев Толстой
  • 9.
  • 10. Программирование методом копирования-вставки (Copy and • paste programming) Спагетти-код (Spaghetti code) Антипаттерны • Жёсткое кодирование (Hard code) • Магические числа (Magic numbers) • Магическая кнопка (Magic pushbutton) • Поток лавы (Lava flow) • Паблик Морозов (Object orgy) • Объектная клоака (Object cesspool)
  • 11. Запахи «Если что-то плохо пахнет, это что-то надо поменять. - Мнение бабушки Бек, высказанное при обсуждении проблем детского воспитания» • дублирование кода • длинная функция • длинный список параметров • группы данных • комментарии • неочевидное поведение • непоследовательность • некорректное граничное поведение • непонятные намерения • магические числа • составные условия • отрицательные условия • множественная ответственность функции • скрытые временные привязки
  • 13. for(xi=-aGraph/2-x0;xi<aGraph/2-x0;xi++){ if((2*A*K*(xi-Cx)+2*B*(M*xi-Cy))*(2*A*K*(xi-Cx)+2*B*(M*xi- Cy))-4*(A*K*K+B)*(A*(xi-Cx)*(xi-Cx)-Ck+B*(M*xi-Cy)*(M*xi- Cy))>=0) yi=(-(2*A*K*(xi-Cx)+2*B*(M*xi- Cy))+(int)(Math.sqrt((2*A*K*(xi-Cx)+2*B*(M*xi-Cy))*(2*A*K*(xi- Cx)+2*B*(M*xi-Cy))-4*(A*K*K+B)*(A*(xi-Cx)*(xi-Cx)-Ck+B*(M*xi- Cy)*(M*xi-Cy)))))/(2*(A*K*K+B)); if (xi+xx>xGraph&&xi+xx<xGraph+aGraph&&-yi + yy>yGraph&&-yi + yy<yGraph+bGraph&& (2*A*K*(xi-Cx)+2*B*(M*xi-Cy))*(2*A*K*(xi- Cx)+2*B*(M*xi-Cy))-4*(A*K*K+B)*(A*(xi-Cx)*(xi-Cx)-Ck+B*(M*xi- Cy)*(M*xi-Cy))>=0) { g.drawLine(xi + xx, -yi + yy, xi + xx, -yi + yy); if(m==1) g.fillOval(xi + xx-1,-yi + yy-1,2,2); } } Java
  • 14. /*----------------------------------------------------------------------------*/ double XzMinSec( double XBOCT, unsigned int OKP){ /*Gr(Ch).dG(dC)->Gr(Ch)MS.dS*/ signed int min, xz = XBOCT; XBOCT-=xz; min=60*XBOCT; XBOCT=(XBOCT*60-min)*60; if (XBOCT>=59.5) { unsigned char teg[32]; double n = pow(10,OKP) * (XBOCT-min); signed int z=n;n-=z; if(n>=0.5||n<=-0.5){ signed int x,y=0; sprintf(teg,"%d",z); while(teg[y]!='0') y++; z=1; for( x=0; x<OKP; x++ ) if ( teg[--y]!='9' ) z=0; if(z==1) if(abs(min)==59) if(min<0) XBOCT=-4100; else XBOCT=4100; else if(min<0) XBOCT=-100; else XBOCT=100; }} return xz * 10000 + min * 100 + XBOCT; } /*----------------------------------------------------------------------------*/ C
  • 15. int p,k,l,i,j,d,q,R,t,r; S1: s=0; p=1; S2: if (s==0) { i=1; j=n; k=n; l=2*n+1; } if (s==1) { i=n+1; j=2*n; k=0; l=n+1; } d=1; q=p; r=p; S3: if (x[i]>K>x[j]->K) goto S8; S4: k=k+d; x[k]=x[i]; c[k]=c[i]; S5: i+=1; q-=1; if (q>0) goto S3; S6: k+=d; if (k==l) goto S13; else x[k]=x[j];c[k]=c[j]; S7: j-=1; r-=1; if (r>0) goto S6; else goto S12; S8: k+=d; x[k]=x[j]; c[k]=c[j]; S9: j-=1; r-=1; if (r>0) goto S3; S10: k+=d; if (k==l) goto S13; else x[k]=x[i];c[k]=c[i]; S11: i+=1; q-=1; if (q>0) goto S10; S12: q=p; r=p; d=-d; t=k; k=l; l=t; if (j-i<p) goto S10; else goto S3; S13: p+=p; if (p<n) { s=1-s; goto S2; } if (s==0) for (t=1; t<=n; t+=1) { x[t]=x[t+n];c[t]=c[t+n] } C++
  • 17. for J1:=0 to Length(wArTypCoil[JJ])-1 do begin with wArTypCoil[JJ][J1] do begin with cTyp_coil do begin NRow:=J1+1;NTab:=II_Tabl+4; Itm5:=II;StrN:=2230;mEd:=true;Lev:=2;end;P5;ArP5[IJ5]:=@cTyp_coil;inc(IJ5);inc(II); with cD_in do begin NRow:=J1+1;NTab:=II_Tabl+4; Itm1:=II; StrN:=2231;mEd:=true;NPos:=1;Lev:=2;end;P1;ArP1[IJ1]:=@cD_in;inc(IJ1);inc(II); with cTyp_pr do begin NRow:=J1+1;NTab:=II_Tabl+4; Itm6:=II;NTypChs1:=1;StrN:=2232;mEd:=true;Lev:=2;end;P6;ArP6[IJ6]:=@cTyp_Pr;inc(IJ6);inc(II); with cRad_str do begin NRow:=J1+1;NTab:=II_Tabl+4; Itm5:=II; StrN:=2233;mEd:=true;Lev:=2;end;P5;ArP5[IJ5]:=@cRad_str;inc(IJ5);inc(II); with cPW_coil_rad do begin NRow:=J1+1;NTab:=II_Tabl+4; Itm2:=II; StrN:=2235;mEd:=true;Lev:=2;end;P2;ArP2[IJ2]:=@cPW_coil_rad;inc(IJ2);inc(II); with cPW_coil_os do begin NRow:=J1+1;NTab:=II_Tabl+4; Itm2:=II; StrN:=2248;mEd:=true;Lev:=2;end;P2;ArP2[IJ2]:=@cPW_coil_os;inc(IJ2);inc(II); with cRat_cur do begin NRow:=J1+1;NTab:=II_Tabl+4; Itm1:=II; StrN:=2236;mEd:=true;NPos:=2;Lev:=2;end;P1;ArP1[IJ1]:=@cRat_cur;inc(IJ1);inc(II); with cTrn_coil do begin NRow:=J1+1;NTab:=II_Tabl+4; Itm1:=II; StrN:=2237;mEd:=true;NPos:=3;Lev:=2;end;P1;ArP1[IJ1]:=@cTrn_coil;inc(IJ1);inc(II); with cRad_dim do begin NRow:=J1+1;NTab:=II_Tabl+4; Itm1:=II; StrN:=2271;mEd:=true;NPos:=3;Lev:=2;end;P1;ArP1[IJ1]:=@cRad_dim;inc(IJ1);inc(II); //... end; end; with wArNconcentr[JJ] do begin NRow:=1;NTab:=II_Tabl+1; Itm2:=II; StrN:=2279;mEd:=false;Lev:=1;end;P2;ArP2[IJ2]:=@wArNconcentr[JJ];inc(IJ2);inc(II); with wArM_c[JJ] do begin NRow:=1;NTab:=II_Tabl+1; Itm3:=II; StrN:=2316;mEd:=true;NPos:=0;Lev:=1;end;P3;ArP3[IJ3]:=@wArM_c[JJ];inc(IJ3);inc(II); // with wArNumZoneOtvod_c[JJ] do begin NTab:=II_Tabl+1; Itm3:=II; StrN:=2317;mEd:=true;NPos:=0;Lev:=1;end;P3;ArP3[IJ3]:=@wArNumZoneOtvod_c[JJ];inc(IJ3);inc(II); // with wArNumZoneVdod_c[JJ] do begin NTab:=II_Tabl+1; Itm3:=II; StrN:=2318;mEd:=true;NPos:=0;Lev:=1;end;P3;ArP3[IJ3]:=@wArNumZoneVdod_c[JJ];inc(IJ3);inc(II); // with wArNxod_c[JJ] do begin NTab:=II_Tabl+1; Itm3:=II; StrN:=2319;mEd:=true;NPos:=0;Lev:=1;end;P3;ArP3[IJ3]:=@wArNxod_c[JJ];inc(IJ3);inc(II); // with wArNcur_c[JJ] do begin NTab:=II_Tabl+1; Itm3:=II; StrN:=2320;mEd:=true;NPos:=0;Lev:=1;end;P3;ArP3[IJ3]:=@wArNcur_c[JJ];inc(IJ3);inc(II); // with wArParam_c[JJ] do begin NTab:=II_Tabl+1; Itm3:=II; StrN:=2321;mEd:=true;NPos:=0;Lev:=1;end;P3;ArP3[IJ3]:=@wArParam_c[JJ];inc(IJ3);inc(II); // with wArSw_c[JJ] do begin NTab:=II_Tabl+1; Itm3:=II; StrN:=2322;mEd:=true;NPos:=1;Lev:=1;end;P3;ArP3[IJ3]:=@wArSw_c[JJ];inc(IJ3);inc(II);
  • 18. with wArNumKolc_top_c[JJ] do begin NRow:=1;NTab:=II_Tabl+1; ; Itm3:=II; StrN:=2328;mEd:=true;NPos:=0;Lev:=1;end;P3;ArP3[IJ3]:=@wArNumKolc_top_c[JJ];inc(IJ3);inc(II); with wArNumKolc_bot_c[JJ] do begin NRow:=1;NTab:=II_Tabl+1; Itm3:=II; StrN:=2329;mEd:=true;NPos:=0;Lev:=1;end;P3;ArP3[IJ3]:=@wArNumKolc_bot_c[JJ];inc(IJ3);inc(II); with wArNreek_ar[JJ] do begin NRow:=1;NTab:=II_Tabl+3; Itm3:=II; StrN:=2313;mEd:=true;NPos:=0;Lev:=1;end;P3;ArP3[IJ3]:=@wArNreek_ar[JJ];inc(IJ3);inc(II); with wArGshreik_ar[JJ] do begin NRow:=1;NTab:=II_Tabl+3; Itm3:=II; StrN:=2314;mEd:=true;NPos:=2;Lev:=1;end;P3;ArP3[IJ3]:=@wArGshreik_ar[JJ];inc(IJ3);inc(II); with wArGtreik_ar[JJ] do begin NRow:=1;NTab:=II_Tabl+3; Itm3:=II; StrN:=2315;mEd:=true;NPos:=2;Lev:=1;end;P3;ArP3[IJ3]:=@wArGtreik_ar[JJ];inc(IJ3);inc(II); with wArShreik_ar[JJ] do begin NRow:=1;NTab:=II_Tabl+3; Itm3:=II; StrN:=2404;mEd:=true;NPos:=2;Lev:=1;end;P3;ArP3[IJ3]:=@wArShreik_ar[JJ];inc(IJ3);inc(II); with wArNpr[JJ] do begin NRow:=1;NTab:=II_Tabl+3; Itm2:=II; StrN:=2369;mEd:=true;Lev:=1;end;P2;ArP2[IJ2]:=@wArNpr[JJ];inc(IJ2);inc(II); with wArShpr[JJ] do begin NRow:=1;NTab:=II_Tabl+3; Itm1:=II; StrN:=2245;mEd:=true;NPos:=2;Lev:=1;end;P1;ArP1[IJ1]:=@wArShpr[JJ];inc(IJ1);inc(II); with wArRadZaz_w[JJ] do begin NRow:=1;NTab:=II_Tabl+1; Itm3:=II; StrN:=2323;mEd:=true;NPos:=2;Lev:=1;end;P3;ArP3[IJ3]:=@wArRadZaz_w[JJ];inc(IJ3);inc(II); with wArStr_os_w[JJ] do begin NRow:=1;NTab:=II_Tabl+1; Itm1:=II; StrN:=2324;mEd:=true;NPos:=2;Lev:=1;end;P1;ArP1[IJ1]:=@wArStr_os_w[JJ];inc(IJ1);inc(II); with wArPrizn_radop_w[JJ] do begin NRow:=1;NTab:=II_Tabl+1; Itm4:=II;NTypChs:=0;StrN:=2325;mEd:=true;Lev:=1;end;P4;ArP4[IJ4]:=@wArPrizn_radop_w[JJ];inc(IJ4);inc(II); with wArAxStr[JJ].awAxialStr do begin NRow:=1;NTab:=II_Tabl+5; Itm5:=II; StrN:=2243;mEd:=true;Lev:=1;end;P5;ArP5[IJ5]:=@wArAxStr[JJ].awAxialStr;inc(IJ5);inc(II); with wArYokeRast_bot_w[JJ] do begin NRow:=1;NTab:=II_Tabl+2; Itm1:=II; StrN:=2265;mEd:=true;NPos:=2;Lev:=1;end;P1;ArP1[IJ1]:=@wArYokeRast_bot_w[JJ];inc(IJ1);inc(II); with wArElectrH_w[JJ] do begin NRow:=1;NTab:=II_Tabl+2; Itm1:=II; StrN:=2266;mEd:=true;NPos:=2;Lev:=1;end;P1;ArP1[IJ1]:=@wArElectrH_w[JJ];inc(IJ1);inc(II); with wArElectr_centre[JJ] do begin NRow:=1;NTab:=II_Tabl+2; Itm1:=II; StrN:=2395;mEd:=false;NPos:=1;Lev:=1;end;P1;ArP1[IJ1]:=@wArElectr_centre[JJ];inc(IJ1);inc(II); with wArKanBottom[JJ] do begin NRow:=1;NTab:=II_Tabl+2; Itm3:=II; StrN:=2341;mEd:=true;NPos:=2;Lev:=1;end;P3;ArP3[IJ3]:=@wArKanBottom[JJ];inc(IJ3);inc(II); with wArKanTop[JJ] do begin NRow:=1;NTab:=II_Tabl+2; Itm3:=II; StrN:=2342;mEd:=true;NPos:=2;Lev:=1;end;P3;ArP3[IJ3]:=@wArKanTop[JJ];inc(IJ3);inc(II); with wArComIsZone[JJ] do begin NRow:=1;NTab:=II_Tabl+6; Itm1:=II; StrN:=2339;mEd:=true;NPos:=2;Lev:=1;end;P1;ArP1[IJ1]:=@wArComIsZone[JJ];inc(IJ1);inc(II); with wArMprIsZone[JJ] do begin NRow:=1;NTab:=II_Tabl+6; Itm1:=II; StrN:=2340;mEd:=true;NPos:=2;Lev:=1;end;P1;ArP1[IJ1]:=@wArMprIsZone[JJ];inc(IJ1);inc(II); with wArKus_pr[JJ] do begin NRow:=1;NTab:=II_Tabl+7; Itm1:=II; StrN:=2249;mEd:=true;NPos:=3;Lev:=1;end;P1;ArP1[IJ1]:=@wArKus_pr[JJ];inc(IJ1);inc(II); with wArKus_bm_is[JJ] do begin NRow:=1;NTab:=II_Tabl+7; Itm1:=II; StrN:=2250;mEd:=true;NPos:=3;Lev:=1;end;P1;ArP1[IJ1]:=@wArKus_bm_is[JJ];inc(IJ1);inc(II);
  • 19. with wArKus_ob_is[JJ] do begin NRow:=1;NTab:=II_Tabl+7; Itm1:=II; StrN:=2251;mEd:=true;NPos:=3;Lev:=1;end;P1;ArP1[IJ1]:=@wArKus_ob_is[JJ];inc(IJ1);inc(II); with wArKus_mpr_is[JJ] do begin NRow:=1;NTab:=II_Tabl+7; Itm1:=II; StrN:=2252;mEd:=true;NPos:=3;Lev:=1;end;P1;ArP1[IJ1]:=@wArKus_mpr_is[JJ];inc(IJ1);inc(II); // with wArKus_msl_is[JJ] do begin NRow:=1;NTab:=II_Tabl+7; Itm1:=II; StrN:=2253;mEd:=true;NPos:=3;Lev:=1;end;P1;ArP1[IJ1]:=@wArKus_msl_is[JJ];inc(IJ1);inc(II); with wArTypIsol[JJ] do begin NRow:=1;NTab:=II_Tabl+6; Itm6:=II;NTypChs1:=2;StrN:=2254;mEd:=true;Lev:=1;end;P6;ArP6[IJ6]:=@wArTypIsol[JJ];inc(IJ6);inc(II); with wArEndIsol_bot[JJ] do begin NRow:=1;NTab:=II_Tabl+6; Itm3:=II; StrN:=2258;mEd:=true;NPos:=1;Lev:=1;end;P3;ArP3[IJ3]:=@wArEndIsol_bot[JJ];inc(IJ3);inc(II); with wArEndIsol_top[JJ] do begin NRow:=1;NTab:=II_Tabl+6; Itm3:=II; StrN:=2259;mEd:=true;NPos:=1;Lev:=1;end;P3;ArP3[IJ3]:=@wArEndIsol_top[JJ];inc(IJ3);inc(II); with wArTypMat_end_top_w[JJ] do begin NRow:=1;NTab:=II_Tabl+6; Itm6:=II;NTypChs1:=3;StrN:=2326;mEd:=true;Lev:=1;end;P6;ArP6[IJ6]:=@wArTypMat_end_top_w[JJ];inc(IJ6);inc(II); with wArTypMat_end_bot_w[JJ] do begin NRow:=1;NTab:=II_Tabl+6; Itm6:=II;NTypChs1:=3;StrN:=2327;mEd:=true;Lev:=1;end;P6;ArP6[IJ6]:=@wArTypMat_end_bot_w[JJ];inc(IJ6);inc(II); with wArNst_top_isol[JJ] do begin NRow:=1;NTab:=II_Tabl+6; Itm3:=II; StrN:=2332;mEd:=true;NPos:=0;Lev:=1;end;P3;ArP3[IJ3]:=@wArNst_top_isol[JJ];inc(IJ3);inc(II); with wArNst_bot_isol[JJ] do begin NRow:=1;NTab:=II_Tabl+6; Itm3:=II; StrN:=2333;mEd:=true;NPos:=0;Lev:=1;end;P3;ArP3[IJ3]:=@wArNst_bot_isol[JJ];inc(IJ3);inc(II); with wArSh_top_isol[JJ] do begin NRow:=1;NTab:=II_Tabl+6; Itm3:=II; StrN:=2334;mEd:=true;NPos:=2;Lev:=1;end;P3;ArP3[IJ3]:=@wArSh_top_isol[JJ];inc(IJ3);inc(II); with wArSh_bot_isol[JJ] do begin NRow:=1;NTab:=II_Tabl+6; Itm3:=II; StrN:=2335;mEd:=true;NPos:=2;Lev:=1;end;P3;ArP3[IJ3]:=@wArSh_bot_isol[JJ];inc(IJ3);inc(II); with wArRad_top_isol[JJ] do begin NRow:=1;NTab:=II_Tabl+6; Itm3:=II; StrN:=2336;mEd:=true;NPos:=2;Lev:=1;end;P3;ArP3[IJ3]:=@wArRad_top_isol[JJ];inc(IJ3);inc(II); with wArRad_bot_isol[JJ] do begin NRow:=1;NTab:=II_Tabl+6; Itm3:=II; StrN:=2337;mEd:=true;NPos:=2;Lev:=1;end;P3;ArP3[IJ3]:=@wArRad_bot_isol[JJ];inc(IJ3);inc(II); // with wArPriznZakr[JJ] do begin NRow:=1;NTab:=II_Tabl+6; Itm3:=II; StrN:=2338;mEd:=true;NPos:=0;Lev:=1;end;P3;ArP3[IJ3]:=@wArPriznZakr[JJ];inc(IJ3);inc(II); //.... end; Delphi
  • 20. <?php if ($_GET['code1c_Connected']=='') { if ($_GET['type']!="shop") { if ($_GET['type']!="lk") { if ($_GET['type']!="home") { if ($_GET['type']!="login_reg") { if ($_GET['type']!="reg_quick") { if ($_GET['type']!="order") { if ($_GET['type']!="order_g") { if ($GET['type']!="payment") { if ($_GET['type']!='contakts') { if ($_GET['type']!='contact_kiev_volinskaya47') { if ($_GET['type']!='contact_kiev_lesi_ukrainki15') { if ($_GET['type']!='contact_kiev_vozduhoflotskiy17') { if ($_GET['type']!='contact_kiev_malinovskogo12') { if ($_GET['type']!='contact_kiev_solomenskaya16') { if ($_GET['type']!='contact_kiev_yakuba2') { if ($_GET['type']!='contact_odessa_tiraspolskaya35') { if ($_GET['type']!='contact_odessa') { if ($_GET['type']!='contact_kharkov') { if ($_GET['type']!='contact_kharkov_fonvizena18') { if ($_GET['type']!='contact_dnepropetrovsk') { if ($_GET['type']!='contact_dnepropetrovsk_suvorova14') { if ($_GET['type']!='contact_donetsk') { if ($_GET['type']!='contact_donetsk_shorsa24') { if ($_GET['type']!='contact_zaporozhye') { if ($_GET['type']!='contact_zaporozhye_borodinskaya52') { if ($_GET['type']!='contact_sevastopol') { if ($_GET['type']!='contact_sevastopol_vosstavshuh4') { ?> PHP
  • 22. if (result == true) return true; else return result; C++
  • 23. if (var == true) return true; else if (var == false) return false; else return (!false && !true); C#
  • 24. public boolean isEnabled(ClassX obj) { boolean result = false; if (obj.isEnabled() == true) result = true; else result = false; return result; } Java
  • 25. if (a == null == false) { } C#
  • 27. <?php $int = (int) $int; if (is_int($int)) { // на всякий случай // ... } ?> PHP
  • 28. bool IsBukva(char symbol) { switch(symbol) { case'a':return 1;break; case'b':return 1;break; case'c':return 1;break; case'd':return 1;break; case'e':return 1;break; case'f':return 1;break; case'g':return 1;break; case'h':return 1;break; case'i':return 1;break; case'j':return 1;break; case'k':return 1;break; case'l':return 1;break; case'm':return 1;break; case'n':return 1;break; case'o':return 1;break; case'p':return 1;break; case'q':return 1;break;
  • 29. case'r':return 1;break; case's':return 1;break; case't':return 1;break; case'u':return 1;break; case'v':return 1;break; case'w':return 1;break; case'x':return 1;break; case'y':return 1;break; case'z':return 1;break; case'A':return 1;break; case'B':return 1;break; case'C':return 1;break; case'D':return 1;break; case'E':return 1;break; case'F':return 1;break; case'G':return 1;break; case'H':return 1;break; case'I':return 1;break; case'J':return 1;break; case'K':return 1;break;
  • 30. case'L':return 1;break; case'M':return 1;break; case'N':return 1;break; case'O':return 1;break; case'P':return 1;break; case'Q':return 1;break; case'R':return 1;break; case'S':return 1;break; case'T':return 1;break; case'U':return 1;break; case'V':return 1;break; case'W':return 1;break; case'X':return 1;break; case'Y':return 1;break; case'Z':return 1;break; default:return 0; } } C++
  • 31. неуместное использование строк вместо других типов STRINGLY-TYPED CODE
  • 32. boolean is_admin; // something Boolean b = new Boolean( is_admin ); if( b.toString().length() == 4 ) { // something... } // something Java
  • 33. if( (s.Find("/0")!=-1)|| (s.Find("Log10(-")!=-1)|| (s.Find("Log10(0")!=-1))//stupid user error { } C++
  • 34. boolean IsWeekStartsMonday() { if (strDay.equalsTo("Russia") || strDay.equalsTo("Ukraina") || ....) return true; else return false; } void SomeFunction(){ .... if (IsWeekStartsMonday()) startDay = java.util.Calendar.getFirstDayOfWeek(); else startDay = java.util.Calendar.SUNDAY; } Java
  • 35. Если (ШаблонПроводки.Наименование = "Распределять пропорционально расчетной базе") Тогда МожноПроводить = 0; Сообщить(НазваниеДока+"неверно указан шаблон проводки", "!"); 1С
  • 36. ошибки в обработке ошибок ОБРАБОТКА ОШИБОК
  • 37. try { Folder folder = openFolder(); processFolder(folder); } catch (MessagingException ex) { Folder folder = openFolder(); processFolder(folder); } Java
  • 38. try { if (field[i][j + 1] == 0) { field[i][j + 1] = 2; fifo.add(new Cell(i, j + 1)); } } catch (ArrayIndexOutOfBoundsException ignored) { } Java
  • 39. логика предметной области в презентационном слое “SMART” UI
  • 40. if ((textBox2.Text != "") && (textBox3.Text != "") && (Convert.ToInt32(textBox2.Text) < Convert.ToInt32(textBox3.Text))) { int наименование = 0; string несозданы = null; int количество = 0; bool накладнаясоздана = false; int накладная = 0; наименование = Convert.ToInt32(comboBox1.SelectedValue); string наименованиест = наименование.ToString(); for (int i = Convert.ToInt32(textBox2.Text); i < Convert.ToInt32(textBox3.Text) + 1; i++) { bool одинаково = false; foreach (СкладDataSet.ПоступлениеRow row in складDataSet.Поступление.Rows) { if ((i == row.__) && (наименованиест == row.Наименование)) { одинаково = true; несозданы += " " + i.ToString(); yes = 2; } } if (одинаково == false) { складDataSet.Состояние.AddСостояниеRow(наименование.ToString(), i.ToString(), "2", "1", ""); if (накладнаясоздана == false) ... } else MessageBox.Show("Поле пустое, введите номер прибора!!!", "Внимательнее!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); C#
  • 41. Private Sub Label10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label10.Click RadioButton1.Checked = False RadioButton2.Checked = False RadioButton3.Checked = False RadioButton4.Checked = False RadioButton5.Checked = False RadioButton6.Checked = False RadioButton7.Checked = False RadioButton8.Checked = False RadioButton9.Checked = False RadioButton10.Checked = False RadioButton11.Checked = False RadioButton12.Checked = False RadioButton13.Checked = False RadioButton14.Checked = False RadioButton15.Checked = False RadioButton16.Checked = False RadioButton17.Checked = False RadioButton18.Checked = False RadioButton19.Checked = False RadioButton20.Checked = False RadioButton21.Checked = False RadioButton22.Checked = False RadioButton23.Checked = False RadioButton24.Checked = False RadioButton25.Checked = False RadioButton26.Checked = False RadioButton27.Checked = False
  • 42. RadioButton28.Checked = False RadioButton29.Checked = False RadioButton30.Checked = False RadioButton31.Checked = False RadioButton33.Checked = False RadioButton34.Checked = False RadioButton35.Checked = False RadioButton36.Checked = False RadioButton37.Checked = False RadioButton38.Checked = False RadioButton39.Checked = False RadioButton40.Checked = False RadioButton41.Checked = False RadioButton44.Checked = False Button1.Enabled = True Panel5.Visible = True Panel7.Visible = False Panel3.Visible = False Panel4.Visible = False Panel6.Visible = False Panel8.Visible = False Panel10.Visible = False Panel2.Visible = False Panel14.Visible = False Panel16.Visible = False Panel1.Visible = False End Sub VisualBasic
  • 43. <?php $query = "SELECT `id`, IF(`nalichie` = 0, '0.png', '1.png') AS `nalichieimg`, `cena` FROM `buttons`"; //не достойные внимания строки опущены. echo '<img src="'.$row['nalichieimg'].'">'; ?> PHP
  • 45. <?php if ( strlen( $string ) > 3 ) echo "Имя должно содержать не больше 3-х символов"; elseif ( strlen( $string ) < 3 ) echo "Имя должно содержать не менее 3-х символов"; else echo "Вы корректно ввели имя" ?> PHP
  • 46. <?php @$captcha = $_POST['captcha'] or die("Убедитесь, что вы ввели защитный код!$back"); $num = $_POST['num']; if($captcha != $num) { echo "Вы ввели неправильный защитный код!$back"; exit; } ?> PHP
  • 47. да здравствует код бессмысленный и беспощадный РАК МОЗГА
  • 48. public static void brute(long diap) { n = 68491; //задаем некое число NewMessage("w8. Bruteforce working..."); //вызываем событие for (int i = 0; i < diap; i++) //мутим цикл { d = i; string brute = Convert.ToString(bug.Equals(n, d)); //сравниваем и возвращаем результат в строку if (brute == "True") { BruteComplete(d.ToString()); //вызываем событие при удачном переборе break; } } if (ok == false) { NewMessage("Brete Failed:("); } } C#
  • 49. <?php for($i=0;$i<10;$i++) { for($i=0;$i<5;$i++) { echo 'Какого х** зацикливает!!!!!!!'; } } ?> PHP
  • 50. int SUM(int A, int B) { if (0 == A) return B; if (0 == B) return A; return (1 + (SUM(A, B - 1) + SUM(A - 1, B)) / 2); } C++
  • 51. fm.bottom += ( tempBottom - fm.bottom ); fm.descent += ( tempDescent - fm.descent ); fm.ascent += ( tempAscent - fm.ascent ); fm.top += ( tempTop - fm.top ); Java
  • 53. function int2float($i) { return (string) $i . '.00'; } PHP
  • 54. if (file == null) System.out.println("File " + file.getName() + " is null."); Java
  • 55. <?php function get_rand_symbols($numeric) { if($numeric == '1') { return 'п'; } if($numeric == '2') { return 'р'; } if($numeric == '3') { return 'о'; } if($numeric == '4') { return 'к'; } if($numeric == '5') { return 'е'; } if($numeric == '6') { return 'а'; } if($numeric == '7') { return 'д'; } if($numeric == '8') { return 'е'; } if($numeric == '9') { return 'й'; } if($numeric == '10') { return 'в'; } if($numeric == '11') { return 'м'; } if($numeric == '12') { return 'л'; } if($numeric == '13') { return 'с'; } if($numeric == '14') { return 'т'; } if($numeric == '15') { return 'у'; } if($numeric == '16') { return 'н'; } if($numeric == '17') { return 'ш'; } if($numeric == '18') { return 'х'; } if($numeric == '19') { return 'щ'; } if($numeric == '20') { return 'ъ'; } if($numeric == '21') { return 'ю'; } if($numeric == '22') { return 'б'; } if($numeric == '23') { return 'я'; } if($numeric == '24') { return 'ц'; } if($numeric == '25') { return 'ч'; } if($numeric == '26') { return 'ё'; } if($numeric == '27') { return 'э'; } if($numeric == '28') { return 'з'; } if($numeric == '29') { return 'и'; } if($numeric == '30') { return 'ы'; } }
  • 56. function all_rand() { return get_rand_symbols(rand(1, 30)).get_rand_symbols(rand(1, 30)). get_rand_symbols(rand(1, 30)).get_rand_symbols(rand(1, 30)). get_rand_symbols(rand(1, 30)).get_rand_symbols(rand(1, 30)). get_rand_symbols(rand(1, 30)).get_rand_symbols(rand(1, 30)). get_rand_symbols(rand(1, 30)).get_rand_symbols(rand(1, 30)). get_rand_symbols(rand(1, 30)).get_rand_symbols(rand(1, 30)). get_rand_symbols(rand(1, 30)).get_rand_symbols(rand(1, 30)). get_rand_symbols(rand(1, 30)).get_rand_symbols(rand(1, 30)). get_rand_symbols(rand(1, 30)).get_rand_symbols(rand(1, 30)). get_rand_symbols(rand(1, 30)).get_rand_symbols(rand(1, 30)). get_rand_symbols(rand(1, 30)).get_rand_symbols(rand(1, 30)). get_rand_symbols(rand(1, 30)).get_rand_symbols(rand(1, 30)); } ?> PHP
  • 57. #define TRUE FALSE #define private public C++