Atualmente, existem várias abordagens para criar aplicativos da Web:
1. Apenas do lado do servidor
Essa é uma abordagem clássica na qual você processa páginas no servidor por uma estrutura da web como Ruby on Rails, Django, Express, Play! Estrutura e etc.
Fluxo de trabalho típico : crie toda a lógica de negócios, modelos e visualize modelos no servidor na estrutura de sua escolha.
2. API do lado do cliente + REST
Há relativamente pouco tempo, a comunidade da web como um todo começou a criar aplicativos do lado do cliente em Angular, Backbone, Ember e algumas dezenas de outras estruturas JavaScript MV *. E agora também temos o React.js para participar da festa.
ATUALIZAÇÃO : Não há mal-entendidos. O que eu quis dizer com apenas do lado do cliente é a completa separação de preocupações. Você possui um servidor API REST e um aplicativo do lado do cliente que se comunica com esse servidor. Dependendo do seu caso de uso, as chances são de que você nunca tenha um aplicativo verdadeiro apenas do lado do cliente que não se conecte a um back-end para autenticação ou persistência de dados.
Fluxo de trabalho típico : gaste horas decidindo Angular x Backbone x Ember x X. Em seguida, você constrói suas rotas, modelos, visualizações, controladores no cliente. Depois de terminar, agora crie modelos, controladores, rotas no servidor. De certa forma, você está fazendo o dobro da quantidade de trabalho.
3. Híbrido
Não sei muito sobre o uso dessa abordagem, mas, se eu adivinhar, você renderiza suas visualizações (exibição da estrutura MVC) no servidor. Como resultado, você obtém suporte de SEO e carregamentos de página mais rápidos.
Na frente híbrida, há o rendr do airbnb que supostamente combina backbone e expresso.
Eric Florenzo postou em seu blog hoje: React: Finalmente, uma excelente pilha de servidores / clientes .
A quantidade de maneiras de criar aplicativos da Web é impressionante. E para alguém que está aprendendo desenvolvimento web, isso pode se tornar um problema. Como alguém decide sobre qual abordagem usar para criar seu próximo aplicativo?