mean stack - google developers live 10/03/2013

16
Intro to the MEAN Stack Valeri Karpov Kernel Tools Engineer, MongoDB thecodebarbarian.com github.com/vkarpov15 @code_barbarian

Upload: valeri-karpov

Post on 10-May-2015

2.936 views

Category:

Technology


2 download

DESCRIPTION

Slide deck from Valeri Karpov's (@code_barbarian) talk about the MEAN stack on Google Developers Live on October 3, 2013.

TRANSCRIPT

Page 1: MEAN Stack - Google Developers Live 10/03/2013

Intro to the MEAN StackValeri Karpov

Kernel Tools Engineer, MongoDBthecodebarbarian.comgithub.com/vkarpov15

@code_barbarian

Page 2: MEAN Stack - Google Developers Live 10/03/2013

Who is this guy?

- CTO of SCVNGR (LevelUp) ‘08- AngularJS user since v.0.9.4- Google intern under Misko Hevery in ‘09- Ascot Project ‘12 - ’13- MongoDB ‘13 - Present

Page 3: MEAN Stack - Google Developers Live 10/03/2013

What is this talk about?- Why we started using MEAN and ditched Rails- Why the MEAN stack is exceptional for prototyping- How the MEAN stack makes automated testing super easy

Page 4: MEAN Stack - Google Developers Live 10/03/2013

What is the MEAN Stack?

MongoDB - document database

ExpressJS - web framework for NodeJS

AngularJS - client-side sorcery

NodeJS - event-driven IO in Javascript

Page 5: MEAN Stack - Google Developers Live 10/03/2013

MEAN Stack Origins

- TonightLife, TigerLabs summer ‘12- AngularJS, iOS, Android clients- Rails backend wasn’t ideal- Too many testing tools- HTTP concurrency- Debugging database interactions- 2.5 devs, 5 languages

Page 6: MEAN Stack - Google Developers Live 10/03/2013

MEAN Stack Origins

- Ascot Project, AngelHack DC ‘12- Only one language- Very simple data model- Parallelization- Originally no AngularJS- Tagger in jQuery, bad idea

Page 7: MEAN Stack - Google Developers Live 10/03/2013

MEAN Stack PhilosophyIdeally, a web-dev stack should help you:

Prototype. Build a usable product fast

Test. Automate testing using CI

Adapt. Iterate on feedback

Scale. Utilize server resources efficiently

Page 8: MEAN Stack - Google Developers Live 10/03/2013

MEAN Stack PhilosophyWhat we’re going to talk about:

Prototype. Build a usable product fast

Test. Automate testing using CI

Build fast and don’t break things

Page 9: MEAN Stack - Google Developers Live 10/03/2013

Build fast- Super easy setup on Windows, OSX, Linux- Just install NodeJS and MongoDB- Guide on my blog at http://bit.ly/17y8QaI

Page 10: MEAN Stack - Google Developers Live 10/03/2013

Build fast- Same language, same objects

- Two-way data binding = awesome- Dynamic template passed as-is to database

Page 11: MEAN Stack - Google Developers Live 10/03/2013

Build fast

- NodeJS has the same object with _id

Page 12: MEAN Stack - Google Developers Live 10/03/2013

Build fast

- MongoDB shell shows the same object!- Dynamic schema = no need for rake- Try it for yourself: mean-stack-todo on github

Page 13: MEAN Stack - Google Developers Live 10/03/2013

Build fast- Only change HTML, unless server-side validation- Easy to write- Easy to debug- Lower barrier to entry: 1 language, not 3- Limitations: multiple clients

Page 14: MEAN Stack - Google Developers Live 10/03/2013

Don’t break things- Automated testing makes life easy- Nodeunit, Jasmine- Integration tests using angular-scenario

Page 15: MEAN Stack - Google Developers Live 10/03/2013

Karma: Solving JS Testing- http://karma-runner.github.io- Launch browsers, run tests on file save- Compatibility: angular-scenario, nodeunit, jasmine- Continuous Integration: run tests on commit- Karma integrates easily with Jenkins, Semaphore, Travis CI

Page 16: MEAN Stack - Google Developers Live 10/03/2013

Thanks for Listening!Comments, questions, haikus?

Read more at:thecodebarbarian.comgithub.com/vkarpov15

@code_barbarian