significado restaurante reparto peter pelicula latino español completa hook

hook - restaurante - ¿Qué se entiende por el término "gancho" en la programación?



hook restaurante (12)

Recientemente escuché el término "gancho" al hablar con algunas personas sobre un programa que estaba escribiendo. No estoy seguro de lo que implica este término, aunque deduje de la conversación que un gancho es un tipo de función. Busqué una definición pero no pude encontrar una buena respuesta. ¿Alguien podría darme una idea de lo que generalmente significa este término y quizás un pequeño ejemplo para ilustrar la definición?


Con frecuencia, el enlace se refiere al enlace de mensajes Win32 o los equivalentes de Linux / OSX, pero el enlace más genérico es simplemente notificar a otro objeto / ventana / programa / etc que desea que se le notifique cuando ocurre una acción específica. Por ejemplo: si todas las ventanas del sistema le notifican cuando están a punto de cerrarse.

Como regla general, el enganche es algo peligroso, ya que hacerlo sin comprender cómo afecta al sistema puede provocar inestabilidad o al menos un comportamiento inesperado. También puede ser MUY útil en ciertas circunstancias, el pensamiento. Por ejemplo: FRAPS usa para determinar en qué ventanas debería mostrar su contador de FPS.


En MUY breve, puede cambiar el código de una llamada a la API como MessageBox para que realice una función diferente editada por usted (globalmente funcionará en todo el sistema, localmente funcionará en todo el proceso).


En el sistema de gestión de contenido de Drupal, ''gancho'' tiene un significado relativamente específico. Cuando se produce un evento interno (como creación de contenido o inicio de sesión de usuario, por ejemplo), los módulos pueden responder al evento mediante la implementación de una función especial de "enlace". Esto se hace a través de la convención de nomenclatura - [nombre de su complemento] _user_login () para el evento de inicio de sesión de usuario, por ejemplo.

Debido a esta convención, los eventos subyacentes se denominan "ganchos" y aparecen con nombres como "hook_user_login" y "hook_user_authenticate ()" en la documentación de la API de Drupal.


En un sentido genérico, un "gancho" es algo que le permitirá a usted, un programador, ver y / o interactuar con y / o cambiar algo que ya está sucediendo en un sistema / programa.

Por ejemplo, el CMS de Drupal proporciona a los desarrolladores enlaces que les permiten realizar acciones adicionales después de crear un "nodo de contenido". Si un desarrollador no implementa un gancho, el nodo se crea de forma normal. Si un desarrollador implementa un gancho, puede ejecutar algún código adicional cada vez que se crea un nodo. Este código podría hacer cualquier cosa, incluso revertir y / o alterar la acción original. También podría hacer algo no relacionado con la creación del nodo por completo.

Una devolución de llamada podría considerarse como un tipo específico de gancho. Al implementar la funcionalidad de devolución de llamada en un sistema, ese sistema le permite llamar a algún código adicional después de que se haya completado una acción. Sin embargo, enganchar (como un término genérico) no se limita a devoluciones de llamada.

Otro ejemplo. En ocasiones, los Desarrolladores Web se referirán a nombres de clase y / o ID en elementos como enlaces. Esto se debe a que al colocar el ID / nombre de clase en un elemento, pueden usar Javascript para modificar ese elemento, o "enganchar" al documento de la página. (Esto es estirar el significado, pero se usa comúnmente y vale la pena mencionarlo)


Esencialmente es un lugar en el código que le permite tocar un módulo para proporcionar un comportamiento diferente o para reaccionar cuando algo sucede.


Hook denota un lugar en el código donde se envía un evento de cierto tipo, y si este evento se registró antes con una función adecuada para devolver la llamada, entonces será manejado por esta función registrada, de lo contrario no sucede nada.


Los ganchos se pueden ejecutar cuando se encuentra alguna condición. por ejemplo, algunos cambios de variables o alguna acción es llamada o algún evento ocurre. Los ganchos pueden entrar en el proceso y cambiar las cosas o reaccionar ante los cambios.


Los ganchos son una categoría de función que permite que el código base llame al código de extensión. Esto puede ser útil en situaciones en las que un desarrollador central desea ofrecer extensibilidad sin exponer su código.

Un uso de ganchos es en el desarrollo de mod de videojuegos. Es posible que un juego no permita que los desarrolladores de mod amplíen la funcionalidad de la base, pero los desarrolladores de la biblioteca central de mod pueden agregar enlaces. Con estos ganchos, los desarrolladores independientes pueden solicitar su código personalizado en cualquier evento deseado, como carga de juegos, actualizaciones de inventario, interacciones de entidades, etc.

