Começando com meteor

1.251 visualizações

Publicada em

0 comentários
2 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.251
No SlideShare
0
A partir de incorporações
0
Número de incorporações
257
Ações
Compartilhamentos
0
Downloads
9
Comentários
0
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Começando com meteor

  1. 1. começando com Meteor por Flávio Junior - http://github.com/fjsj
  2. 2. O que é? Meteor é uma plataforma open-source para construção de web apps de qualidade top em uma fração do tempo, seja você um desenvolvedor expert ou apenas iniciante. traduzido de http://www.meteor.com/ Meteor é implementado sobre node.js e por padrão usa MongoDB como banco de dados e Handlebars como linguagem de template.
  3. 3. Como? 001 - Tudo em JavaScript 002 - Atualização em tempo real de páginas 003 - Sincronização de dados cliente-servidor 004 - Compensação de latência 005 - Code pushes 006 - Código sensível em ambiente seguro 007 - App auto-contido para deploy 008 - Interoperabilidade via protocolo DDP 009 - Smart packages traduzido de http://www.meteor.com/
  4. 4. 001 - Tudo em JavaScript Cliente e servidor usam JavaScript: Sintaxe de consultas com o banco de dados é praticamente idêntica a original do MongoDB. if (Meteor.isClient) { Template.leaderboard.players = function () { return Players.find({}, {sort: {score: -1, name: 1}}); }; } if (Meteor.isServer) { Players.insert({name: "Fulano", score: 10}); }
  5. 5. 002 - Atualização em tempo real de páginas "No more boilerplate redraw code": Templates reativos. Quando o valor mudar, ele será atualizado automaticamente. <template name="player"> <div class="player {{selected}}"> <span class="name">{{name}}</span> <span class="score">{{score}}</span> </div> </template> ------------------------------------------------------------------ Players.update("507f191e810c19729de860ea", {$inc: {score: 5}});
  6. 6. 002 - Atualização em tempo real de páginas Como ter reatividade no client-side apenas para o usuário atual? Use o módulo Session Template.player.events({ 'click': function () { Session.set("selected_player", this._id); } }); Template.player.selected = function () { return Session.equals("selected_player", this._id) ? "selected" : ''; };
  7. 7. 003 - Sincronização de dados cliente-servidor "No more loading your data from REST endpoints": Acesso "direto" ao banco de dados a partir do cliente. if (Meteor.isClient) { Template.leaderboard.players = function () { return Players.find({}, {sort: {score: -1, name: 1}}); }; }
  8. 8. 004 - Compensação de latência Quando o usuário faz uma ação, a tela se atualiza imediatamente. Se o servidor rejeitar a mudança, a tela do cliente é corrigida de acordo com o que aconteceu realmente.
  9. 9. 005 - Code pushes A melhor feature para desenvolver protótipos e para atualizar o webapp sem incomodar o usuário.
  10. 10. 006 - Código sensível em ambiente seguro Por questões de segurança, pode-se garantir que o código rodará e estará disponível apenas no servidor: // código em um diretório server/methods.js Meteor.methods({ fetchEvents: function (accessToken) { // ... } });
  11. 11. 007 - App auto-contido para deploy Com o comando meteor bundle você monta um pacote com a aplicação pronta para deploy. Se quiser hospedar nos servidores do próprio Meteor, você usa o comando meteor deploy nomedoapp.meteor.com
  12. 12. 008 - Interoperabilidade via protocolo DDP Distributed Data Protocol é o protocolo por trás da capacidade de reatividade e atualizações em tempo-real dos aplicativos Meteor. "DDP can work with any database, framework, or programming language, and it can work on servers, clients, and mobile devices. In fact, you can call Meteor.connect to connect to any DDP server -- such as a Meteor app written by someone else! -- and make realtime subscriptions to any data it's publishing."
  13. 13. 009 - Smart packages ● Você pode usar pacotes prontos que adicionam funcionalidades ao seu aplicativo Meteor. Exemplos de pacotes: underscore, d3, coffeescript. ● Pacotes são diferentes de módulos npm, mas você pode utilizá-los em seus pacotes Meteor. ● Também existe um repositório com pacotes open-source da comunidade Meteor. Se chama Atmosphere: https://atmosphere.meteor. com/
  14. 14. Exemplo Conferir o código do exemplo leaderboard http://www.meteor.com/examples/leaderboard
  15. 15. Dúvidas? http://github.com/fjsj flaviojuvenal+meteor@gmail.com

×