SlideShare une entreprise Scribd logo
1  sur  31
Télécharger pour lire hors ligne
METEOR DE PEGASUS
DESENVOLVENDO APLICAÇÕES WEB COM METEOR.JS
Meteor is developed by the Meteor Development Group. The
startup was incubated by Y Combinator and received
$11.2MM in funding from Andreessen Horowitz in July 2012.
HISTORY
https://en.wikipedia.org/wiki/Meteor_(web_framework)
ONE LANGUAGE
Node - back
Javascript - front
Mongodb - database
REUNIÃO DE LIBS
Sockjs - framework emulador de websocket e responsavel pelo funcioamendto do protocolo DDP
Websocket-based data protocol DDP is like "REST for websockets". Like REST, it is a simple, pragmatic approach to
providing an API. But it is websocket-based, unlike REST, allowing it to be used to deliver live updates as data
changes. Implementation of DDP is simple (it's just a few JSON messages over a websocket) and the spec fits on a
couple of pages.
MongoDB - duh
REUNIÃO DE LIBS2
Handlebars - template engine
PubSub - lib de emissao e escuta de eventos via patter pubsub
MiniMongo - API clinet-side que possui a maioria das funcionalidades do mongodb (mongodb no front)
The minimongo package is a reimplementation of (almost) the entire MongoDB API, against an in-memory
JavaScript database. It is like a MongoDB emulator that runs inside your web browser. You can insert data into it and
search, sort, and update that data.
Connect - modulo node com funcionalidades para trabalhar com protocolo HTTP
SOCKJS
SockJS is a browser JavaScript library that provides a WebSocket-like object. SockJS gives you a coherent, cross-
browser, Javascript API which creates a low latency, full duplex, cross-domain communication channel between the
browser and the web server. Under the hood SockJS tries to use native WebSockets first. If that fails it can use a variety of
browser-specific transport protocols and presents them through WebSocket-like abstractions. SockJS is intended to
work for all modern browsers and in environments which don't support the WebSocket protocol -- for example, behind
restrictive corporate proxies. SockJS-client does require a server counterpart:
OS 7 PRÍNCIPIOS DO
METEOR
Data on the wire: Não envie HTML pela rede e sim apenas dados para deixar o cliente decidir como renderizá-lo.
One language: Escreva código Javascript em ambas camadas: cliente e servidor.
Database anywhere: Utilize uma API de interface única e transparente que te permite acessar o banco de dados tanto no
cliente como no servidor.
Latency compensation: No cliente é usado prefetching e model simulation na API do banco de dados para atingir latência
zero no acesso de seus recursos.
Full-Stack Reactivity: Por default tudo funciona em real-time. E todas as camadas da aplicação adotam o paradigma
orientado à eventos, que é herdado do Node.js.
Embrace the ecosystem: Totalmente open-source o Meteor possui suas convenções pelo qual agrega novos valores ao
invés de ser ferramenta uma que vai substituir outros frameworks atuais.
Simplicity equals Productivity: Seja produtivo! Desenvolva de forma simplificada, utilize APIs fáceis de aprender e
implementar, afinal essa será a melhor forma de criar uma aplicação.
HTTPS://WWW.METEO
R.COM/TRY/
PACKAGE MANAGER
PROPRIO
HTTPS://ATMOSPHEREJS.COM/
LIVE RELOAD!
But only on the server ://
TESTES :S
VELOCITY
sanjo:jasmine - Write client and server unit and integration tests with Jasmine.
mike:mocha - A Velocity version of mocha-web. Runs mocha tests in the Meteor context which is great for integration
testing.
xolvio:cucumber - Use BDD Gherkin-syntax cucumber to test your app. Includes PhantomJS and Selenium as well as
SauceLabs support.
rsbatech:robotframework - Robot Framework end to end test integration using Selenium and many other test libraries
Big news! Work is underway on Velocity, the official testing framework for
Meteor.
July 14, 2014 By Alice Yu
SUCCESS CASES
SUPPORTED
BROWSERS
METEOR IS ACTIVELY TESTED BY MDG TO WORK PROPERLY
ON THE FOLLOWING BROWSERS:
Android stock browser (Webkit based)
Chrome
Firefox 7+
iOS browser
IE8+
Safari 4+
Desktop Opera
Mobile Opera
src: http://meteorpedia.com/read/Supported_Browsers (2014-06-19)
WHEN NOT TO USE
METEOR
Meteor is best suited for Single-Page Apps, and less suited: relational minds
For graphics-heavy mobile games, it may be better to build a native app
For applications with very large numbers of concurrent connections, Meteor might require larger amounts of RAM
Scaling - if you need Facebook-scale now, Meteor is not the best solution LOL
-- Dan Dascalescu, @dandv
WHAT METEOR LACKS
Native reactive "joins" for MongoDB
A native mechanism to load templates dynamically
Two-way data binding as in Angular
Native server-side rendering (useful for SEO).
Production-ready support for Windows (Risos)
Easy explicit control over file load ordering
One blessed or recommended package for a given 3rd party library you find in its package repository, Atmosphere. The
Atmosphere is still in need of cleanup
-- Dan Dascalescu, @dandv
.METEOR
The build folder
INTEGRAÇAO COM PACKAGE.JSON
BUILT IN MONGODB AND SERVER
Obs: Ids zuados! Não já ObjectId
WTF!
REALTIME DESGRAÇA!
WHAT BELONGS TO
WHO
MONGO ON THE
FRONT!
insecure: Meteor also has a special "insecure mode" for quickly prototyping new applications. In insecure mode, if you
haven't set up any allow or deny rules on a collection, then all users have full write access to the collection. This is the only
effect of insecure mode.
Autopublish: self explained
Obs: Remova insecure e autopublish quanto antes do seu projeto
REACTIVE TEMPLATE!
BLAZE
http://meteor.github.io/blaze/
LATENCY
COMPENSATION
There are only two places where you can do a write
operation to a data store: inside a method call or directly via
a local collection.
SEM LATENCY COMPENSATION :(
// File: /client/app.js
Template.addPost.events({
"click button": function() {
var title = $('#title').val();
var content = $('#content').val();
var post = {
title: title,
content: content
};
Meteor.call('addPost', post, function(err, postId) {
if(err) {
alert(err.reason);
} else {
Router.go('/post/' + postId);
COM LATENCY COMPENSATION :)
// File: /client/app.js
Template.addPost.events({
"click button": function() {
var title = $('#title').val();
var content = $('#content').val();
var post = {
title: title,
content: content,
_id: Random.id()
};
Meteor.call('addPost', post, function(err) {
if(err) {
alert(err.reason);
}
});
PUBSUB
Meteor.publish('Clients', function(){
return Clients.find({});
});
Meteor.subscribe("Clients");
MÃE, QUERO USAR
ANGULAROU
EMBER.JS!
NA NANANA NÃO, NOT A GOOD IDEA.
QUANDO USAR
METEOR EM UMA
APLICAÇÃO?
GOOD PACKAGES!
accounts-base 1.1.3* A user account system
accounts-meteor-developer 1.0.3* Login service for Meteor developer accounts
accounts-password 1.0.6* Password support for accounts
accounts-ui 1.1.4* Simple templates to add login widgets to an app
alanning:roles 1.2.13 Role-based authorization
aldeed:autoform 4.2.2* Easily create forms with automatic insert and update, and automatic reactive validation.
aldeed:collection2 2.3.2* Automatic validation of insert and update operations on the client and server.
aldeed:simple-schema 1.3.0* A simple schema validation object with reactivity. Used by collection2 and autoform.
cfs:filesystem 0.1.1* Filesystem storage adapter for CollectionFS
cfs:gridfs 0.0.27* GridFS storage adapter for CollectionFS
cfs:standard-packages 0.5.3* Filesystem for Meteor, collectionFS
email 1.0.5* Send email messages
insecure 1.0.2* Allow all database writes by default
iron:router 1.0.7 Routing specifically designed for Meteor
meteor-platform 1.2.1* Include a standard set of Meteor packages in your app
meteorhacks:npm 1.2.2* Use npm modules with your Meteor App
mizzao:user-status 0.6.4 User connection and idle state tracking for Meteor
npm-container 1.0.0+ Contains all your npm dependencies
okgrow:iron-router-autoscroll 0.0.7* Fixes page position after changing pages using Iron Router
pascoual:pdfkit 1.0.5 PDFKit, the PDF generation library
yogiben:admin 1.1.0* A complete admin dashboard solution
yogiben:autoform-file 0.2.0* File upload for AutoForm
HTTP://WWW.TELESC.P
E/
CONTATO@QUADRISYSTEMS.COM
remoto *.*

Contenu connexe

Tendances

Simplify Cloud Applications using Spring Cloud
Simplify Cloud Applications using Spring CloudSimplify Cloud Applications using Spring Cloud
Simplify Cloud Applications using Spring CloudRamnivas Laddad
 
Write Powerful Javascript Modules To Make Your Apps DRY (Brian Leathem)
Write Powerful Javascript Modules To Make Your Apps DRY (Brian Leathem)Write Powerful Javascript Modules To Make Your Apps DRY (Brian Leathem)
Write Powerful Javascript Modules To Make Your Apps DRY (Brian Leathem)Red Hat Developers
 
Cannibalising The Google App Engine
Cannibalising The  Google  App  EngineCannibalising The  Google  App  Engine
Cannibalising The Google App Enginecatherinewall
 
Architetture Serverless con SQL Server e Azure Functions
Architetture Serverless con SQL Server e Azure FunctionsArchitetture Serverless con SQL Server e Azure Functions
Architetture Serverless con SQL Server e Azure FunctionsMassimo Bonanni
 
The web - What it has, what it lacks and where it must go - Istanbul
The web - What it has, what it lacks and where it must go - IstanbulThe web - What it has, what it lacks and where it must go - Istanbul
The web - What it has, what it lacks and where it must go - IstanbulRobert Nyman
 
Cloud Function For Firebase - GITS
Cloud Function For Firebase - GITSCloud Function For Firebase - GITS
Cloud Function For Firebase - GITSYatno Sudar
 
Refactoring to a Single Page Application
Refactoring to a Single Page ApplicationRefactoring to a Single Page Application
Refactoring to a Single Page ApplicationCodemotion
 
Web Components the best marriage for a PWA
Web Components the best marriage for a PWAWeb Components the best marriage for a PWA
Web Components the best marriage for a PWAManuel Carrasco Moñino
 
Unpacking .NET Core | EastBanc Technologies
Unpacking .NET Core | EastBanc TechnologiesUnpacking .NET Core | EastBanc Technologies
Unpacking .NET Core | EastBanc TechnologiesEastBanc Tachnologies
 
The MEAN stack - SoCalCodeCamp - june 29th 2014
The MEAN stack - SoCalCodeCamp - june 29th 2014The MEAN stack - SoCalCodeCamp - june 29th 2014
The MEAN stack - SoCalCodeCamp - june 29th 2014Simona Clapan
 
Developing Java Web Applications
Developing Java Web ApplicationsDeveloping Java Web Applications
Developing Java Web Applicationshchen1
 
Joe Staner Zend Con 2008
Joe Staner Zend Con 2008Joe Staner Zend Con 2008
Joe Staner Zend Con 2008ZendCon
 
.NET,ASP .NET, Angular Js,LinQ
.NET,ASP .NET, Angular Js,LinQ.NET,ASP .NET, Angular Js,LinQ
.NET,ASP .NET, Angular Js,LinQAvijit Shaw
 
WPE WebKit for Android
WPE WebKit for AndroidWPE WebKit for Android
WPE WebKit for AndroidIgalia
 
Turducken - Divide and Conquer large GWT apps with multiple teams
Turducken - Divide and Conquer large GWT apps with multiple teamsTurducken - Divide and Conquer large GWT apps with multiple teams
Turducken - Divide and Conquer large GWT apps with multiple teamsRobert Keane
 
Micronaut: Changing the Micro Future
Micronaut: Changing the Micro FutureMicronaut: Changing the Micro Future
Micronaut: Changing the Micro FutureZachary Klein
 

Tendances (20)

Simplify Cloud Applications using Spring Cloud
Simplify Cloud Applications using Spring CloudSimplify Cloud Applications using Spring Cloud
Simplify Cloud Applications using Spring Cloud
 
Write Powerful Javascript Modules To Make Your Apps DRY (Brian Leathem)
Write Powerful Javascript Modules To Make Your Apps DRY (Brian Leathem)Write Powerful Javascript Modules To Make Your Apps DRY (Brian Leathem)
Write Powerful Javascript Modules To Make Your Apps DRY (Brian Leathem)
 
Cannibalising The Google App Engine
Cannibalising The  Google  App  EngineCannibalising The  Google  App  Engine
Cannibalising The Google App Engine
 
Architetture Serverless con SQL Server e Azure Functions
Architetture Serverless con SQL Server e Azure FunctionsArchitetture Serverless con SQL Server e Azure Functions
Architetture Serverless con SQL Server e Azure Functions
 
The web - What it has, what it lacks and where it must go - Istanbul
The web - What it has, what it lacks and where it must go - IstanbulThe web - What it has, what it lacks and where it must go - Istanbul
The web - What it has, what it lacks and where it must go - Istanbul
 
Cloud Function For Firebase - GITS
Cloud Function For Firebase - GITSCloud Function For Firebase - GITS
Cloud Function For Firebase - GITS
 
Refactoring to a Single Page Application
Refactoring to a Single Page ApplicationRefactoring to a Single Page Application
Refactoring to a Single Page Application
 
The Java alternative to Javascript
The Java alternative to JavascriptThe Java alternative to Javascript
The Java alternative to Javascript
 
Web Components the best marriage for a PWA
Web Components the best marriage for a PWAWeb Components the best marriage for a PWA
Web Components the best marriage for a PWA
 
JavaCro'14 - Vaadin web application integration for Enterprise systems – Pete...
JavaCro'14 - Vaadin web application integration for Enterprise systems – Pete...JavaCro'14 - Vaadin web application integration for Enterprise systems – Pete...
JavaCro'14 - Vaadin web application integration for Enterprise systems – Pete...
 
Unpacking .NET Core | EastBanc Technologies
Unpacking .NET Core | EastBanc TechnologiesUnpacking .NET Core | EastBanc Technologies
Unpacking .NET Core | EastBanc Technologies
 
Introduction to MERN
Introduction to MERNIntroduction to MERN
Introduction to MERN
 
The MEAN stack - SoCalCodeCamp - june 29th 2014
The MEAN stack - SoCalCodeCamp - june 29th 2014The MEAN stack - SoCalCodeCamp - june 29th 2014
The MEAN stack - SoCalCodeCamp - june 29th 2014
 
Developing Java Web Applications
Developing Java Web ApplicationsDeveloping Java Web Applications
Developing Java Web Applications
 
Joe Staner Zend Con 2008
Joe Staner Zend Con 2008Joe Staner Zend Con 2008
Joe Staner Zend Con 2008
 
PHP on Windows
PHP on WindowsPHP on Windows
PHP on Windows
 
.NET,ASP .NET, Angular Js,LinQ
.NET,ASP .NET, Angular Js,LinQ.NET,ASP .NET, Angular Js,LinQ
.NET,ASP .NET, Angular Js,LinQ
 
WPE WebKit for Android
WPE WebKit for AndroidWPE WebKit for Android
WPE WebKit for Android
 
Turducken - Divide and Conquer large GWT apps with multiple teams
Turducken - Divide and Conquer large GWT apps with multiple teamsTurducken - Divide and Conquer large GWT apps with multiple teams
Turducken - Divide and Conquer large GWT apps with multiple teams
 
Micronaut: Changing the Micro Future
Micronaut: Changing the Micro FutureMicronaut: Changing the Micro Future
Micronaut: Changing the Micro Future
 

Similaire à Meteoro de pegasuus! Desenvolvendo aplicações realtime com MeteorJS

Plone FSR
Plone FSRPlone FSR
Plone FSRfulv
 
CraftCamp for Students - Introduction to Meteor.js
CraftCamp for Students - Introduction to Meteor.jsCraftCamp for Students - Introduction to Meteor.js
CraftCamp for Students - Introduction to Meteor.jscraftworkz
 
Introduction to meteor
Introduction to meteorIntroduction to meteor
Introduction to meteorNodeXperts
 
Node.js and the MEAN Stack Building Full-Stack Web Applications.pdf
Node.js and the MEAN Stack Building Full-Stack Web Applications.pdfNode.js and the MEAN Stack Building Full-Stack Web Applications.pdf
Node.js and the MEAN Stack Building Full-Stack Web Applications.pdflubnayasminsebl
 
Meteor Meet-up San Diego December 2014
Meteor Meet-up San Diego December 2014Meteor Meet-up San Diego December 2014
Meteor Meet-up San Diego December 2014Lou Sacco
 
ASP.NET MVC - In the Wild
ASP.NET MVC - In the WildASP.NET MVC - In the Wild
ASP.NET MVC - In the WildBrian Boatright
 
HTML alchemy: the secrets of mixing JavaScript and Java EE - Matthias Wessendorf
HTML alchemy: the secrets of mixing JavaScript and Java EE - Matthias WessendorfHTML alchemy: the secrets of mixing JavaScript and Java EE - Matthias Wessendorf
HTML alchemy: the secrets of mixing JavaScript and Java EE - Matthias WessendorfJAX London
 
The Happy Path: Migration Strategies for Node.js
The Happy Path: Migration Strategies for Node.jsThe Happy Path: Migration Strategies for Node.js
The Happy Path: Migration Strategies for Node.jsNicholas Jansma
 
Seattle StrongLoop Node.js Workshop
Seattle StrongLoop Node.js WorkshopSeattle StrongLoop Node.js Workshop
Seattle StrongLoop Node.js WorkshopJimmy Guerrero
 
Meteor intro-2015
Meteor intro-2015Meteor intro-2015
Meteor intro-2015MeteorJS
 
Meteor presentation
Meteor presentationMeteor presentation
Meteor presentationNicu Gudumac
 
ZK MVVM, Spring & JPA On Two PaaS Clouds
ZK MVVM, Spring & JPA On Two PaaS CloudsZK MVVM, Spring & JPA On Two PaaS Clouds
ZK MVVM, Spring & JPA On Two PaaS CloudsSimon Massey
 
Isomorphic JavaScript: #DevBeat Master Class
Isomorphic JavaScript: #DevBeat Master ClassIsomorphic JavaScript: #DevBeat Master Class
Isomorphic JavaScript: #DevBeat Master ClassSpike Brehm
 
Reactive web applications using MeteorJS
Reactive web applications using MeteorJSReactive web applications using MeteorJS
Reactive web applications using MeteorJSNodeXperts
 

Similaire à Meteoro de pegasuus! Desenvolvendo aplicações realtime com MeteorJS (20)

Node js
Node jsNode js
Node js
 
Plone FSR
Plone FSRPlone FSR
Plone FSR
 
CraftCamp for Students - Introduction to Meteor.js
CraftCamp for Students - Introduction to Meteor.jsCraftCamp for Students - Introduction to Meteor.js
CraftCamp for Students - Introduction to Meteor.js
 
Introduction to meteor
Introduction to meteorIntroduction to meteor
Introduction to meteor
 
Node.js and the MEAN Stack Building Full-Stack Web Applications.pdf
Node.js and the MEAN Stack Building Full-Stack Web Applications.pdfNode.js and the MEAN Stack Building Full-Stack Web Applications.pdf
Node.js and the MEAN Stack Building Full-Stack Web Applications.pdf
 
Meteor Introduction
Meteor IntroductionMeteor Introduction
Meteor Introduction
 
Meteor Meet-up San Diego December 2014
Meteor Meet-up San Diego December 2014Meteor Meet-up San Diego December 2014
Meteor Meet-up San Diego December 2014
 
ASP.NET MVC - In the Wild
ASP.NET MVC - In the WildASP.NET MVC - In the Wild
ASP.NET MVC - In the Wild
 
HTML alchemy: the secrets of mixing JavaScript and Java EE - Matthias Wessendorf
HTML alchemy: the secrets of mixing JavaScript and Java EE - Matthias WessendorfHTML alchemy: the secrets of mixing JavaScript and Java EE - Matthias Wessendorf
HTML alchemy: the secrets of mixing JavaScript and Java EE - Matthias Wessendorf
 
The Happy Path: Migration Strategies for Node.js
The Happy Path: Migration Strategies for Node.jsThe Happy Path: Migration Strategies for Node.js
The Happy Path: Migration Strategies for Node.js
 
Node js Introduction
Node js IntroductionNode js Introduction
Node js Introduction
 
Seattle StrongLoop Node.js Workshop
Seattle StrongLoop Node.js WorkshopSeattle StrongLoop Node.js Workshop
Seattle StrongLoop Node.js Workshop
 
Meteor intro-2015
Meteor intro-2015Meteor intro-2015
Meteor intro-2015
 
Meteor presentation
Meteor presentationMeteor presentation
Meteor presentation
 
ZK MVVM, Spring & JPA On Two PaaS Clouds
ZK MVVM, Spring & JPA On Two PaaS CloudsZK MVVM, Spring & JPA On Two PaaS Clouds
ZK MVVM, Spring & JPA On Two PaaS Clouds
 
Isomorphic JavaScript: #DevBeat Master Class
Isomorphic JavaScript: #DevBeat Master ClassIsomorphic JavaScript: #DevBeat Master Class
Isomorphic JavaScript: #DevBeat Master Class
 
Node J pdf.docx
Node J pdf.docxNode J pdf.docx
Node J pdf.docx
 
Node J pdf.docx
Node J pdf.docxNode J pdf.docx
Node J pdf.docx
 
Reactive web applications using MeteorJS
Reactive web applications using MeteorJSReactive web applications using MeteorJS
Reactive web applications using MeteorJS
 
Introduction to Node js
Introduction to Node jsIntroduction to Node js
Introduction to Node js
 

Dernier

%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyviewmasabamasaba
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...Shane Coughlan
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfkalichargn70th171
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park masabamasaba
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...masabamasaba
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...masabamasaba
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastPapp Krisztián
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdfPearlKirahMaeRagusta1
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrainmasabamasaba
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 

Dernier (20)

%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 

Meteoro de pegasuus! Desenvolvendo aplicações realtime com MeteorJS

  • 1. METEOR DE PEGASUS DESENVOLVENDO APLICAÇÕES WEB COM METEOR.JS
  • 2. Meteor is developed by the Meteor Development Group. The startup was incubated by Y Combinator and received $11.2MM in funding from Andreessen Horowitz in July 2012. HISTORY https://en.wikipedia.org/wiki/Meteor_(web_framework)
  • 3. ONE LANGUAGE Node - back Javascript - front Mongodb - database
  • 4. REUNIÃO DE LIBS Sockjs - framework emulador de websocket e responsavel pelo funcioamendto do protocolo DDP Websocket-based data protocol DDP is like "REST for websockets". Like REST, it is a simple, pragmatic approach to providing an API. But it is websocket-based, unlike REST, allowing it to be used to deliver live updates as data changes. Implementation of DDP is simple (it's just a few JSON messages over a websocket) and the spec fits on a couple of pages. MongoDB - duh
  • 5. REUNIÃO DE LIBS2 Handlebars - template engine PubSub - lib de emissao e escuta de eventos via patter pubsub MiniMongo - API clinet-side que possui a maioria das funcionalidades do mongodb (mongodb no front) The minimongo package is a reimplementation of (almost) the entire MongoDB API, against an in-memory JavaScript database. It is like a MongoDB emulator that runs inside your web browser. You can insert data into it and search, sort, and update that data. Connect - modulo node com funcionalidades para trabalhar com protocolo HTTP
  • 6. SOCKJS SockJS is a browser JavaScript library that provides a WebSocket-like object. SockJS gives you a coherent, cross- browser, Javascript API which creates a low latency, full duplex, cross-domain communication channel between the browser and the web server. Under the hood SockJS tries to use native WebSockets first. If that fails it can use a variety of browser-specific transport protocols and presents them through WebSocket-like abstractions. SockJS is intended to work for all modern browsers and in environments which don't support the WebSocket protocol -- for example, behind restrictive corporate proxies. SockJS-client does require a server counterpart:
  • 7. OS 7 PRÍNCIPIOS DO METEOR Data on the wire: Não envie HTML pela rede e sim apenas dados para deixar o cliente decidir como renderizá-lo. One language: Escreva código Javascript em ambas camadas: cliente e servidor. Database anywhere: Utilize uma API de interface única e transparente que te permite acessar o banco de dados tanto no cliente como no servidor. Latency compensation: No cliente é usado prefetching e model simulation na API do banco de dados para atingir latência zero no acesso de seus recursos. Full-Stack Reactivity: Por default tudo funciona em real-time. E todas as camadas da aplicação adotam o paradigma orientado à eventos, que é herdado do Node.js. Embrace the ecosystem: Totalmente open-source o Meteor possui suas convenções pelo qual agrega novos valores ao invés de ser ferramenta uma que vai substituir outros frameworks atuais. Simplicity equals Productivity: Seja produtivo! Desenvolva de forma simplificada, utilize APIs fáceis de aprender e implementar, afinal essa será a melhor forma de criar uma aplicação.
  • 10. LIVE RELOAD! But only on the server ://
  • 11. TESTES :S VELOCITY sanjo:jasmine - Write client and server unit and integration tests with Jasmine. mike:mocha - A Velocity version of mocha-web. Runs mocha tests in the Meteor context which is great for integration testing. xolvio:cucumber - Use BDD Gherkin-syntax cucumber to test your app. Includes PhantomJS and Selenium as well as SauceLabs support. rsbatech:robotframework - Robot Framework end to end test integration using Selenium and many other test libraries Big news! Work is underway on Velocity, the official testing framework for Meteor. July 14, 2014 By Alice Yu
  • 13. SUPPORTED BROWSERS METEOR IS ACTIVELY TESTED BY MDG TO WORK PROPERLY ON THE FOLLOWING BROWSERS: Android stock browser (Webkit based) Chrome Firefox 7+ iOS browser IE8+ Safari 4+ Desktop Opera Mobile Opera src: http://meteorpedia.com/read/Supported_Browsers (2014-06-19)
  • 14. WHEN NOT TO USE METEOR Meteor is best suited for Single-Page Apps, and less suited: relational minds For graphics-heavy mobile games, it may be better to build a native app For applications with very large numbers of concurrent connections, Meteor might require larger amounts of RAM Scaling - if you need Facebook-scale now, Meteor is not the best solution LOL -- Dan Dascalescu, @dandv
  • 15. WHAT METEOR LACKS Native reactive "joins" for MongoDB A native mechanism to load templates dynamically Two-way data binding as in Angular Native server-side rendering (useful for SEO). Production-ready support for Windows (Risos) Easy explicit control over file load ordering One blessed or recommended package for a given 3rd party library you find in its package repository, Atmosphere. The Atmosphere is still in need of cleanup -- Dan Dascalescu, @dandv
  • 16. .METEOR The build folder INTEGRAÇAO COM PACKAGE.JSON BUILT IN MONGODB AND SERVER Obs: Ids zuados! Não já ObjectId
  • 17. WTF!
  • 18.
  • 21. MONGO ON THE FRONT! insecure: Meteor also has a special "insecure mode" for quickly prototyping new applications. In insecure mode, if you haven't set up any allow or deny rules on a collection, then all users have full write access to the collection. This is the only effect of insecure mode. Autopublish: self explained Obs: Remova insecure e autopublish quanto antes do seu projeto
  • 23. LATENCY COMPENSATION There are only two places where you can do a write operation to a data store: inside a method call or directly via a local collection.
  • 24. SEM LATENCY COMPENSATION :( // File: /client/app.js Template.addPost.events({ "click button": function() { var title = $('#title').val(); var content = $('#content').val(); var post = { title: title, content: content }; Meteor.call('addPost', post, function(err, postId) { if(err) { alert(err.reason); } else { Router.go('/post/' + postId);
  • 25. COM LATENCY COMPENSATION :) // File: /client/app.js Template.addPost.events({ "click button": function() { var title = $('#title').val(); var content = $('#content').val(); var post = { title: title, content: content, _id: Random.id() }; Meteor.call('addPost', post, function(err) { if(err) { alert(err.reason); } });
  • 27. MÃE, QUERO USAR ANGULAROU EMBER.JS! NA NANANA NÃO, NOT A GOOD IDEA.
  • 28. QUANDO USAR METEOR EM UMA APLICAÇÃO?
  • 29. GOOD PACKAGES! accounts-base 1.1.3* A user account system accounts-meteor-developer 1.0.3* Login service for Meteor developer accounts accounts-password 1.0.6* Password support for accounts accounts-ui 1.1.4* Simple templates to add login widgets to an app alanning:roles 1.2.13 Role-based authorization aldeed:autoform 4.2.2* Easily create forms with automatic insert and update, and automatic reactive validation. aldeed:collection2 2.3.2* Automatic validation of insert and update operations on the client and server. aldeed:simple-schema 1.3.0* A simple schema validation object with reactivity. Used by collection2 and autoform. cfs:filesystem 0.1.1* Filesystem storage adapter for CollectionFS cfs:gridfs 0.0.27* GridFS storage adapter for CollectionFS cfs:standard-packages 0.5.3* Filesystem for Meteor, collectionFS email 1.0.5* Send email messages insecure 1.0.2* Allow all database writes by default iron:router 1.0.7 Routing specifically designed for Meteor meteor-platform 1.2.1* Include a standard set of Meteor packages in your app meteorhacks:npm 1.2.2* Use npm modules with your Meteor App mizzao:user-status 0.6.4 User connection and idle state tracking for Meteor npm-container 1.0.0+ Contains all your npm dependencies okgrow:iron-router-autoscroll 0.0.7* Fixes page position after changing pages using Iron Router pascoual:pdfkit 1.0.5 PDFKit, the PDF generation library yogiben:admin 1.1.0* A complete admin dashboard solution yogiben:autoform-file 0.2.0* File upload for AutoForm