SlideShare uma empresa Scribd logo
1 de 52
Baixar para ler offline
Only JavaScript, only
Meteor.js
Tomáš Hromník (@elfoslav) www.hromnik.com
Development in PHP
- Context switching
- Server language vs. JavaScript
Development in PHP
- Context switching
- Server language vs. JavaScript
- Different function names in PHP and
JavaScript
Development in PHP
WRONG!!!
Node.js
- JavaScript on the server
Node.js
- JavaScript on the server
- Isomorphic applications
Node.js
- JavaScript on the server
- Isomorphic applications
- JavaScript everywhere
Node.js frameworks
- Sails.js, Geddy.js, Tower.js, Total.js,...
Node.js frameworks
- Sails.js, Geddy.js, Tower.js, Total.js,...
- not much killer features
Node.js frameworks
- Sails.js, Geddy.js, Tower.js, Total.js,...
- not much killer features
- very small community
Node.js frameworks
- Sails.js, Geddy.js, Tower.js, Total.js,...
- not much killer features
- very small community
- lack of learning resources
Node.js frameworks
- Express.js
- very lightweight
Node.js frameworks
- Express.js
- very lightweight
- programmer has to do a lot of work himself
Node.js frameworks
- Meteor.js
- a lot of killer features
Node.js frameworks
- Meteor.js
- a lot of killer features
- easy to learn
Node.js frameworks
- Meteor.js
- a lot of killer features
- easy to learn
- good documentation
Node.js frameworks
- Meteor.js
- a lot of killer features
- easy to learn
- good documentation
- large passionate community
Node.js frameworks
- Meteor.js
- a lot of killer features
- easy to learn
- good documentation
- large passionate community
- a lot of learning resources
What is Meteor?
Full stack JavaScript platform for building real-
time applications.
Built on top of Node.js
Meteor.js (killer) features
- Live reload - forget about F5
Meteor.js (killer) features
- Live reload - forget about F5
- Automatic CSS and JS minification on
production server
Meteor.js (killer) features
- No need to include CSS, JS files manually
<link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.css" />
...
<script src="bower_components/jquery/dist/jquery.js"></script>
...
Meteor.js (killer) features
- Real-time by default
Messages = new Mongo.Collection(‘messages’);
Messages.insert({ text: ‘Hello Meteor’, timestamp: Date.now() });
Meteor.js (killer) features
- Built in client-side technologies
- Templates, Helpers, Events, Session
Meteor.js (killer) features
- Built in client-side technologies
Template.hello.helpers({
counter: function() {
return Session.get(‘counter’);
}
});
Meteor.js (killer) features
- Built in client-side technologies
<template name=”hello”>
<button class=”increase-counter”>Click me</button>
<p>You clicked {{counter}} times</p>
</template>
Meteor.js (killer) features
- Built in client-side technologies
Template.hello.events({
‘click .increase-counter’: function(evt, tpl) {
Session.set(‘counter’, Session.get(‘counter’) + 1);
}
});
Meteor.js (killer) features
- MiniMongo
//client-side code
var messagesFromFuture = Messages.find({
timestamp: { $gt: Date.now() }
});
Meteor.js (killer) features
- Latency compensation
- instant feedback for user interaction
Meteor.js (killer) features
- Package manager
$ meteor add accounts-ui accounts-password
Meteor.js (killer) features
- Package manager
$ meteor add accounts-ui accounts-password
<template name=”hello”>
<h1>Sign in / Sign up:</h1>
{{> loginButtons}}
</template>
Meteor.js (killer) features
- Package manager
$ meteor add less
$ meteor add coffeescript
atmospherejs.com
Meteor.js (killer) features
- Package manager
- You can also use NPM
Meteor.js (killer) features
- Built in authentication/registration
- Email, Facebook, Twitter, Google, Github,...
$ meteor add service-configuration
$ meteor add accounts-facebook
Meteor.js (killer) features
- Built in authentication/registration
- Email, Facebook, Twitter, Google, Github,...
ServiceConfiguration.configurations.insert({
service: "facebook",
appId: "yourAppId",
secret: "yourSecret"
});
Meteor.js (killer) features
- Built in authentication/registration
- Email, Facebook, Twitter, Google, Github,...
Meteor.loginWithFacebook();
Meteor.js (killer) features
- Easy deployment
$ meteor deploy appname
http://www.appname.meteor.com
Meteor.js (killer) features
- Easy deployment
- Meteor up package
$ npm install -g mup
$ cd /app-folder
$ mup init
$ mup deploy
Meteor.js (killer) features
- Mobile apps in Meteor (Android, iOS)
$ meteor install-sdk android
$ meteor add-platform android
$ meteor run android
Specialities
Publish/Subscribe
//server
Metor.publish(“userTasks", function () {
return Tasks.find({ userId: this.userId });
});
//client
Meteor.subscribe(“userTasks”);
Specialities
Autopublish, Insecure package
$ meteor remove autopublish
$ meteor remove insecure
Specialities
Directory structure
app/
client/
lib/
public/
server/
...
Meteor.js caveats
- Only MongoDB support at this time.
Meteor.js community
Meteor.js community
https://forums.meteor.com/
My Meteor applications
TodoToday http://todotoday.meteor.com/ (OS)
My Meteor applications
Seenist http://seenist.com/
My Meteor applications
Typefast http://typefast.meteor.com/ (OS)
My Meteor applications
FasterChat https://fasterchat.com (OS)
My Meteor applications
CoderMania http://codermania.com
Learning resources
● Official Meteor web: http://meteor.com
● Meteorhacks: http://meteorhacks.com
● E-book: https://www.discovermeteor.com
● Meteor screencasts: https://www.eventedmind.com
● Video courses on Udemy: https://www.udemy.com
● Meteor packages: https://atmospherejs.com
● My Meteor blog: http://meteor.hromnik.com
● Twitter: @meteorjs, #meteorjs
Only JavaScript, only
Meteor.js
Try to build an application in Meteor
Tomáš Hromník (@elfoslav) www.hromnik.com

