Meteor: Criando aplicações web real-time com JavaScript
5/5
()
About this ebook
Neste livro, venha desenvolver sua própria rede social do zero implementando funcionalidades que interagem em tempo real, além de também aprender a trabalhar com diversos componentes nativos do framework que visam agilizar a prototipagem da aplicação, utilizando o Meteor 1.1.x.
Também veremos como lidar tarefas do dia a dia como criação de templates com Handlebars; integração com a API do Facebook para autenticação e cadastro de usuários; utilização do banco de dados não-relacional MongoDB; e programação orientada a eventos, utilizando PubSub nativo do Meteor.
Read more from Caio Ribeiro Pereira
Aplicações web real-time com Node.js Rating: 5 out of 5 stars5/5Construindo APIs REST com Node.js: Caio Ribeiro Pereira Rating: 5 out of 5 stars5/5
Related to Meteor
Related ebooks
O retorno do cangaceiro JavaScript: De padrões a uma abordagem funcional Rating: 0 out of 5 stars0 ratingsAplicações mobile híbridas com Cordova e PhoneGap Rating: 0 out of 5 stars0 ratingsECMAScript 6: Entre de cabeça no futuro do JavaScript Rating: 5 out of 5 stars5/5SOA aplicado: Integrando com web services e além Rating: 0 out of 5 stars0 ratingsZend Expressive e PHP 7: Uma união poderosa para a criação de APIs Rating: 0 out of 5 stars0 ratingsFront-end com Vue.js: Da teoria à prática sem complicações Rating: 5 out of 5 stars5/5Mezzio e PHP 7: Uma união poderosa para criação de APIs Rating: 2 out of 5 stars2/5JavaScript Assertivo: Testes e qualidade de código em todas as camadas da aplicação Rating: 0 out of 5 stars0 ratingsAngular 11 e Firebase: Construindo uma aplicação integrada com a plataforma do Google Rating: 0 out of 5 stars0 ratingsDominando JavaScript com jQuery Rating: 1 out of 5 stars1/5Coletânea Front-end: Uma antologia da comunidade front-end brasileira Rating: 0 out of 5 stars0 ratingsJSF Eficaz: As melhores práticas para o desenvolvedor web Java Rating: 0 out of 5 stars0 ratingsPrimeiros passos com Node.js Rating: 0 out of 5 stars0 ratingsGuia prático de TypeScript: Melhore suas aplicações JavaScript Rating: 0 out of 5 stars0 ratingsDesign Patterns com PHP 7: Desenvolva com as melhores soluções Rating: 5 out of 5 stars5/5Aplicações Java para a web com JSF e JPA Rating: 0 out of 5 stars0 ratingsProgramação Funcional: Uma introdução em Clojure Rating: 4 out of 5 stars4/5Vue.js: Construa aplicações incríveis Rating: 0 out of 5 stars0 ratingsDesenvolvimento web com ASP.NET MVC Rating: 0 out of 5 stars0 ratingsVire o jogo com Spring Framework Rating: 0 out of 5 stars0 ratingsProgressive Web Apps: Construa aplicações progressivas com React Rating: 3 out of 5 stars3/5Ruby: Aprenda a programar na linguagem mais divertida Rating: 0 out of 5 stars0 ratingsCanivete suíço do desenvolvedor Node Rating: 0 out of 5 stars0 ratingsProgramação Web avançada com PHP: Construindo software com componentes Rating: 0 out of 5 stars0 ratingsJava 9: Interativo, reativo e modularizado Rating: 0 out of 5 stars0 ratingsArquitetura de software distribuído: Boas práticas para um mundo de microsserviços Rating: 0 out of 5 stars0 ratingsCangaceiro JavaScript: Uma aventura no sertão da programação Rating: 5 out of 5 stars5/5HTML5 e CSS3: Domine a web do futuro Rating: 4 out of 5 stars4/5Produtividade em C#: Obtenha mais resultado com menos esforço Rating: 0 out of 5 stars0 ratingsMicrosserviços e EJB: Escale sua aplicação, não a complexidade Rating: 0 out of 5 stars0 ratings
Programming For You
Orientação a Objetos: Aprenda seus conceitos e suas aplicabilidades de forma efetiva Rating: 5 out of 5 stars5/5Arduino: Guia para colocar suas ideias em prática Rating: 5 out of 5 stars5/5HTML5 e CSS3: Domine a web do futuro Rating: 4 out of 5 stars4/5O universo da programação: Um guia de carreira em desenvolvimento de software Rating: 5 out of 5 stars5/5Introdução à programação em C: Os primeiros passos de um desenvolvedor Rating: 4 out of 5 stars4/5Lógica de Programação: Crie seus primeiros programas usando Javascript e HTML Rating: 3 out of 5 stars3/5Business Intelligence: Implementar do jeito certo e a custo zero Rating: 4 out of 5 stars4/5Aprenda a programar com Python: Descomplicando o desenvolvimento de software Rating: 5 out of 5 stars5/5Python: Escreva seus primeiros programas Rating: 4 out of 5 stars4/5MySQL: Comece com o principal banco de dados open source do mercado Rating: 4 out of 5 stars4/5Python e mercado financeiro: Programação para estudantes, investidores e analistas Rating: 5 out of 5 stars5/5Algoritmos em Java: Busca, ordenação e análise Rating: 5 out of 5 stars5/5Introdução a Data Science: Algoritmos de Machine Learning e métodos de análise Rating: 0 out of 5 stars0 ratingsScrum 360: Um guia completo e prático de agilidade Rating: 5 out of 5 stars5/5Desenvolvimento de Jogos em HTML5 Rating: 5 out of 5 stars5/5Lógica de programação com Portugol: Mais de 80 exemplos, 55 exercícios com gabarito e vídeos complementares Rating: 0 out of 5 stars0 ratingsTrilhas Python: Programação multiparadigma e desenvolvimento Web com Flask Rating: 4 out of 5 stars4/5Kotlin com Android: Crie aplicativos de maneira fácil e divertida Rating: 4 out of 5 stars4/5Consultoria Especializada e Estratégias De Trade De Forex Rating: 0 out of 5 stars0 ratingsDesenvolva jogos com HTML5 Canvas e JavaScript Rating: 4 out of 5 stars4/5Arduino prático: 10 projetos para executar, aprender, modificar e dominar o mundo Rating: 3 out of 5 stars3/5O Programador Apaixonado: Construindo uma carreira notável em desenvolvimento de software Rating: 5 out of 5 stars5/5Desbravando Java e Orientação a Objetos: Um guia para o iniciante da linguagem Rating: 5 out of 5 stars5/5Desenvolvimento web com PHP e MySQL Rating: 3 out of 5 stars3/5Certificação Linux Essentials Rating: 4 out of 5 stars4/5PHP e Laravel: Crie aplicações web como um verdadeiro artesão Rating: 0 out of 5 stars0 ratingsAPIs REST: Seus serviços prontos para o mundo real Rating: 5 out of 5 stars5/5Machine Learning: Introdução à classificação Rating: 0 out of 5 stars0 ratingsOrientação a Objetos em C#: Conceitos e implementações em .NET Rating: 5 out of 5 stars5/5SEO Prático: Seu site na primeira página das buscas Rating: 0 out of 5 stars0 ratings
Reviews for Meteor
2 ratings0 reviews
Book preview
Meteor - Caio Ribeiro Pereira
Agradecimentos
Obrigado, Deus, por mais uma conquista em minha vida! Obrigado pai e mãe pelo amor, força e incentivo em todas as etapas decisivas de minha vida. Obrigado por tudo e principalmente por estar ao meu lado em todos os momentos.
Agradeço à sra. Charlotte Bento de Carvalho, pelo apoio e incentivo nos meus estudos desde a escola até a minha formatura na faculdade.
Obrigado ao pessoal da editora Casa do Código, em especial ao Paulo Silveira e Adriano Almeida. Muito obrigado pelo suporte, apoio, pela confiança e por mais esta nova oportunidade.
Obrigado à galera da comunidade NodeBR e Meteor Brasil, Os feedbacks de vocês ajudaram muito a melhorar este livro e também meu livro anterior de Node.js.
Obrigado também aos leitores do blog meu Underground WebDev (http://udgwebdev.com) que acompanham e comentam os posts frequentemente.
Por último, obrigado a você, prezado leitor, por adquirir meu novo livro. Que este seja, uma boa referência de estudos sobre Meteor.
Sobre o autor
Caio Ribeiro PereiraFig. 0.1: Caio Ribeiro Pereira
Caio Ribeiro Pereira trabalha como Engenheiro de Software, bacharel em Sistemas de Informação pela Universidade Católica de Santos, sua experiência é baseada no domínio dessa sopa de letrinhas: Node.js, Meteor, JavaScript, Ruby, Java, Filosofia Lean, Scrum, XP e TDD.
Blogueiro nos tempos livres, apaixonado por desenvolvimento de software, web, tecnologias, filmes e seriados. Participante ativo das comunidades:
NodeBR: Comunidade Brasileira de Node.js
MeteorBrasil: Comunidade Brasileira de Meteor
DevInSantos: Grupo de Desenvolvedores de Software em Santos
Iniciou em 2011 como palestrante nos eventos DevInSantos, Santos.Frontend() e Exatec, abordando temas atuais sobre Node.js, JavaScript e Meteor.
Autor dos projetos:
Blog Underground WebDev - http://udgwebdev.com
DevFreeCasts - http://devfreecasts.org
DevFreeBooks - http://devfreebooks.org
DevGroups - http://devgroups.org
Node Web Modules - http://nodewebmodules.com
Prefácio
As mudanças do mundo web
Atualmente, o JavaScript já é uma opção real e aceitável no desenvolvimento server-side em muitos projetos. Isso traz como uma das vantagens a possibilidade de construir uma aplicação utilizando apenas uma única linguagem, tanto no cliente (através do clássico JavaScript compatível em todos os browsers) como no servidor (através do íncrivel e poderoso Node.js!).
Graças ao Node.js, diversos frameworks web surgiram — diferente das outras linguagens, existem mais de 30 frameworks web para Node.js! Não acredita? Então veja com seus próprios olhos essa lista de frameworks acessando o site:
http://nodewebmodules.com
Express e Meteor são os frameworks que mais se destacam, ambos são frameworks para Node.js com características únicas. O Express é considerado um framework minimalista, focado em criar projetos através de estruturas customizadas pelo desenvolvedor. Com ele é possível criar serviços REST, aplicações web tanto em padrão MVC (Model-View-Controller) como MVR (Model-View-Routes) ou totalmente sem padrão em um único arquivo, tudo vai depender das boas práticas aplicadas pelo desenvolvedor. Uma aplicação Express pode ser pequena ou de grande porte, tudo vai depender dos requisitos e, principalmente, de como vai organizar todos códigos nele, afinal com o Express você tem o poder de aplicar suas próprias convenções e organizações de código. Outro detalhe é que você utiliza seu próprio framework de persistência de dados, então todo controle fica em suas mãos.
A princípio, se você possui um bom conhecimento sobre o Express e os demais frameworks necessários para construir sua aplicação, então você terá velocidade suficiente para desenvolver uma aplicação de forma ágil. Mas e se existisse um framework Node.js, cujo foco é prototipar telas em extrema velocidade? Tudo isso utilizando componentes prontos que são facilmente customizáveis e com configurações complexas simplificadas alto nível para você utilizar (aplicando os princípios de convenção sobre configuração). No mundo Ruby, isso deu certo através do inovador framework Rails; agora temos uma inovação semelhante no mundo Node.js, essa inovação se chama Meteor.
A quem se destina este livro?
Esse livro é destinado aos desenvolvedores que tenham pelo menos conhecimentos básicos de Node.js, Javascript e arquitetura web cliente-servidor. Ter domínio desses conceitos, mesmo que a nível básico, será necessário para que a leitura seja de fácil entendimento.
Como devo estudar?
Este livro é praticamente um hands-on que visa ensinar os principais conceitos do Meteor através da construção de uma aplicação web do zero. Ao decorrer da leitura serão apresentados diversos conceitos e muito código para implementar no projeto, aplicar na prática os conceitos teóricos e aprender boas práticas e convenções desta tecnologia.
Você pode discutir sobre este livro no Fórum da Casa do Código: http://forum.casadocodigo.com.br/.
Capítulo 1:
Introdução
1.1 Conhecendo seu mundo
O Meteor é um framework web full-stack 100% JavaScript, ou seja, com ele você vai construir aplicações programando em todas as camadas: cliente, servidor e banco de dados, usando JavaScript, Node.js e MongoDB, tudo isso utilizando apenas uma única linguagem de programação, o JavaScript.
Outro detalhe importante é que o foco desse framework é a prototipagem rápida, fazendo com que trabalhos que levariam meses sejam realizados em semanas, ou até mesmo alguns dias. Isso é possível graças aos seus recursos que visam automatizar tarefas repetitivas, exibir respostas imediatas no browser, diversas convenções, vários componentes customizáveis prontos para uso e também as configurações complexas de baixo nível que estão simplificadas para o desenvolvedor. Por default, suas aplicações Meteor serão em formato single-page real-time, mas também é possível criar aplicações multi-page orientado a rotas. Este framework é considerado como um MVVM (Model-View View-Model), ou seja, não existe controllers ou routes por default, mas é customizá-lo com o propósito de adicionar controllers, routes e outros patterns através da inclusão packages third-party.
O Meteor é uma plataforma de desenvolvimento completa, sendo que o mecanismo principal responsável por toda magia back-end é o Node.js. Assim como o Node.js possui seu gerenciador de módulos — o NPM (Node Package Manager), o Meteor possui o seu próprio gerenciador de packages (sim, módulos e packages são a mesma coisa, ou seja, são frameworks), que se chama Atmosphere. Este permite usar projetos third-party criados pela comunidade, sem contar que também é possível utilizar a maioria — mas não todos — dos módulos NPM dentro de uma aplicação Meteor (algo que será explicado nos capítulos futuros). Isso pode evitar a invenção da roda
, porém tudo vai depender da compatibilidade de tal módulo Node no contexto do Meteor.
Trabalhar com Meteor é trabalhar com JavaScript, e isso faz com que muitos desenvolvedores tenham uma curva de aprendizado rápida, e em poucos dias de estudos você terá dominado os principais pontos e aspectos deste framework. Se você não conhece Node.js mas domina JavaScript, não tenha receio de ler esse livro, pois poucas coisas sobre Node.js serão abordadas aqui.
Este é um framework de muitos recursos, ou seja, constituído por um conjunto de frameworks do mundo Node.js e JavaScript. Algumas bibliotecas conhecidas que fazem parte dele são:
SockJS — framework emulador de WebSockets e responsável pelo funcionamento do protocolo DDP (Data Distribution Protocol).
MongoDB — banco de dados default.
Handlebars — template engine.
PubSub