A Love Story: Presented in II acts Shane Hansen Software Engineer Whitane Technologies, LLC
Shane Hansen Utah based Software Engineer Likes it when things are easy
<ul><li>Rapid Development Frameworks are important because they: </li></ul><ul><ul><li>Encourage exploration </li></ul></u...
 
<ul><li>The web is doing I/O wrong </li></ul><ul><li>Serial I/O is bad for business </li></ul><ul><li>Facebook knows this ...
<ul><li>We need to start thinking like this </li></ul><ul><li>But how can we parallelize? </li></ul>
<ul><li>Fork worker processes, free up the main process </li></ul><ul><li>Postgres does it so it can’t be all bad </li></u...
<ul><li>Run jobs in separate thread of execution </li></ul><ul><li>MySQL does it so it can’t be all bad </li></ul><ul><li>...
<ul><li>Event driven </li></ul><ul><li>memcached does it, so it can’t be all bad </li></ul><ul><li>One address space, One ...
 
<ul><li>The language you love to hate </li></ul><ul><li>Lisp in c’s clothing – anonymous functions, closures. </li></ul><u...
 
 
<ul><li>2k+ projects on github </li></ul><ul><li>500+ packages available in npm </li></ul><ul><li>Database drivers </li></...
Want cruft free url routing?
Want  to use web sockets now?
Want truly real time analytics? Gilt.com does.
Want to make some money as an amazon affiliate?
Want to leverage existing javascript frameworks?
Upcoming SlideShare
Loading in …5
×

Rapid Application with Node.js

6,723 views

Published on

Rapid Application Development with Node.js. Presentation from the Utah Open Source Conference describing node.js and how it can be used for rapid application development.

  • Be the first to comment

Rapid Application with Node.js

  1. 1. A Love Story: Presented in II acts Shane Hansen Software Engineer Whitane Technologies, LLC
  2. 2. Shane Hansen Utah based Software Engineer Likes it when things are easy
  3. 3. <ul><li>Rapid Development Frameworks are important because they: </li></ul><ul><ul><li>Encourage exploration </li></ul></ul><ul><ul><li>Decrease costs associated with each iteration </li></ul></ul><ul><ul><li>Decrease time to market </li></ul></ul>
  4. 5. <ul><li>The web is doing I/O wrong </li></ul><ul><li>Serial I/O is bad for business </li></ul><ul><li>Facebook knows this (tornado) </li></ul>
  5. 6. <ul><li>We need to start thinking like this </li></ul><ul><li>But how can we parallelize? </li></ul>
  6. 7. <ul><li>Fork worker processes, free up the main process </li></ul><ul><li>Postgres does it so it can’t be all bad </li></ul><ul><li>Processes can’t share data except through expensive IPC mechanisms. </li></ul><ul><li>Variations – cgi/preforking/fastcgi </li></ul>
  7. 8. <ul><li>Run jobs in separate thread of execution </li></ul><ul><li>MySQL does it so it can’t be all bad </li></ul><ul><li>Threads can share data easily </li></ul><ul><li>Deadlocking, thread safety, other headaches. </li></ul>
  8. 9. <ul><li>Event driven </li></ul><ul><li>memcached does it, so it can’t be all bad </li></ul><ul><li>One address space, One thread, no headaches </li></ul><ul><li>Sucessors (epoll/kqueue) are the basis for solving the C10K problem. </li></ul><ul><li>Paired with event loops </li></ul><ul><li>Node does this. </li></ul>
  9. 11. <ul><li>The language you love to hate </li></ul><ul><li>Lisp in c’s clothing – anonymous functions, closures. </li></ul><ul><li>Culture of asynchnonous, callback driven code patterns </li></ul><ul><li>Google made it fast. Like really fast. </li></ul><ul><li>Node does this too. </li></ul>
  10. 14. <ul><li>2k+ projects on github </li></ul><ul><li>500+ packages available in npm </li></ul><ul><li>Database drivers </li></ul><ul><li>Web frameworks </li></ul><ul><li>Worker threads </li></ul><ul><li>Parsers </li></ul><ul><li>Testing frameworks </li></ul><ul><li>Payment gateway integrations </li></ul><ul><li>Web analytics </li></ul>
  11. 15. Want cruft free url routing?
  12. 16. Want to use web sockets now?
  13. 17. Want truly real time analytics? Gilt.com does.
  14. 18. Want to make some money as an amazon affiliate?
  15. 19. Want to leverage existing javascript frameworks?

×