Mais conteúdo relacionado

Mais procurados

Single Page Web Applications with CoffeeScript, Backbone and Jasmine
Single Page Web Applications with CoffeeScript, Backbone and JasmineSingle Page Web Applications with CoffeeScript, Backbone and Jasmine
Single Page Web Applications with CoffeeScript, Backbone and Jasmine
Paulo Ragonha
 
"Your script just killed my site" by Steve Souders
"Your script just killed my site" by Steve Souders"Your script just killed my site" by Steve Souders
"Your script just killed my site" by Steve Souders
Dmitry Makarchuk
 

Mais procurados (20)

Webrender 1.0
Webrender 1.0Webrender 1.0
Webrender 1.0
 
EWD 3 Training Course Part 10: QEWD Sessions and User Authentication
EWD 3 Training Course Part 10: QEWD Sessions and User AuthenticationEWD 3 Training Course Part 10: QEWD Sessions and User Authentication
EWD 3 Training Course Part 10: QEWD Sessions and User Authentication
 
Node.js & Twitter Bootstrap Crash Course
Node.js & Twitter Bootstrap Crash CourseNode.js & Twitter Bootstrap Crash Course
Node.js & Twitter Bootstrap Crash Course
 
Node JS Express : Steps to Create Restful Web App
Node JS Express : Steps to Create Restful Web AppNode JS Express : Steps to Create Restful Web App
Node JS Express : Steps to Create Restful Web App
 
EWD 3 Training Course Part 13: Putting Everything so far into Practice using ...
EWD 3 Training Course Part 13: Putting Everything so far into Practice using ...EWD 3 Training Course Part 13: Putting Everything so far into Practice using ...
EWD 3 Training Course Part 13: Putting Everything so far into Practice using ...
 
How to Build SPA with Vue Router 2.0
How to Build SPA with Vue Router 2.0How to Build SPA with Vue Router 2.0
How to Build SPA with Vue Router 2.0
 
Uniface Lectures Webinar - Building Responsive Applications with Uniface: Dep...
Uniface Lectures Webinar - Building Responsive Applications with Uniface: Dep...Uniface Lectures Webinar - Building Responsive Applications with Uniface: Dep...
Uniface Lectures Webinar - Building Responsive Applications with Uniface: Dep...
 
Workshop 27: Isomorphic web apps with ReactJS
Workshop 27: Isomorphic web apps with ReactJSWorkshop 27: Isomorphic web apps with ReactJS
Workshop 27: Isomorphic web apps with ReactJS
 
Introduction to AJAX In WordPress
Introduction to AJAX In WordPressIntroduction to AJAX In WordPress
Introduction to AJAX In WordPress
 
ServiceWorker: New game changer is coming!
ServiceWorker: New game changer is coming!ServiceWorker: New game changer is coming!
ServiceWorker: New game changer is coming!
 
Chrome enchanted 2015
Chrome enchanted 2015Chrome enchanted 2015
Chrome enchanted 2015
 
