hook



Предыдущая | Следующая

hook (хук, крюк), сущ. Программно или аппаратно реализованная возможность, которая в дальнейшем позволяет пользователю легко вводить дополнения или изменения. Например, обычная программа вывода чисел на печать всегда выводит числа в десятичном виде. Более гибкая программа может иметь переменную, которая указывает на систему счисления; установив в эту переменну 8, вы получите вывод в восьмеричном виде. Такая переменная и называется хуком. Некоторые еще более продвинутые программы могут анализировать значение переменной, и если оно меньше 16, то программа считает его основанием, а если больше, то она интерпретирует это значение как адрес, по которому находится написанная самим пользователем подпрограмма вывода чисел на печать. Это махровый (см. hairy), но зато очень мощный хук: вы всегда можете написать собственную подпрограмму, которая будет выводить числа в каком угодно виде или формате, и с помощью хука подцепить ее в программу. Просто хорошая программа отличается от суперпрограммы тем, что в последней в нужных местах всегда имеются хуки, и если на первом этапе обе программы работают одинаково хорошо, то впоследствии, когда возникают новые требования или что-то меняется в операционной среде, первую программу приходится либо выбрасывать, либо сильно перелопачивать, в то время как вторая легко и быстро перенастраивается с помощью хуков. Например, EMACS полностью состоит из хуков. Более формальное и менее хакеровское выражение «user exit» (пользовательский выход) обозначает то же самое.