Attualmente esistono diversi approcci per la creazione di applicazioni Web:
1. Solo lato server
Questo è un approccio classico in cui si renderizzano le pagine sul server da una struttura web come Ruby on Rails, Django, Express, Play! Quadro ed ecc.
Flusso di lavoro tipico : crea tutta la tua logica aziendale, i modelli e i modelli di visualizzazione sul server nel quadro di tua scelta.
2. API lato client + REST
Relativamente non molto tempo fa, la comunità Web nel suo complesso ha iniziato a sviluppare applicazioni lato client in Angular, Backbone, Ember e alcune decine di altri framework JavaScript MV *. E ora abbiamo anche React.js ad unirsi alla festa.
UPDATE : non ci sono equivoci. Ciò che intendevo per parte del cliente è solo la completa separazione delle preoccupazioni. Hai un server API REST e un'applicazione client che parla con quel server. A seconda del tuo caso d'uso, è probabile che non avrai mai una vera applicazione lato client che non si connette a un back-end per l'autenticazione o la persistenza dei dati.
Flusso di lavoro tipico : trascorri ore a decidere su Angular vs Backbone vs Ember vs X. Poi costruisci percorsi, modelli, viste, controller sul client. Dopo aver terminato, ora crea modelli, controller, rotte sul server. In un certo senso stai facendo il doppio del lavoro.
3. Hybrid
Non ne so molto sull'utilizzo di questo approccio, ma se dovessi fare una supposizione, rendi le tue viste (Vista del framework MVC) sul server. Di conseguenza ottieni supporto SEO più carichi di pagine più veloci.
Sul fronte Hybrid c'è il rendering di airbnb che presumibilmente combina backbone ed express insieme.
Eric Florenzo ha pubblicato sul suo blog oggi: React: Infine, un ottimo server / stack Web client .
La quantità di modi per creare applicazioni web è semplicemente schiacciante. E per qualcuno che sta imparando lo sviluppo web questo può diventare un problema. Come si può decidere quale approccio utilizzare per costruire la loro prossima applicazione?