POST DO
KEMEL
TECNOLOGIA
28
Cargo:
Evangelista de Tecnologia
Twitter:
@kemelzaidan
Facebook:
facebook.com/
kemelzaidan
KEMEL ZAIDAN
á um ano eu estava
pesquisando frameworks web
em Node.js e deparei com o
Meteor.js. Desde então, tenho
gasto algum tempo estudando
e testando a plataforma.
A primeira coisa que me deixou curioso
foi o fato de o Meteor não ser MVC. Boa parte
dos frameworks web que temos em atividade
hoje em dia são reimplementações do Rails
(para os “full stacks”) ou do Sinatra (no caso dos
microframeworks) só que em outras linguagens.
Contudo, o Rails completou dez anos e esta me
pareceu ser uma boa hora para encontrar um
paradigma que seja melhor do que o já batido
“Model, View, Controller”.
Um conceito fundamental na arquitetura do
Meteor é a reatividade. Todo aplicativo feito com
ele é, desde o início, um “single page application”.
$íQDO ID] SRXFR VHQWLGR QRV GLDV GH KRMH íFDU
renderizando HTML no lado do servidor e servindo
estaticamente para o navegador.
Em vez disso, o framework cria uma “espécie
de API”, cujo cliente monitora qualquer mudança,
sendo que apenas dados trafegam de um lado ao
RXWUR 4XDQGR DOJXP GDGR « PRGLíFDGR QR ODGR GR
FOLHQWH HVVD PXGDQ©D VH UHîHWH DXWRPDWLFDPHQWH
no servidor e vice-versa. Além da enorme facilidade
que isso traz ao trabalho do desenvolvedor, a
DSOLFD©¥R íFD EDVWDQWH UHVSRQVLYD SRLV Q¥R « PDLV
necessário baixar a página inteira novamente e
renderizar todo o conteúdo, simplesmente porque
uma pequena parte precisa ser atualizada. Nunca
foi tão simples fazer AJAX.
3RU FRQWD GLVVR VHU ÛPRELOH íUVWÜ íFD I£FLO
uma vez que a API encontra-se pronta. O Meteor
possui integração nativa com o Apache Cordova,
ao ponto de tornar a criação de uma aplicação
$QGURLG RX L26 DSHQDV XPD HVSHFLíFLGDGH GHQWUR
GR PHVPR îX[R GH GHVHQYROYLPHQWR R TXH H[LJH
literalmente, algumas poucas linhas de código
a mais. Boa parte dele é compartilhada com o
servidor e o cliente, de forma que você só precisa
VH SUHRFXSDU HP FULDU DTXLOR TXH « HVSHF¯íFR GRV
dispositivos móveis.
Qualquer linguagem de programação
moderna conta com gerenciamento de pacotes e
dependências: o Ruby tem as Gems, o Python tem
o Pip, o Perl faz uso do CPAN, o PHP do Composer,
e mesmo o Node.js possui o NPM. Apesar de ser
tranquilamente possível fazer uso de módulos
NPM no Meteor, ele possui seu próprio repositório
de pacotes: o Atmosphere. A diferença é que os
pacotes no Atmosphere são adaptados para fazer
uso da reatividade presente no framework e podem
também conter “partials” (segmentos de código
HTML dinâmico) que podem ser usados facilmente
para acelerar a criação dos templates.
Aliás, o Meteor possui o Blaze, seu próprio
engine de templates baseado no Handlebars que
se mostra extremamente simples e poderoso de
usar. Contudo, por transferir apenas dados entre
servidor e cliente, o Blaze pode ser facilmente
substituído pelo Angular ou React.js, bem ao gosto
do freguês.
Há muito mais para ser dito sobre o Meteor.
Caso você tenha se interessado por ele, veja o site
do projeto:
www.meteor.com .H
[
O METEOR
POSSUI O BLAZE,
SEU PRÓPRIO
ENGINE DE
TEMPLATES
BASEADO NO
HANDLEBARS E
QUE SE MOSTRA
EXTREMAMENTE
SIMPLES E
PODEROSO DE
USAR
]
METEOR.JS:
LW
ALÉMDOMVC
REVISTA LOCAWEB