Diese Präsentation wurde erfolgreich gemeldet.
Die SlideShare-Präsentation wird heruntergeladen. ×

Node PDX: Intro to Sails.js

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Nächste SlideShare
SxSW 2015
SxSW 2015
Wird geladen in …3
×

Hier ansehen

1 von 40 Anzeige

Node PDX: Intro to Sails.js

Herunterladen, um offline zu lesen

Sails.js makes it easy to build custom, enterprise-grade Node.js apps. It is designed to resemble the MVC architecture from frameworks like Ruby on Rails, but with support for the more modern, data-oriented style of web app development. It's especially good for building realtime features like chat.

Sails.js makes it easy to build custom, enterprise-grade Node.js apps. It is designed to resemble the MVC architecture from frameworks like Ruby on Rails, but with support for the more modern, data-oriented style of web app development. It's especially good for building realtime features like chat.

Anzeige
Anzeige

Weitere Verwandte Inhalte

Diashows für Sie (20)

Anzeige

Ähnlich wie Node PDX: Intro to Sails.js (20)

Aktuellste (20)

Anzeige

Node PDX: Intro to Sails.js

  1. 1. sails.js realtime MVC framework for Node.js
  2. 2. who am i? @mikermcneil
  3. 3. Design and develop javascript apps for enterprise and startup customers i have a startup called balderdash
  4. 4. Realtime used to be kind of hard XMPP Comet Reverse AJAX Long polling Flash sockets WebSockets Server-sent events
  5. 5. love at first sight circa 2011 Node.js...
  6. 6. A lot easier now
  7. 7. Can we use Node.js for, like, everything? i wondered...
  8. 8. Can we use Node.js for, like, everything? i wondered... maybe.
  9. 9. Lots of different kinds of projects There weren’t really any simple and reproducible patterns for structuring complicated Node.js aplications top to bottom
  10. 10. Lots of different kinds of projects There weren’t really any simple and reproducible patterns for structuring complicated Node.js aplications top to bottom Could be working with an existing client, or writing a new client for a mobile web browser, an automobile, a toaster, or god knows what
  11. 11. Lots of different kinds of projects There weren’t really any simple and reproducible patterns for structuring complicated Node.js aplications top to bottom Could be working with an existing client, or writing a new client for a mobile web browser, an automobile, a toaster, or god knows what Lots of different 3rd party proprietary services to deal with on the back-end -- there was no standard way to integrate new systems
  12. 12. Programming realtime apps was still not trivial. Socket.io and Express messages/requests have to be handled independently, which leads to separate code bases for realtime and traditional server code.
  13. 13. Programming realtime apps was still not trivial. Socket.io and Express messages/requests have to be handled independently, which leads to separate code bases for realtime and traditional server code. Socket programming is a new paradigm for many modern web developers
  14. 14. Socket.io and Express messages/requests have to be handled independently, which leads to separate code bases for realtime and traditional server code. Socket programming is a new paradigm for many modern web developers Questions about scalability Programming realtime apps was still not trivial.
  15. 15. Express wasn’t “structured enough” Authentication has to be rolled from scratch
  16. 16. Express wasn’t “structured enough” Authentication has to be rolled from scratch No standard, implementation-agnostic method of working with datastores
  17. 17. Express wasn’t “structured enough” Authentication has to be rolled from scratch No standard, implementation-agnostic method of working with datastores Low level and free-form -- not a lot of guidelines for teams used to convention-over-configuration frameworks
  18. 18. too bad. we went with Node anyway.
  19. 19. so Sails.js was born
  20. 20. MVC structure Sails.js is modeled after the same convetion-over-configuration philosophy you’re used to from frameworks like Rails, Grails, Symfony, and Zend. Controllers are just Express middleware Views are ejs by default, but you can use jade, etc. We rarely use them since we’re normally making single page apps with client-side templates.
  21. 21. Lightweight ORM Kept querying semantics dead-simple and adapter-agnostic whenever possible Pulled the best of Active Record, Hibernate, and Mongoose Made it easy to add purpose-built adapters at the app level
  22. 22. Policies Policies are just more Express middleware They can be chained together to “protect” or preprocess requests for controllers E.g. access control, storage quotas, or anything else you’d want to use middleware for
  23. 23. Socket.io Express interpreter Translated incoming socket.io messages into Express requests Translated res.send(), res.json(), and res.view() to respond via the socket, as well as allowing for streams Added res.broadcast() and req.join() methods for pubsub Normalized configuration
  24. 24. Blueprints Instead of something like Rails HTML scaffolds, by default, when you generate a model and controller, Sails serves an API Built-in search, sort, pagination, and complex queries Authentication/access control can be built on top using policies
  25. 25. Other cool stuff CLI tool REPL Custom adapters Optional server-side coffee support Automatic asset bundling (LESS and coffeescript files are compiled, merged with css and js, and injected into the DOM, minified in production mode)
  26. 26. let’s code things now OK
  27. 27. Community is growing (1900 stars, 160 forks on github, active IRC channel and Google group) CURRENT STATUS (V0.8.9)
  28. 28. Community is growing (1900 stars, 160 forks on github, active IRC channel and Google group) My company and most of our customers are using Sails in production CURRENT STATUS (V0.8.9)
  29. 29. Community is growing (1900 stars, 160 forks on github, active IRC channel and Google group) My company and most of our customers are using Sails in production Oldest running production Sails app has been up for over 300 days CURRENT STATUS (V0.8.9)
  30. 30. Roadmap More adapters More modularization to allow for a la carte usage of framework components Grunt/Yeoman integration for asset management and app generation Built-in support for associations in ORM
  31. 31. Contribute to an adapter Want to get involved?
  32. 32. Contribute to an adapter Work on the yeoman/grunt integration Want to get involved?
  33. 33. Contribute to an adapter Work on the yeoman/grunt integration Play with Sails and come up with more cool shit Want to get involved?
  34. 34. Questions?
  35. 35. Special thanks to: @colinwren @dcbartlett @particlebanana @tedkulp Irl Nathan Troy & NodePDX Dan Dwyer & Joyent & all the other excellent Sails.js contributors
  36. 36. Thanks! @mikermcneil mike@balderdash.co

×