Angular And The MEAN Stack

2014-05-22 by Darrough West[1] (Meetup)

[1] Another gentleman co-presented, but I never caught his name.

MEAN

  • Package management (npm and bower)
  • Task manager (grunt)
  • Testing baked in
  • Obfuscation baked in (cssmin and uglify)
  • jshint
  • Social baked in (Passport)
  • Fully functional frontend and backend example

Why?

  • Increasingly hard to find "good" PHP devs
  • Wanted to get away from custom frameworks
  • Upgrade everyone's skillsets
  • Node and Angular have matured
  • Package availability

How?

  • Download project from GitHub and follow instructions
    • Why not just follow the instructions on the homepage? ($ npm install -g meanio; mean init myApp)
  • Heroku for hosting
  • MongoHQ for database

MEAN.IO Versus MEAN.js

  • MEAN.js is a fork of MEAN.IO
  • Recently more or less feature parity
  • Just use MEAN.IO

Bad

  • No release/snapshot (in heavy active development)
  • Packages are pulled from "latest"
  • Node has views
    • This point was confusing. It sounded like they were maintaining two sets of views (frontend and backend)

Mongo

  • Migrated from MySQL to MongoHQ
    • Use replica set!

Express

  • Need to proxy to port 3000 (no good reason)
    • Not really issue on Heroku
  • connect-assetmanager takes getting used to

Node

  • Use async!
  • Remember to clean up your packages

Angular

  • Don't overload $scope and $rootScope
  • Use HTML5 polyfills and Respond.js
  • Don't put jQuery in controller
  • Prefer angular.element instead of $