Os Benefícios do Tempo Real para Qualquer Aplicação Web
Estruturas web em tempo real como Meteoros são normalmente caracterizadas pela sua capacidade
para alimentar aplicações colaborativas e responsivas, mas as mesmas características
também fornecem valor às aplicações tradicionais. Com Meteoros em particular,
em tempo real é exposto ao desenvolvedor como uma base de dados persistente que pode ser usada
de forma semelhante, tanto do cliente como do servidor. Esta base de dados partilhada serve como uma única
fonte de verdade que unifica o estado tradicionalmente difundido das aplicações web:
base de dados, variáveis in-memory do servidor de aplicações, in-memory
cache, variáveis javascript in-browser, e DOM in-browser. A capacidade de
forgo syncing state simplifica o desenvolvimento até mesmo de aplicações CRUD de usuário único.
A sincronização do estado através dos diferentes níveis de aplicação é normalmente
uma fonte de placas de caldeira e bugs. Considere a tradicional pilha de aplicações
com as suas variadas representações e transformações de dados:
- Modelo de objeto de documento do navegador
- Imperativamente sincronizado com jQuery ou declarativamente sincronizado com estruturas como Angular, Reagir, etc.
- Navegador JavaScript
- Sincronizado manualmente com AJAX e REST endpoints (ou protocolo mais recente como WebSocket com esquema personalizado)
- Aplicação web do servidor
- Sincronizado manualmente através de ORM ou acesso directo a bases de dados como SQL
- Base de dados
O cabeamento de cada camada requer código adicional e também duplica o estado em
vários formulários: estruturas de dados javascript do lado do cliente, dados do lado do servidor
estruturas, e representação de bases de dados. Alguma simplificação é possível através de
usando JavaScript tanto para cliente como para servidor. As camadas de dados também podem ser feitas
uniforme, usando o JSON em todo o processo, por exemplo, MongoDB, em vez de um
base de dados. Entretanto, mesmo com essas padronizações, o desenvolvedor da aplicação
precisa de engatar camadas com os pontos finais REST e empurrar os dados para cima e para baixo
camadas. Meteoro simplifica esta pilha com a seguinte arquitectura:
- Modelo de objeto de documento do navegador
- Sincronizado declarativamente com Spacebars, uma estrutura de modelos baseada no Handlebar.js
- Navegador JavaScript
- Sincronização automática da base de dados do lado do cliente (MiniMongo) com estruturas de dados do lado do servidor sobre DDP (um mecanismo de transporte através de websockets ou sockjs)
- JavaScript do servidor
- Sincronização automática das estruturas de dados do servidor com a base de dados (MongoDB) com o LiveQuery
- MongoDB
Em alguns aspectos, o Meteoro fornece um modelo de programação que se assemelha ao primeiro
geração de aplicações web dinâmicas: a visualização em HTML pode ser diretamente templates
da base de dados. Este modelo de programação simplificado reduz as peças móveis
e oportunidades para bugs em qualquer aplicação.