Sunday, May 8, 2016

Os sete princípios de Meteor

Princípio #1 - Dados na fiação

Em resumo, “Não envie HTML pela rede. Envie simplesmente os dados e deixe o programa cliente decidir em como tornar visível esses dados”.  A idéia é enviar JSON para o navegador e ele o renderiza como um template handlebars ou spacebars. A propósito, Spacebars é a linguagem de templates do Meteor, inspirada no Handlebars, mas customizada para produzir templates reativos quando compilada.

Princípio #2 - Uma só linguagem: JavaScript

Quem está acostumado a usar Rails, Python ou Java no lado do servidor, geralmente acredita em utilizar o mínimo de javascript possível. Entretanto, faz muito mais sentido usar no lado do servidor a mesma linguagem que já somos obrigados a usar no navegador (browser).  Isso é perfeitamente válido, pois o Nodejs é uma implementação bastante veloz e efetiva para usar no servidor, e é disponibilizada no Meteor.  Alguns nomes de diretórios (pastas) têm significado especial: ‘server’ e ‘client’ contém programas que irão ser executadas somente no servidor ou navegador (cliente) respectivamente. O diretório ‘lib’ por sua vez será executado em ambos. O ‘public’ será considerado a raiz nas urls do servidor.

Princípio #3 - Banco de dados em todos os lugares

A mesma API (interface de programação) funciona tanto no lado do servidor como no lado do cliente. Utilizando MongoDB no servidor e Minimongo (uma mímica do MongoDB), as mesmas Collections podem ser acessadas no código que irá rodar no servidor ou cliente. A replicação dos dados será feita através do protocolo DDP (que falaremos adiante) transparentemente para o programador.

Princípio #4 - Compensação de latência

Uma simulação dos modelos e prefetching dos dados do banco é feita de forma que a conexão com o mongodb no servidor nos dá a impressão de ser local, praticamente sem retardos.

Princípio #5 - Reatividade de todo o stack

O default de todas as operações é “executar em tempo real” (real time). Todas as camadas, desde o banco de dados ao template possuem uma interface event-driven, ou seja, que pode ser controlada via eventos. Ao clicar um botão, ou digitar alguns caracteres, o usuário vê uma resposta imediata.

Princípio #6 - Abraçar o ecosistema

Formado a partir da combinação de muitos pacotes de software livre (e open source), Meteor tenta se integrar perfeitamente com eles, no lugar de substituí-los por outros programas próprios. Ademais, dada sua filosofia e arquitetura, fica bastante simplificado a adoção de outros programas livres disponíveis sem (ou com um mínimo) modificações.  Por exemplo, você pode adotar bibliotecas do Node.js para a maioria das funções que o próprio Meteor não tem prontas.

Princípio #7 - Simplicidade se equipara a produtividade

A melhor maneira de se fazer algo parecer simples é fazendo que esse algo seja simples na realidade. Se atinge esse objetivo através de APIs claras e elegantes.  Na prática, sabemos que nada pode ser tão simples assim, o que não consiste numa razão para rejeitar esse princípio.


No comments:

Post a Comment