meteor before impact - entwicklertag · meteor before impact niko köbler heiko spindler @dasniko...

34
METEOR BEFORE IMPACT Niko Köbler Heiko Spindler @dasniko @brainbrix Qualitects Group

Upload: others

Post on 25-Jun-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: METEOR BEFORE IMPACT - Entwicklertag · METEOR BEFORE IMPACT Niko Köbler Heiko Spindler @dasniko @brainbrix Qualitects Group. WHAT IS METEOR? NODE.JS MONGO DB WELL-KNOWN & PRODUCTIVITY-PROVEN

METEORBEFOREIMPACT

NikoKöblerHeikoSpindler@dasniko @brainbrix

QualitectsGroup

Page 2: METEOR BEFORE IMPACT - Entwicklertag · METEOR BEFORE IMPACT Niko Köbler Heiko Spindler @dasniko @brainbrix Qualitects Group. WHAT IS METEOR? NODE.JS MONGO DB WELL-KNOWN & PRODUCTIVITY-PROVEN

WHATISMETEOR?

Page 3: METEOR BEFORE IMPACT - Entwicklertag · METEOR BEFORE IMPACT Niko Köbler Heiko Spindler @dasniko @brainbrix Qualitects Group. WHAT IS METEOR? NODE.JS MONGO DB WELL-KNOWN & PRODUCTIVITY-PROVEN

NODE.JSMONGODB

WELL-KNOWN&PRODUCTIVITY-PROVEN

JAVASCRIPTLIBRARIESPACKAGEDINTOONEPOWERFULPLATFORM!

Page 4: METEOR BEFORE IMPACT - Entwicklertag · METEOR BEFORE IMPACT Niko Köbler Heiko Spindler @dasniko @brainbrix Qualitects Group. WHAT IS METEOR? NODE.JS MONGO DB WELL-KNOWN & PRODUCTIVITY-PROVEN
Page 5: METEOR BEFORE IMPACT - Entwicklertag · METEOR BEFORE IMPACT Niko Köbler Heiko Spindler @dasniko @brainbrix Qualitects Group. WHAT IS METEOR? NODE.JS MONGO DB WELL-KNOWN & PRODUCTIVITY-PROVEN

7PRINCIPLES1. DATAONWIRE2. ONELANGUAGE3. DATABASEEVERYWHERE4. LATENCYCOMPENSATION5. FULLSTACKREACTIVITY6. EMBRACETHEECOSYSTEM7. SIMPLICITYEQUALS

PRODUCTIVITY

Page 6: METEOR BEFORE IMPACT - Entwicklertag · METEOR BEFORE IMPACT Niko Köbler Heiko Spindler @dasniko @brainbrix Qualitects Group. WHAT IS METEOR? NODE.JS MONGO DB WELL-KNOWN & PRODUCTIVITY-PROVEN

1.

DATAON

WIRE

Page 7: METEOR BEFORE IMPACT - Entwicklertag · METEOR BEFORE IMPACT Niko Köbler Heiko Spindler @dasniko @brainbrix Qualitects Group. WHAT IS METEOR? NODE.JS MONGO DB WELL-KNOWN & PRODUCTIVITY-PROVEN

2.

ONELANGUAGE

Page 8: METEOR BEFORE IMPACT - Entwicklertag · METEOR BEFORE IMPACT Niko Köbler Heiko Spindler @dasniko @brainbrix Qualitects Group. WHAT IS METEOR? NODE.JS MONGO DB WELL-KNOWN & PRODUCTIVITY-PROVEN

3.

DATABASEEVERYWHERE

Page 9: METEOR BEFORE IMPACT - Entwicklertag · METEOR BEFORE IMPACT Niko Köbler Heiko Spindler @dasniko @brainbrix Qualitects Group. WHAT IS METEOR? NODE.JS MONGO DB WELL-KNOWN & PRODUCTIVITY-PROVEN

4.

LATENCY

COMPENSATION

Page 10: METEOR BEFORE IMPACT - Entwicklertag · METEOR BEFORE IMPACT Niko Köbler Heiko Spindler @dasniko @brainbrix Qualitects Group. WHAT IS METEOR? NODE.JS MONGO DB WELL-KNOWN & PRODUCTIVITY-PROVEN

5.

FULLSTACK

REACTIVITY

Page 11: METEOR BEFORE IMPACT - Entwicklertag · METEOR BEFORE IMPACT Niko Köbler Heiko Spindler @dasniko @brainbrix Qualitects Group. WHAT IS METEOR? NODE.JS MONGO DB WELL-KNOWN & PRODUCTIVITY-PROVEN

6.

EMBRACETHE

ECOSYSTEM

Page 12: METEOR BEFORE IMPACT - Entwicklertag · METEOR BEFORE IMPACT Niko Köbler Heiko Spindler @dasniko @brainbrix Qualitects Group. WHAT IS METEOR? NODE.JS MONGO DB WELL-KNOWN & PRODUCTIVITY-PROVEN

7.

SIMPLICITYEQUALS

PRODUCTIVITY

