Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Intro to the MEAN Stack
Valeri Karpov
Kernel Tools Engineer, MongoDB
thecodebarbarian.com
github.com/vkarpov15
@code_barba...
Who is this guy?
- CTO of SCVNGR (LevelUp) ‘08
- AngularJS user since v.0.9.4
- Google intern under Misko Hevery
in ‘09
- ...
What is this talk about?
- Why we started using MEAN and ditched
Rails
- Why the MEAN stack is exceptional for
prototyping...
What is the MEAN Stack?
MongoDB - document database
ExpressJS - web framework for NodeJS
AngularJS - client-side sorcery
N...
MEAN Stack Origins
- TonightLife, TigerLabs summer ‘12
- AngularJS, iOS, Android clients
- Rails backend wasn’t ideal
- To...
MEAN Stack Origins
- Ascot Project, AngelHack DC ‘12
- Only one language
- Very simple data model
- Parallelization
- Orig...
MEAN Stack Philosophy
Ideally, a web-dev stack should help you:
Prototype. Build a usable product fast
Test. Automate test...
MEAN Stack Philosophy
What we’re going to talk about:
Prototype. Build a usable product fast
Test. Automate testing using ...
Build fast
- Super easy setup on Windows, OSX, Linux
- Just install NodeJS and MongoDB
- Guide on my blog at http://bit.ly...
Build fast
- Same language, same objects
- Two-way data binding = awesome
- Dynamic template passed as-is to database
Build fast
- NodeJS has the same object with _id
Build fast
- MongoDB shell shows the same object!
- Dynamic schema = no need for rake
- Try it for yourself: mean-stack-to...
Build fast
- Only change HTML, unless server-side
validation
- Easy to write
- Easy to debug
- Lower barrier to entry: 1 l...
Don’t break things
- Automated testing makes life easy
- Nodeunit, Jasmine
- Integration tests using angular-scenario
Karma: Solving JS Testing
- http://karma-runner.github.io
- Launch browsers, run tests on file save
- Compatibility: angul...
Thanks for Listening!
Comments, questions, haikus?
Read more at:
thecodebarbarian.com
github.com/vkarpov15
@code_barbarian
Upcoming SlideShare
Loading in …5
×

MEAN Stack - Google Developers Live 10/03/2013

3,883 views

Published on

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

Published in: Technology
  • Be the first to comment

MEAN Stack - Google Developers Live 10/03/2013

  1. 1. Intro to the MEAN Stack Valeri Karpov Kernel Tools Engineer, MongoDB thecodebarbarian.com github.com/vkarpov15 @code_barbarian
  2. 2. 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
  3. 3. 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
  4. 4. What is the MEAN Stack? MongoDB - document database ExpressJS - web framework for NodeJS AngularJS - client-side sorcery NodeJS - event-driven IO in Javascript
  5. 5. 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
  6. 6. MEAN Stack Origins - Ascot Project, AngelHack DC ‘12 - Only one language - Very simple data model - Parallelization - Originally no AngularJS - Tagger in jQuery, bad idea
  7. 7. MEAN Stack Philosophy Ideally, 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
  8. 8. MEAN Stack Philosophy What we’re going to talk about: Prototype. Build a usable product fast Test. Automate testing using CI Build fast and don’t break things
  9. 9. Build fast - Super easy setup on Windows, OSX, Linux - Just install NodeJS and MongoDB - Guide on my blog at http://bit.ly/17y8QaI
  10. 10. Build fast - Same language, same objects - Two-way data binding = awesome - Dynamic template passed as-is to database
  11. 11. Build fast - NodeJS has the same object with _id
  12. 12. Build fast - MongoDB shell shows the same object! - Dynamic schema = no need for rake - Try it for yourself: mean-stack-todo on github
  13. 13. 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
  14. 14. Don’t break things - Automated testing makes life easy - Nodeunit, Jasmine - Integration tests using angular-scenario
  15. 15. 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
  16. 16. Thanks for Listening! Comments, questions, haikus? Read more at: thecodebarbarian.com github.com/vkarpov15 @code_barbarian

×