Marco web Pusa que transfiere la lógica front-end de JavaScript al lado del servidor

El marco web Pusa se ha publicado con la implementación de un concepto que transfiere la lógica de front-end, ejecutada en el navegador usando JavaScript, al lado de back-end: la gestión del navegador y los elementos DOM, así como la lógica de negocios se realizan en la parte trasera. El código JavaScript ejecutado en el lado del navegador se reemplaza con una capa universal que llama a los controladores ubicados en el lado del backend. No es necesario desarrollar utilizando JavaScript para el front-end. La implementación de referencia de Pusa está escrita en PHP y tiene licencia GPLv3. Además de PHP, la tecnología se puede implementar en cualquier otro lenguaje, incluidos JavaScript/Node.js, Java, Python, Go y Ruby.

Pusa define un protocolo de intercambio basado en un conjunto minimalista de comandos. Cuando se carga la página, el navegador carga el contenido DOM subyacente y el núcleo de JavaScript de Pusa-Front. Pusa-Front envía eventos del navegador (como clic, desenfoque, enfoque y pulsación de tecla) y parámetros de solicitud (el elemento que causó el evento, sus atributos, URL, etc.) al controlador del servidor Pusa-Back mediante solicitudes Ajax. Según los datos recibidos, Pusa-Back determina el controlador, ejecuta la carga útil y genera un conjunto de comandos de respuesta. Habiendo recibido la respuesta a la solicitud, Pusa-Front ejecuta comandos, cambiando el contenido del DOM y el entorno del navegador.

El estado del frontend es generado pero no controlado por el backend, lo que hace que el desarrollo para Pusa sea similar al código para una tarjeta de video o Canvas, donde el desarrollador no controla el resultado de la ejecución. Para crear aplicaciones interactivas basadas en Canvas y onmousemove, es posible descargar y utilizar scripts JavaScript adicionales en el lado del cliente. Entre las desventajas del método, también se encuentra la transferencia de parte de la carga del frontend al backend y un aumento en la frecuencia de intercambio de datos con el servidor.

Entre las ventajas se encuentran: eliminar la necesidad de la participación de desarrolladores front-end de JavaScript, código de cliente estable y compacto (11kb), inaccesibilidad del código principal desde el front-end, no necesidad de serialización REST y herramientas como gRPC, eliminando el Problemas de coordinación del enrutamiento de solicitudes entre el front-end y el back-end.

Fuente: opennet.ru

Añadir un comentario