El sistema de gancho de WordPress es un ejemplo de sistema de programación “impulsado por el evento”.Si trabaja en WordPress, probablemente use ganchos de WordPress con bastante frecuencia en su trabajo, probablemente con mayor frecuencia conecte las funciones para cambiar la funcionalidad por add_action () y add_filter ().Hoy, hablemos sobre cuál es el sistema Hooks: un ejemplo de arquitectura o sistema de programación “impulsado en eventos”.Los eventos tienen una vasta historia en el mundo de la informática y hay mucha sabiduría sobre sus fortalezas y responsabilidades.Aquí, cubriremos los compromisos esenciales de un sistema basado en el evento.Al comprender los modelos de nivel superior en los sistemas basados en eventos, en general, como desarrolladores de WordPress, podemos entender y trabajar mejor con el sistema de gancho de WordPress.
¿Cuál es la arquitectura dirigida por eventos que escuché “programación basada en eventos” como un término común, pero la página de Wikipedia para “arquitectura basada en eventos” es la mejor coincidencia para la idea: arquitectura basada en eventos (EDA), también conocida como Arquitectura En el mensaje, es un modelo de arquitectura de software que promueve la producción, detección, consumo y reacción a los eventos. En los sistemas basados en eventos, un sistema crea “eventos”, a los que luego responden a otros sistemas. Por ejemplo, si un programa de correo electrónico desencadena un evento “el usuario acaba de enviar un correo electrónico”, tal vez nada más en el sistema esté listo para hacer algo sobre él, o tal vez docenas de otros sistemas escuchan y están listos para hacer las cosas en respuesta. , como “Imprimir una copia del texto del correo electrónico” o “Verifique la dirección del destinatario del correo electrónico del” contactar “al usuario en su software CRM.” Eso “, todo se trata de crear relaciones basadas en eventos en tu vida:
Estos ejemplos en la vida real se parecen a los tipos de relaciones que un sistema basado en eventos proporciona en su código y puede comenzar a ver el poder y la intuición detrás de ellas.Las ventajas de los sistemas basados en eventos basados en arquitectos basados en eventos tienen varias ventajas clave.Los sistemas basados en eventos son muy extensibles, es fácil completar el comportamiento con el que inicialmente se construyeron los sistemas de actuación uniformes.Quizás el aspecto más fuerte de los sistemas basados en eventos (especialmente el sistema de WordPress) es que es fácilmente extensible: es fácil para otras personas complementar el comportamiento con el que se construyó inicialmente el sistema.El hecho de que WooCommerce y otros sistemas puedan convertir a WordPress en una plataforma de comercio electrónico es un ejemplo importante de la extensión del sistema básico en una forma en que inicialmente no se pretendía.

El núcleo de WordPress se puede actualizar independientemente de los complementos y los temas que dependen de ello. Sin este desacoplamiento, el ecosistema de WordPress no podría existir. Lo que es bueno en la forma en función de los eventos para permitir la extensión es que puede trabajar con la suposición de que un evento no tiene oyentes cuando escribe el código. En otras palabras, es fácil decirle a un evento que active (por ejemplo, una acción de WordPress) sin la necesidad de que el código de activación se preocupe por lo que hace otro código en el sistema. Debido a que el código que desencadena los eventos no debe preocuparse por cómo se consumen estos eventos, el núcleo de WordPress (el principal “desencadenante de eventos” de WordPress) se puede actualizar independientemente del tema y el código de complemento que depende de él. Esta separación permite que ambos se muevan en su ritmo: un hecho fundamental que permite la existencia de todo el ecosistema de WordPress. “Acoplamiento deficiente” es un término de computadora para la propiedad de que las partes de los sistemas basados en el evento no deben moverse: “débil acoplamiento”. En los sistemas basados en el evento, existe un acoplamiento débil entre el remitente del evento (como el propio WordPress) y el reactor del evento (como un complemento). Lo contrario del acoplamiento débil es el “acoplamiento fuerte”, en el que los dos sistemas deben cambiar al mismo tiempo o todo se rompe. (Estoy seguro de que para aquellos quemados para actualizar el complemento faltante o similar, a veces suena como WordPress …) Una mayor simplicidad, el código que está escrito para emitir eventos puede parecer muy simple.
El código que se escribe para emitir eventos puede parecer muy simple. Una vez que usted, como desarrollador, aprenda a procesar Apply_Filters y Do_Ctions en el código de WordPress como indicadores que generalmente puede ignorar, obtiene muchos beneficios excelentes. El código que se puede extender, “conectado” o modificado por muchas otras líneas de código en el sistema no tiene que ser realmente complicado para que coincida con todas estas extensiones. De hecho, se puede pretender simplemente, porque no se combina de ninguna manera con esas personas que llaman. Pero, y aquí comenzamos a seguir las desventajas del sistema basado en el evento, esta simplicidad aparente no es completamente gratuita: mantiene su código simple , empujando la complejidad en los sistemas que interactúan con su código.
Las desventajas de los sistemas basados en eventos basados en sistemas basados en eventos tienen varias desventajas. La aparente simplicidad puede ocultar una complejidad profunda. Este es el reverso del punto anterior: los sistemas basados en eventos pueden parecer simples, porque la complejidad se mueve en otro lugar. Afortunadamente, el código que reacciona (o “aferrado”) eventos no debe ser generalmente terriblemente complejo, pero a partir de mi experiencia, dos apariencias comunes pueden complicar este código:
Si su evento no le envía algunos datos que necesita, entonces debe encontrar una manera de obtenerlos, casi como cero. Esto puede conducir a un código duplicado y una doble cosa, dependiendo de quién posee qué.

