Дванадесетопръстник (software)

от Всичко за 1 лев, свободната енциклопедия

Revision as of 15:33, 6 юни 2019; view current revision
←Older revision | Newer revision→

Дванадесетопръстник е специален вид черва. Представлява фрагмент от код, съставен предимно от оператори за разклонение (if,switch,case), целящ изпълнението на операция, която иначе има чисто аналитичен характер и може да бъде реализирана по много по-прост и универсален начин. Наличието на дванадесетопръстници в кода говори много показателно за знанията и уменията на разработчика.

Примери

/* C */
int function pow2(int a){
    int result;
    switch(a){
        case 1: result = 1; break;
        case 2: result = 4; break;
        case 3: result = 9; break;
        case 4: result = 16; break;
        case 5: result = 25; break;
        case 6: result = 36; break;
        case 7: result = 49; break;
        case 8: result = 64; break;
        case 9: result = 81; break;
        default: result = null; break;
    }
    return result;
}

Очевидно е в случая, че резултатът може да бъде постигнат с едно просто return a*a;.


/* PHP */
try{
    $id = $_GET['id'];
}catch(Exception $e){}

if($id==1){
    $qry = "select * from `users` u where u.`active`='yes' and u.`id` in (1);";
}
if($id==2){
    $qry = "select * from `users` u where u.`active`='yes' and u.`id` in (2);";
}
if($id==3){
    $qry = "select * from `users` u where u.`active`='yes' and u.`id` in (3,4);";
}
if($id==5){
    $qry = "select * from `users` u where u.`active`='yes' and u.`id` in (5,6);";
}
if($id==10){
    $qry = "select * from `users` u where u.`active`='yes' and u.`id` in (7,8,9,10);";
}

if(isset($qry)){
    mysql_query($qry,$db);
}

Понякога самата клиентска логика, както се вижда по-горе, е прекалено специфична и налага използването на дванадесетопръстник. Важно обаче е да се спазват добрите практики в програмирането и да се взимат предвид възможните проблемни ситуации (напр. с try и catch).

Прочети още

Лични инструменти