Single Page Web Applications with CoffeeScript, Backbone and Jasmine
Single Page Web Applications with CoffeeScript, Backbone and JasmineSingle Page Web Applications with CoffeeScript, Backbone and Jasmine
Single Page Web Applications with CoffeeScript, Backbone and Jasmine
 
Workshop 18: CSS Animations & cool effects
Workshop 18: CSS Animations & cool effectsWorkshop 18: CSS Animations & cool effects
Workshop 18: CSS Animations & cool effects
 
REST to JavaScript for Better Client-side Development
REST to JavaScript for Better Client-side DevelopmentREST to JavaScript for Better Client-side Development
REST to JavaScript for Better Client-side Development
 
Introduction to PowerShell
Introduction to PowerShellIntroduction to PowerShell
Introduction to PowerShell
 
"Your script just killed my site" by Steve Souders
"Your script just killed my site" by Steve Souders"Your script just killed my site" by Steve Souders
"Your script just killed my site" by Steve Souders
 
[PHP 也有 Day] 垃圾留言守城記 - 用 Laravel 阻擋 SPAM 留言的奮鬥史
[PHP 也有 Day] 垃圾留言守城記 - 用 Laravel 阻擋 SPAM 留言的奮鬥史[PHP 也有 Day] 垃圾留言守城記 - 用 Laravel 阻擋 SPAM 留言的奮鬥史
[PHP 也有 Day] 垃圾留言守城記 - 用 Laravel 阻擋 SPAM 留言的奮鬥史
 
Workshop 16: EmberJS Parte I
Workshop 16: EmberJS Parte IWorkshop 16: EmberJS Parte I
Workshop 16: EmberJS Parte I
 
Maciej Treder "Server-side rendering with Angular—be faster and more SEO, CDN...
Maciej Treder "Server-side rendering with Angular—be faster and more SEO, CDN...Maciej Treder "Server-side rendering with Angular—be faster and more SEO, CDN...
Maciej Treder "Server-side rendering with Angular—be faster and more SEO, CDN...
 
Using The New Flash Stage3D Web Technology To Build Your Own Next 3D Browser ...
Using The New Flash Stage3D Web Technology To Build Your Own Next 3D Browser ...Using The New Flash Stage3D Web Technology To Build Your Own Next 3D Browser ...
Using The New Flash Stage3D Web Technology To Build Your Own Next 3D Browser ...
 

Destaque

Venr profile (english)
Venr profile (english)Venr profile (english)
Venr profile (english)
Dung Van
 
Work Examples
Work Examples Work Examples
Work Examples
mhaenni
 

Destaque (10)

Marketing for-gyms
Marketing for-gymsMarketing for-gyms
Marketing for-gyms
 
Venr profile (english)
Venr profile (english)Venr profile (english)
Venr profile (english)
 
Siapa dibalik jokowi
Siapa dibalik jokowiSiapa dibalik jokowi
Siapa dibalik jokowi
 
Work Examples
Work Examples Work Examples
Work Examples
 
