MEAN Stack - Google Developers Live 10/03/2013

3,549 views
3,384 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

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

×