Las interacciones y el flujo basado en el tiempo pueden causar problemas sutiles en sí mismas. En WordPress, por ejemplo, puede intentar “conectar” el evento incorrecto (acción) en WordPress y hacer algo que no puede hacer, o hacer algo demasiado tarde. En cualquier caso, su código puede romper las cosas o fallar en silencio, y la razón por la que no será obvio para su código en sí, lo que parecerá bastante razonable. Entonces, en WordPress, la diferencia entre, por ejemplo, los ganchos de acción init y complementos_loaded es muy importante y no necesariamente., Y por lo tanto, los sistemas basados en el evento son muy difíciles de solucionar.
El código de procedimiento, que en muchos aspectos es un contraste directo con el código basado en eventos, lo deja muy claro y explícito lo que sigue. Si conoce el orden en que el intérprete ejecutará el código, sabe casi todo lo que necesita para averiguar lo que ha causado y solucionar problemas del sistema. En general, un sistema de procedimiento con funciones con nombre tiene un campo bastante limitado de posibles causas de un comportamiento que ve. Esto es menos cierto en los sistemas basados en eventos. Debido a que los eventos basados en inherentemente (al elegir el desacoplamiento que discutimos) no enumeran todo lo que ensamblarán hasta que el sistema esté completamente ensamblado, solo revelarán todos los detalles del sistema en la ejecución de todo el sistema juntos. Esto significa que es muy difícil seguir todas las razones posibles por las que cierta cosa puede entrar en un determinado estado.
En otras palabras, en un sistema basado en eventos, lo que pueda cambiar el estado del sistema, responder a un evento en particular y, por lo tanto, los sistemas basados en eventos son muy difíciles de solucionar. Esta complejidad está casi integrada en un sistema basado en eventos y a menudo merece el costo. Por supuesto, hay una mayor complejidad, pero en el 95% del tiempo no tiene problemas. Pero un desarrollador experimentado de WordPress que pasó horas después de las causas de un error activando y desactivando un millón de temas y arados sabrá a qué me refiero. Esta es la complejidad que viene con los sistemas basados en eventos.
Lo que espero aprender, espero que hayas logrado un mejor compromiso que viene con el sistema de gancho de WordPress y una comprensión ligeramente fundada de cómo el evento basado en WordPress está en las disciplinas más amplias de la informática y la programación. Los sistemas basados en eventos son excepcionalmente flexibles y se adaptan fácilmente a sus necesidades. Los sistemas basados en eventos son excepcionalmente flexibles y se adaptan fácilmente a sus necesidades específicas. La capacidad de varios actores diferentes de operar de manera segura e independiente entre sí es excelente. Y está facultado por todos los que escuchan los mismos eventos. Esto es lo que hace que los oyentes de eventos add_action y add_filter de WordPress sean tan valiosos.
Sistema de eventos de WordPress: comprensión de ganchos en el contexto de programación más amplio
Tags Sistema de eventos de WordPress: comprensión de ganchos en el contexto de programación más amplio
homefinance blog