Framework web Pusa che trasferisce la logica front-end JavaScript al lato server

Il framework web Pusa è stato pubblicato con l'implementazione di un concetto che trasferisce la logica front-end, eseguita nel browser utilizzando JavaScript, al lato back-end: la gestione del browser e degli elementi DOM, nonché la logica aziendale vengono eseguite su il back-end. Il codice JavaScript eseguito sul lato browser viene sostituito con un livello universale che chiama i gestori situati sul lato backend. Non è necessario sviluppare utilizzando JavaScript per il front-end. L'implementazione di riferimento Pusa è scritta in PHP ed è concessa in licenza con GPLv3. Oltre a PHP, la tecnologia può essere implementata in qualsiasi altro linguaggio, inclusi JavaScript/Node.js, Java, Python, Go e Ruby.

Pusa definisce un protocollo di scambio basato su un insieme minimalista di comandi. Quando la pagina viene caricata, il browser carica il contenuto DOM sottostante e il core JavaScript di Pusa-Front. Pusa-Front invia eventi del browser (come clic, sfocatura, focus e pressione di un tasto) e parametri di richiesta (l'elemento che ha causato l'evento, i suoi attributi, URL, ecc.) al gestore del server Pusa-Back utilizzando richieste Ajax. Sulla base dei dati ricevuti, Pusa-Back determina il controller, esegue il carico utile e genera una serie di comandi di risposta. Dopo aver ricevuto la risposta alla richiesta, Pusa-Front esegue i comandi, modificando il contenuto del DOM e l'ambiente del browser.

Lo stato del frontend viene generato ma non controllato dal backend, il che rende lo sviluppo per Pusa simile al codice per una scheda video o Canvas, dove il risultato dell'esecuzione non è controllato dallo sviluppatore. Per creare applicazioni interattive basate su Canvas e onmousemove è possibile scaricare e utilizzare script JavaScript aggiuntivi lato client. Tra gli svantaggi del metodo c'è anche il trasferimento di parte del carico dal frontend al backend e un aumento della frequenza di scambio dei dati con il server.

Tra i vantaggi ci sono: eliminazione della necessità della partecipazione di sviluppatori front-end JavaScript, codice client stabile e compatto (11kb), inaccessibilità del codice principale dal front-end, nessuna necessità di serializzazione REST e strumenti come gRPC, eliminazione del problemi di coordinamento dell'instradamento delle richieste tra front-end e back-end.

Fonte: opennet.ru

Aggiungi un commento