Дванадесетопръстник (software)
от Всичко за 1 лев, свободната енциклопедия
(Разлики между версиите)
Версия от 09:40, 26 мар 2014 Kmeta (Беседа | приноси) Примери ← Go to previous diff |
Версия от 16:21, 29 мар 2014 Kmeta (Беседа | приноси) дванадесетопръстник код черва добри практики в програмирането Go to next diff → |
||
Ред 15: | Ред 15: | ||
'''case''' 8: result = 64; '''break'''; | '''case''' 8: result = 64; '''break'''; | ||
'''case''' 9: result = 81; '''break'''; | '''case''' 9: result = 81; '''break'''; | ||
- | '''default: result = '''null'''; '''break'''; | + | '''default''': result = '''null'''; '''break'''; |
} | } | ||
'''return''' result; | '''return''' result; |
Версия от 16:21, 29 мар 2014
Дванадесетопръстник е специален вид черва. Представлява фрагмент от код, съставен предимно от оператори за разклонение (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).