Дванадесетопръстник (software)
от Всичко за 1 лев, свободната енциклопедия
Дванадесетопръстник е специален вид черва. Представлява фрагмент от код, съставен предимно от оператори за разклонение (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).