Pusa marco web que transfire a lóxica do front-end de JavaScript ao lado do servidor

O framework web Pusa publicouse coa implementación dun concepto que transfire a lóxica front-end, executada no navegador mediante JavaScript, ao back-end: a xestión do navegador e os elementos DOM, así como a lóxica empresarial realízase en o back-end. O código JavaScript executado no lado do navegador substitúese por unha capa universal que chama aos controladores situados no lado do backend. Non é necesario desenvolver usando JavaScript para a interface. A implementación de referencia de Pusa está escrita en PHP e ten licenza GPLv3. Ademais de PHP, a tecnoloxía pódese implementar en calquera outra linguaxe, incluíndo JavaScript/Node.js, Java, Python, Go e Ruby.

Pusa define un protocolo de intercambio baseado nun conxunto minimalista de comandos. Cando se carga a páxina, o navegador carga o contido DOM subxacente e o núcleo de JavaScript de Pusa-Front. Pusa-Front envía eventos do navegador (como clic, desenfoque, foco e pulsación de tecla) e parámetros de solicitude (o elemento que provocou o evento, os seus atributos, URL, etc.) ao controlador do servidor Pusa-Back mediante solicitudes Ajax. En función dos datos recibidos, Pusa-Back determina o controlador, executa a carga útil e xera un conxunto de comandos de resposta. Unha vez recibida a resposta da solicitude, Pusa-Front executa comandos, cambiando o contido do DOM e do contorno do navegador.

O estado do frontend é xerado pero non controlado polo backend, o que fai que o desenvolvemento para Pusa sexa similar ao código para unha tarxeta de vídeo ou Canvas, onde o resultado da execución non está controlado polo programador. Para crear aplicacións interactivas baseadas en Canvas e onmousemove, é posible descargar e utilizar scripts JavaScript adicionais no lado do cliente. Entre as desvantaxes do método, tamén hai unha transferencia de parte da carga do frontend ao backend e un aumento da frecuencia de intercambio de datos co servidor.

Entre as vantaxes destacan: eliminación da necesidade da participación de desenvolvedores front-end de JavaScript, código de cliente estable e compacto (11kb), inaccesibilidade do código principal desde o front-end, sen necesidade de serialización REST e ferramentas como gRPC, eliminando o problemas de coordinación do enrutamento de solicitudes entre o front-end e o back-end.

Fonte: opennet.ru

Engadir un comentario