what is node and why does it matter?
DESCRIPTION
My talk at the Amsterdam Node Meetup (meetup.com/amsnode): A brief introduction of Node.js and why I think it matters.TRANSCRIPT
Amsterdam
Sunday, April 1, 12
What is Node and why does it matter?
Sunday, April 1, 12
@dominiek
Sunday, April 1, 12
[email protected], April 1, 12
Node.js?
Sunday, April 1, 12
// Server-side Javascript
Sunday, April 1, 12
V8 JavaScript Engine
Sunday, April 1, 12
// Asynchronous
Ruby Node.js
Sunday, April 1, 12
// Asynchronous
Ruby Node.js
Sunday, April 1, 12
All operating system functionality can be accessed asynchronously
Node is built for concurrency
Node requires you to think event-driven and non-linear
Sunday, April 1, 12
// Callback Nightmare
Sunday, April 1, 12
Sunday, April 1, 12
// Seq()
Sunday, April 1, 12
Sunday, April 1, 12
One language to rule them all (in theory)
Learning node is all about becoming very skilled at JavaScript and event-driven programming
Sunday, April 1, 12
Why Node Matters
Sunday, April 1, 12
Sunday, April 1, 12
Have a monsterous DB setup
Cache the shit out of everything
Making the servers more lightweight
Scaling Rails
Sunday, April 1, 12
Reducing Server-side Complexity
Smaller requests
Ajax and JSON (very cachable!)
More requests, we want real-time
UI logic on the client
Sunday, April 1, 12
Shift Happens
Sunday, April 1, 12
Source: Synaptify.comSunday, April 1, 12
Source: Synaptify.comSunday, April 1, 12
Less Web, More App
Sunday, April 1, 12
Sever-side becomes a true “App” Interface (aka API)
UI flow belongs to the client
Data over Documents
Sunday, April 1, 12
More JSON
Routing on the Client
Templates move to the Client too
Static pages matter less
Sunday, April 1, 12
Separation between API/platform and UI/client becomes more vivid.
Developing apps in a team becomes easier.
Automated testing becomes a lot more managable, less client-server integration tests.
Increased mashupability
Node is perfect for this new “data hub” role of the server-side
Sunday, April 1, 12
Node.js HTML5<3
Sunday, April 1, 12
Increased Javascript capabilities in the browser are a big part of the Node mindset
Sunday, April 1, 12
Amsterdam Node Meetup
Node.jsHTML5
Client-side MVC
Real-time CommunicationBrowser Storage
Client-side Routing
NoSQL
CachingAPI Design
Activity Streams
Unit TestingModule LoadingCross-environment Javascript
Load Balancing
Sunday, April 1, 12