Tay sachs disease (Understanding the Brain: The Neurobiology os Everyday Life...
Tay sachs disease (Understanding the Brain: The Neurobiology os Everyday Life...Tay sachs disease (Understanding the Brain: The Neurobiology os Everyday Life...
Tay sachs disease (Understanding the Brain: The Neurobiology os Everyday Life...
 
Silabus mata kuliah_pengantar_studi_islam
Silabus mata kuliah_pengantar_studi_islamSilabus mata kuliah_pengantar_studi_islam
Silabus mata kuliah_pengantar_studi_islam
 
2 juknis bansos_pondok_pesantren
2  juknis bansos_pondok_pesantren2  juknis bansos_pondok_pesantren
2 juknis bansos_pondok_pesantren
 
Aplikasi farmakokinetika dalam kepentingan klinis
Aplikasi farmakokinetika dalam kepentingan klinisAplikasi farmakokinetika dalam kepentingan klinis
Aplikasi farmakokinetika dalam kepentingan klinis
 
Meteorjs - Futuristic web framework
Meteorjs - Futuristic web frameworkMeteorjs - Futuristic web framework
Meteorjs - Futuristic web framework
 
Ilmu pendidikan islam
Ilmu pendidikan islamIlmu pendidikan islam
Ilmu pendidikan islam
 

Semelhante a Only JavaScript, only Meteor.js

Intro to node and mongodb 1
Intro to node and mongodb   1Intro to node and mongodb   1
Intro to node and mongodb 1
Mohammad Qureshi
 
How to build customizable multitenant web applications - PHPBNL11
How to build customizable multitenant web applications - PHPBNL11How to build customizable multitenant web applications - PHPBNL11
How to build customizable multitenant web applications - PHPBNL11
Stephan Hochdörfer
 
540slidesofnodejsbackendhopeitworkforu.pdf
540slidesofnodejsbackendhopeitworkforu.pdf540slidesofnodejsbackendhopeitworkforu.pdf
540slidesofnodejsbackendhopeitworkforu.pdf
hamzadamani7
 
gDayX 2013 - Advanced AngularJS - Nicolas Embleton
gDayX 2013 - Advanced AngularJS - Nicolas EmbletongDayX 2013 - Advanced AngularJS - Nicolas Embleton
gDayX 2013 - Advanced AngularJS - Nicolas Embleton
George Nguyen
 

Semelhante a Only JavaScript, only Meteor.js (20)

Story about module management with angular.js
Story about module management with angular.jsStory about module management with angular.js
Story about module management with angular.js
 
Reactive application using meteor
Reactive application using meteorReactive application using meteor
Reactive application using meteor
 
Build tons of multi-device JavaScript applications - Part 1 : Boilerplate, de...
Build tons of multi-device JavaScript applications - Part 1 : Boilerplate, de...Build tons of multi-device JavaScript applications - Part 1 : Boilerplate, de...
Build tons of multi-device JavaScript applications - Part 1 : Boilerplate, de...
 
Intro to node and mongodb 1
Intro to node and mongodb   1Intro to node and mongodb   1
Intro to node and mongodb 1
 
soft-shake.ch - Hands on Node.js
soft-shake.ch - Hands on Node.jssoft-shake.ch - Hands on Node.js
soft-shake.ch - Hands on Node.js
 
JavaScript Modules Done Right
JavaScript Modules Done RightJavaScript Modules Done Right
JavaScript Modules Done Right
 
Presentation Tier optimizations
Presentation Tier optimizationsPresentation Tier optimizations
Presentation Tier optimizations
 
AngularJS training - Day 1 - Basics: Why, What and basic features of AngularJS
AngularJS training - Day 1 - Basics: Why, What and basic features of AngularJSAngularJS training - Day 1 - Basics: Why, What and basic features of AngularJS
AngularJS training - Day 1 - Basics: Why, What and basic features of AngularJS
 
Monitoring a Kubernetes-backed microservice architecture with Prometheus
Monitoring a Kubernetes-backed microservice architecture with PrometheusMonitoring a Kubernetes-backed microservice architecture with Prometheus
Monitoring a Kubernetes-backed microservice architecture with Prometheus
 
A Story about AngularJS modularization development
A Story about AngularJS modularization developmentA Story about AngularJS modularization development
A Story about AngularJS modularization development
 
Clojure Web Development
Clojure Web DevelopmentClojure Web Development
Clojure Web Development
 
Js foo - Sept 8 upload
Js foo - Sept 8 uploadJs foo - Sept 8 upload
Js foo - Sept 8 upload
 
How to build customizable multitenant web applications - PHPBNL11
How to build customizable multitenant web applications - PHPBNL11How to build customizable multitenant web applications - PHPBNL11
How to build customizable multitenant web applications - PHPBNL11
 
Comet with node.js and V8
Comet with node.js and V8Comet with node.js and V8
Comet with node.js and V8
 
Modular Web Applications With Netzke
Modular Web Applications With NetzkeModular Web Applications With Netzke
Modular Web Applications With Netzke
 
540slidesofnodejsbackendhopeitworkforu.pdf
540slidesofnodejsbackendhopeitworkforu.pdf540slidesofnodejsbackendhopeitworkforu.pdf
540slidesofnodejsbackendhopeitworkforu.pdf
 
(In)Security Implication in the JS Universe
(In)Security Implication in the JS Universe(In)Security Implication in the JS Universe
(In)Security Implication in the JS Universe
 
gDayX 2013 - Advanced AngularJS - Nicolas Embleton
gDayX 2013 - Advanced AngularJS - Nicolas EmbletongDayX 2013 - Advanced AngularJS - Nicolas Embleton
gDayX 2013 - Advanced AngularJS - Nicolas Embleton
 
Meetup Performance
Meetup PerformanceMeetup Performance
Meetup Performance
 
Meetup Performance
Meetup PerformanceMeetup Performance
Meetup Performance
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Último (20)

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 

Only JavaScript, only Meteor.js