Un método común de implementación es dar a una función una lista vacía de devoluciones de llamada, y luego exponer la capacidad de extender la lista de devoluciones de llamada. El código base siempre llamará a la función a la misma hora y en el momento adecuado, pero, con una lista de devolución de llamada vacía, la función no hace nada. Esto es por diseño.

Un tercero, entonces, tiene la oportunidad de escribir código adicional y agregar su nueva devolución de llamada a la lista de devolución de llamada del gancho. Con nada más que una referencia de ganchos disponibles, tienen una funcionalidad ampliada con un riesgo mínimo para el sistema base.

Los ganchos no permiten que los desarrolladores hagan nada que no se pueda hacer con otras estructuras e interfaces. Son una opción que se debe realizar teniendo en cuenta la tarea y los usuarios (desarrolladores de terceros).

Para aclarar: un gancho permite la extensión y puede implementarse utilizando devoluciones de llamada. Las devoluciones de llamada generalmente no son más que un puntero a función; La dirección calculada de una función. Parece haber confusión en otras respuestas / comentarios.


Simple dijo:

Un gancho es un medio para ejecutar código personalizado (función) antes, después o en lugar de código existente. Por ejemplo, una función puede escribirse para "engancharse" en el proceso de inicio de sesión para ejecutar una función Captcha antes de continuar con el proceso de inicio de sesión normal.


Un gancho es la funcionalidad proporcionada por el software para que los usuarios de ese software tengan su propio código llamado en ciertas circunstancias. Ese código puede aumentar o reemplazar el código actual.

En los viejos tiempos, cuando las computadoras eran verdaderamente personales y los virus eran menos frecuentes (estoy hablando de los 80), era tan simple como parchear el software del sistema operativo para llamar a su código. Recuerdo haber escrito una extensión del lenguaje de Apple Applesoft BASIC en el Apple II que simplemente conectó mi código al intérprete de BASIC inyectando una llamada a mi código antes de que se procesara cualquiera de las líneas.

Algunas computadoras tenían ganchos prediseñados, un ejemplo es la transmisión de E / S en Apple II. Usó un gancho de este tipo para inyectar todo el subsistema de disco (las ROM de Apple II se construyeron originalmente en los días en que los casetes eran el medio de almacenamiento principal para las PC). Usted controló los discos imprimiendo el código ASCII 4 ( CTRL-D ) seguido del comando que deseaba ejecutar luego un CR , y fue interceptado por el subsistema de disco, que se había enganchado a las rutinas de impresión ROM de Apple.

Así por ejemplo, las líneas:

PRINT CHR(4);"CATALOG" PRINT CHR(4);"IN#6"

listaría el contenido del disco y luego reiniciaría la máquina. Esto permitió trucos tales como proteger sus programas BASIC estableciendo la primera línea como:

123 REM XIN#6

luego, utilizando POKE para insertar el carácter CTRL-D en el lugar donde estaba la X Entonces, cualquiera que intente enumerar su fuente enviará la secuencia de reinicialización a través de las rutinas de salida donde el subsistema de disco la detectaría.

Ese es a menudo el tipo de engaño al que tuvimos que recurrir para obtener el comportamiento que queríamos.

Hoy en día, con el sistema operativo más seguro, proporciona facilidades para los ganchos en sí, ya que se supone que ya no se debe modificar el sistema operativo "en vuelo" o en el disco.

Han estado alrededor por mucho tiempo. Los mainframes los tenían (llamadas salidas) y una gran cantidad de software de mainframe usa esas instalaciones incluso ahora. Por ejemplo, el sistema de control de código fuente gratuito que viene con z / OS (llamado SCLM) le permite reemplazar completamente el subsistema de seguridad simplemente colocando su propio código en la salida.


Una cadena de ganchos es un conjunto de funciones en las que cada función llama a la siguiente. Lo que es significativo acerca de una cadena de ganchos es que un programador puede agregar otra función a la cadena en el tiempo de ejecución. Una forma de hacerlo es buscar una ubicación conocida donde se mantenga la dirección de la primera función en una cadena. Luego guarda el valor del puntero de esa función y sobrescribe el valor en la dirección inicial con la dirección de la función que desea insertar en la cadena de gancho. Luego se llama a la función, hace su trabajo y llama a la siguiente función en la cadena (a menos que decida lo contrario). Naturalmente, hay muchas otras formas de crear una cadena de ganchos, desde escribir directamente en la memoria hasta usar las funciones de metaprogramación de lenguajes como Ruby o Python.

Un ejemplo de una cadena de ganchos es la forma en que una aplicación de MS Windows procesa los mensajes. Cada función en la cadena de procesamiento procesa un mensaje o lo envía a la siguiente función en la cadena.


Enganchar en la programación es una técnica que emplea los llamados enganches para hacer una cadena de procedimientos como un controlador de eventos.