Modelos e coleções em BackboneJS

O que são os modelos e as coleções, e que vantagens nos oferece BackboneJS para tratá-los.

Por Miguel Angel Alvarez - Tradução de Celeste Veiga


Publicado em: 09/9/13
Valorize este artigo:
Ao longo do Manual de BackboneJS estamos explorando as possibilidades deste framework Javascript. Dedicamos os artigos precedentes às generalidades desta ferramenta e às possibilidades dos eventos.

Neste artigo nos centraremos nas possibilidades dos modelos, que não são outra coisa que a maneira que usamos em Backbone para armazenar os dados da aplicação. Ademais, dedicaremos também umas linhas para introduzir outro dos integrantes de Backbone.JS estreitamente ligado aos modelos, como são as coleções.

Modelos em BackboneJS

A continuação vejamos o que são os modelos no framework Javascript BackboneJS e para que servem, de modo que possamos entender as vantagens que podemos desfrutar ao usá-los. Os modelos, como em outros sistemas enfocados a MCV, se referem aos dados da aplicação. Se tenho uma aplicação que trabalha com subscrições de correio eletrônico, o modelo será cada uma das contas de usuário do sistema. Se tenho uma aplicação que se encarrega de mostrar uma base de dados de filmes, o modelo será cada um desses filmes.

Os modelos em BackboneJS podem com qualquer objeto em notação JSON. Neles são escritos os dados que podemos ter dentro do modelo. Ao estendê-los com a funcionalidade de BackboneJS vamos conseguir várias melhorias:

  • Eventos no modelo. Posso, tanto escutar eventos, quanto dispará-los.
  • "Bindeo" de eventos e "bindeo" de mudanças.
  • Sincronização com o servidor e notificação de mudanças.
Isto, em poucas palavras, possibilita que, você ao modificar um valor de um modelo, a aplicação possa reagir em varios outros objetos que estejam inscritos nos eventos de mudanças nos dados de um modelo.

Para entender a potencia disto, suponhamos que você está mostrando em algum lugar os dados de um usuário. Se você modificar com Javascript os dados desse usuário em um lugar, você terá que estar repassando à mão todos os outros lugares onde estiver mostrando esses dados desse usuário e atualizá-los manualmente. Usando Backbone tudo isto é automático e você tem os modelos desacoplados das vistas, comunicando através de eventos. Quando você muda algo em um modelo, se produzem eventos e você pode escutar esses eventos em varias vistas diferentes que poderiam ser atualizados automaticamente quando se produzem mudanças no modelo.

Isto permite a você não só automatizar muitos dos processos de visualização da informação atualizada ao longo do web site, com também facilita a reutilização dos modelos em outros projetos, mantendo as automatizações de uma maneira simples.

Sincronização com o servidor

Outra das genialidades de BackboneJS está no "sync", pois se eu quiser , ao criar o modelo posso dotá-lo de uma URL e fazer "save" no modelo para chamar o servidor a essa URL e salvar suas mudanças. Dito de outra forma, a partir de um modelo posso executar uma função de salvar que automaticamente faz uma solicitação por AJAX ao meu servidor, enviando os dados novos que deve salvar.

Ou seja, você não tem que fazer muito, você simplesmente tem seus modelos e ao dar "save" de seus valores, BackboneJS chama sozinho o servidor por AJAX e já envia os dados com um formato que facilita sua recepção.

Nota: Obviamente, isto requer que no backend, com programação do lado do servidor em qualquer linguagem de sua preferência, você programe a página que vai receber esses dados e que vai atualizar as estruturas onde você os salva, como base de dados. Entretanto, uma vez criadas é muito fácil reutilizá-las em outros projetos onde você também utilize esse modelo.

Coleções em BackboneJS

Agora vamos nos dedicar a entender o que são as coleções em BackboneJS e que processos podem nos facilitar. Uma coleção, como seu próprio nome indica, é um conjunto de dados. Em BackboneJS geralmente uma coleção será um conjunto de modelos.

Nota: Realmente pela arquitetura do framework em uma coleção não somos obrigados a salvar unicamente modelos. No entanto, poderemos observar na prática, que nas coleções acabaremos salvando modelos e é aí onde as coisas terão mais sentido ao usar BackboneJS e você poderá tirar um partido maior destas estruturas.

Com as coleções, do mesmo modo que acontecia com os modelos, temos à nossa disposição a possibilidade de escutar e produzir eventos e a interface "sync" para a sincronização com o servidor.

Graças à sincronização, se você tem uma coleção e fez mudanças nela, poderá dar um "save" e então os dados que haja nos modelos da coleção serão enviados ao servidor mediante AJAX e de maneira automática para o desenvolvedor. De maneira similar, quando carrega a aplicação, também nas coleções poderemos dar "fetch" para carregar nelas dados que nos venham do servidor. Automaticamente, a coleção faz por AJAX o "get" para o servidor e vai carregar nela os dados que este lhe retorne.

Conclusão

A ideia deste artigo foi mais esclarecer conceitos e entender por que BackboneJS é uma ferramenta tão útil. Ainda temos outras estruturas e classes que devemos identificar para poder observar o alcance global de backbone.JS e seguiremos com ele no artigo seguinte.

Nota: Veremos as implementações em código fonte de modelos e as coleções um pouco mais adiante, quando comecemos com as práticas.

No artigo seguinte você poderá conhecer mais detalhadamente o que são as vistas para Backbone.JS e quais suas utilidades no dsenvolvimento web baseado neste framework.





Comentários do artigo
Foram enviados 2 comentários ao artigo
2 comentários não revisados
0 comentários revisados

Usuários :    login / registro

Categorias relacionadas
O autor

Home | Sobre nós | Copyright | Anuncie | Entrar em contato