Page 13: METEOR BEFORE IMPACT - Entwicklertag · METEOR BEFORE IMPACT Niko Köbler Heiko Spindler @dasniko @brainbrix Qualitects Group. WHAT IS METEOR? NODE.JS MONGO DB WELL-KNOWN & PRODUCTIVITY-PROVEN

QUICKSTARTInstallMeteor:

$curlhttps://install.meteor.com|/bin/sh

Createaproject:$meteorcreatemyapp

Runitlocally:$cdmyapp$meteor=>Meteorserverrunningon:http://localhost:3000/

Page 14: METEOR BEFORE IMPACT - Entwicklertag · METEOR BEFORE IMPACT Niko Köbler Heiko Spindler @dasniko @brainbrix Qualitects Group. WHAT IS METEOR? NODE.JS MONGO DB WELL-KNOWN & PRODUCTIVITY-PROVEN

STRUCTURE&

ARCHITECTURE

Page 15: METEOR BEFORE IMPACT - Entwicklertag · METEOR BEFORE IMPACT Niko Köbler Heiko Spindler @dasniko @brainbrix Qualitects Group. WHAT IS METEOR? NODE.JS MONGO DB WELL-KNOWN & PRODUCTIVITY-PROVEN

GENERATEDJS

if(Meteor.isClient){someFunction=function(){//yourcodegoeshere};...}

if(Meteor.isServer){Meteor.startup(function(){//codetorunonserveratstartup});...}

Page 16: METEOR BEFORE IMPACT - Entwicklertag · METEOR BEFORE IMPACT Niko Köbler Heiko Spindler @dasniko @brainbrix Qualitects Group. WHAT IS METEOR? NODE.JS MONGO DB WELL-KNOWN & PRODUCTIVITY-PROVEN

FOLDERSTRUCTURE

/myapp/...

/myapp/lib/.../myapp/somefolder/...

/myapp/server/lib/.../myapp/server/someLib.js/myapp/server/main.js

/myapp/client/lib/.../myapp/client/someLib.js/myapp/client/main.js

/myapp/public/...

Page 17: METEOR BEFORE IMPACT - Entwicklertag · METEOR BEFORE IMPACT Niko Köbler Heiko Spindler @dasniko @brainbrix Qualitects Group. WHAT IS METEOR? NODE.JS MONGO DB WELL-KNOWN & PRODUCTIVITY-PROVEN

MONGODB,MINIMONGO

&COLLECTIONS

Page 18: METEOR BEFORE IMPACT - Entwicklertag · METEOR BEFORE IMPACT Niko Köbler Heiko Spindler @dasniko @brainbrix Qualitects Group. WHAT IS METEOR? NODE.JS MONGO DB WELL-KNOWN & PRODUCTIVITY-PROVEN

SYNCHRONIZEDCOLLECTIONS

Messages=newMeteor.Collection("messages");

Messages.find();Messages.findOne();Messages.insert();Messages.update();Messages.remove();

...

Page 19: METEOR BEFORE IMPACT - Entwicklertag · METEOR BEFORE IMPACT Niko Köbler Heiko Spindler @dasniko @brainbrix Qualitects Group. WHAT IS METEOR? NODE.JS MONGO DB WELL-KNOWN & PRODUCTIVITY-PROVEN

PUBLISH/SUBSCRIBE&

METHODCALLS

Page 20: METEOR BEFORE IMPACT - Entwicklertag · METEOR BEFORE IMPACT Niko Köbler Heiko Spindler @dasniko @brainbrix Qualitects Group. WHAT IS METEOR? NODE.JS MONGO DB WELL-KNOWN & PRODUCTIVITY-PROVEN

PUBLISH/SUBSRIBE

//server:publishthemessagescollectionMeteor.publish("messages",function(){returnMessages.find();});

//client:subscribetothepublishedmessagesMeteor.subscribe("messages");

Page 21: METEOR BEFORE IMPACT - Entwicklertag · METEOR BEFORE IMPACT Niko Köbler Heiko Spindler @dasniko @brainbrix Qualitects Group. WHAT IS METEOR? NODE.JS MONGO DB WELL-KNOWN & PRODUCTIVITY-PROVEN

METHODCALLSMeteor.methods({foo:function(arg1,arg2){//..dostuff..if(youwanttothrowanerror)thrownewMeteor.Error(404,"Can'tfindmypants");return"somereturnvalue";},

bar:function(){//..dootherstuff..return"baz";}});

//asynccallMeteor.call('foo',1,2,function(error,result){...});

//synccallvarresult=Meteor.call('foo',1,2);

Page 22: METEOR BEFORE IMPACT - Entwicklertag · METEOR BEFORE IMPACT Niko Köbler Heiko Spindler @dasniko @brainbrix Qualitects Group. WHAT IS METEOR? NODE.JS MONGO DB WELL-KNOWN & PRODUCTIVITY-PROVEN

ACCOUNTS&

SECURITY

Page 23: METEOR BEFORE IMPACT - Entwicklertag · METEOR BEFORE IMPACT Niko Köbler Heiko Spindler @dasniko @brainbrix Qualitects Group. WHAT IS METEOR? NODE.JS MONGO DB WELL-KNOWN & PRODUCTIVITY-PROVEN

ACCOUNTS

$meteoraddaccounts-ui$meteoraddaccounts-*

*=password,facebook,twitter,google,github,...OAuth2

{{>login-buttons}}

Page 24: METEOR BEFORE IMPACT - Entwicklertag · METEOR BEFORE IMPACT Niko Köbler Heiko Spindler @dasniko @brainbrix Qualitects Group. WHAT IS METEOR? NODE.JS MONGO DB WELL-KNOWN & PRODUCTIVITY-PROVEN

ALLOW/DENY

Messages.allow({insert:function(userId,msg){//onlylogged-inuserscaninsertanewmessagethattheyownreturn(userId&&msg.owner==userId);},fetch:['owner']});

Messages.deny({remove:function(userId,msg){//can'tremovelockedmessagesreturnmsg.locked;},fetch:['locked']});

Page 25: METEOR BEFORE IMPACT - Entwicklertag · METEOR BEFORE IMPACT Niko Köbler Heiko Spindler @dasniko @brainbrix Qualitects Group. WHAT IS METEOR? NODE.JS MONGO DB WELL-KNOWN & PRODUCTIVITY-PROVEN

TEMPLATING,LIVEHTML

&HOTCODEREPLACEMENT

Page 26: METEOR BEFORE IMPACT - Entwicklertag · METEOR BEFORE IMPACT Niko Köbler Heiko Spindler @dasniko @brainbrix Qualitects Group. WHAT IS METEOR? NODE.JS MONGO DB WELL-KNOWN & PRODUCTIVITY-PROVEN

SPACEBARSTEMPLATE

<head><title>myapp</title></head>

<body>{{>hello}}</body>

<templatename="hello"><h1>HelloWorld!</h1>{{greeting}}<inputtype="button"value="click"/></template>

Page 27: METEOR BEFORE IMPACT - Entwicklertag · METEOR BEFORE IMPACT Niko Köbler Heiko Spindler @dasniko @brainbrix Qualitects Group. WHAT IS METEOR? NODE.JS MONGO DB WELL-KNOWN & PRODUCTIVITY-PROVEN

LIVEUPDATE

Template.hello.greeting=function(){returnSession.get("welcome_message");};

//somewhereinthecode...Session.set("welcome_message","Welcometomyapp.");

Page 28: METEOR BEFORE IMPACT - Entwicklertag · METEOR BEFORE IMPACT Niko Köbler Heiko Spindler @dasniko @brainbrix Qualitects Group. WHAT IS METEOR? NODE.JS MONGO DB WELL-KNOWN & PRODUCTIVITY-PROVEN

DEPLOYMENT&

PACKAGING

Page 29: METEOR BEFORE IMPACT - Entwicklertag · METEOR BEFORE IMPACT Niko Köbler Heiko Spindler @dasniko @brainbrix Qualitects Group. WHAT IS METEOR? NODE.JS MONGO DB WELL-KNOWN & PRODUCTIVITY-PROVEN

DEPLOYMENT

ONMETEORINFRASTRUCTURE$meteordeploymyapp.meteor.com

$meteordeploywww.myapp.com

ONOWNINFRASTRUCTURE$meteorbundlemyapp.tgz

Page 30: METEOR BEFORE IMPACT - Entwicklertag · METEOR BEFORE IMPACT Niko Köbler Heiko Spindler @dasniko @brainbrix Qualitects Group. WHAT IS METEOR? NODE.JS MONGO DB WELL-KNOWN & PRODUCTIVITY-PROVEN

ECOSYSTEMPACKAGEMANAGEMENT

ATMOSPHERENPM

Page 31: METEOR BEFORE IMPACT - Entwicklertag · METEOR BEFORE IMPACT Niko Köbler Heiko Spindler @dasniko @brainbrix Qualitects Group. WHAT IS METEOR? NODE.JS MONGO DB WELL-KNOWN & PRODUCTIVITY-PROVEN

http://heise.de/-1949891

Page 32: METEOR BEFORE IMPACT - Entwicklertag · METEOR BEFORE IMPACT Niko Köbler Heiko Spindler @dasniko @brainbrix Qualitects Group. WHAT IS METEOR? NODE.JS MONGO DB WELL-KNOWN & PRODUCTIVITY-PROVEN
Page 33: METEOR BEFORE IMPACT - Entwicklertag · METEOR BEFORE IMPACT Niko Köbler Heiko Spindler @dasniko @brainbrix Qualitects Group. WHAT IS METEOR? NODE.JS MONGO DB WELL-KNOWN & PRODUCTIVITY-PROVEN

AMAZON

Page 34: METEOR BEFORE IMPACT - Entwicklertag · METEOR BEFORE IMPACT Niko Köbler Heiko Spindler @dasniko @brainbrix Qualitects Group. WHAT IS METEOR? NODE.JS MONGO DB WELL-KNOWN & PRODUCTIVITY-PROVEN

GOANDBUILDYOUROWN!

www.meteor.com

github.com/dasniko/meteor-reactive-xmplgithub.com/dasniko/meteor-chatgithub.com/brainbrix/PokerQuiz