Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Single-page application vs. architetture server-rendered

Le Single Page Application sono sempre una soluzione ideale? Quando invece è meglio un approccio stateless?
Single-page application vs. architetture  server-rendered
Le Single Page Application sono sempre una soluzione ideale? Quando invece è meglio un approccio stateless?
Link copiato negli appunti

Utilizzare dei front-end framework come React, Angular, Vue.js ed Elm durante lo sviluppo di un progetto software è ormai diventato mainstream. Tali framework vengono usati ovunque e rientrano nei "default toolset" di ogni sviluppatore che intende realizzare una single-page application.

Tuttavia tale architettura è sempre la più indicata? Oppure esistono casi in cui è meglio rivolgersi ad un'impostazione più "tradizionale" come ad esempio un'architettura server-rendered? A chiederselo è stato di recente anche Uku Täht, CTO di Gigride.

A questo proposito Täht afferma:

"Di base scelgo di realizzare single-page application solo in presenza di un elemento che mi spinge a farlo. Senza una ragione valida preferisco orientarmi verso forme più tradizionali come la server-rendered architecture"

Secondo Täht un'architettura simile da accesso a diversi vantaggi.

Stateless request

I Web server tradizionali sono stati pensati per essere stateless. Questo significa che ogni endpoint può essere analizzato e testato singolarmente.

Le single-page application, al contrario, devono definire esplicitamente il modo in cui tutti gli stati vengono caricati, aggiornati e scartati dal front-end durante l'intera sessione. Questa struttura comporta una serie di problematiche inerenti caching e sincronizzazione che, di fatto, sono più limitate nei sistemi server-rendered.

Il ruolo del browser

Se si sceglie di sviluppare una single-page application si avrà bisogno di integrare nuovo codice con cui emulare le funzionalità del browser. Diversi sviluppatori passano per esempio diverse ore ad assicurarsi che il caricamento delle animazioni avvenga nel modo corretto. Questo lavoro è particolarmente impegnativo e richiede spesso molto tempo.

Framework

I framework come Rails, Phoenix o Laravel sono dei progetti che hanno alle spalle almeno 5 anni di sviluppo e dunque hanno avuto il tempo di maturare e di stabilizzarsi.

Chi sceglie di studiarli sa che tra altri 5 anni resteranno per molti aspetti invariati. L'ecosistema dei framework JavaScript è invece ricco di progetti validi ma molto recenti e spesso poco maturi.

SEO

Le single-page application necessitano non di rado di interventi aggiuntivi per essere indicizzate correttamente dai motori di ricerca. Mentre applicare le regole del SEO su una server-rendered architecture è generalmente più semplice.

Queste caratteristiche delle single-page application aggiungono uno strato di complessità extra che uno sviluppatore dovrebbe tenere sempre a mente durante la scelta dell'architettura ideale per il proprio progetto.

Vantaggi delle single-page application

Ovviamente esistono casi in cui le single-page application possono risultare invece un'alternativa ottimale:

  • quando si richiede che un'app sia sempre attiva e disponibile "in tempo reale";
  • quando le interazioni con l'UI sono l'elemento principale del progetto;
  • quando diversi stati sono condivisi tra le varie schermate.

Vi sono poi piattaforme come Github che sfruttano un approccio ibrido: realizzato seguendo un approccio tradizionale esso presenta aree specifiche, come le project tab, costruite come embedded frontend application.

Via Uku Täht

Ti consigliamo anche