Slides - Winnipeg.js

advertisement
http://winnipegjs.com
For questions tweet @winnpegjs
Michael Yagudaev - @yagudaev
Peter Braun
Introductions

Introduce yourself
 Your name
 What you do for a living?
 How does Javascript fit into your life?
 What do you expect to get from this group?
Sponsor
About This Group
Javascript user group
 Purpose: teach, learn, explore and build
a strong community around javascript
 Goal is to help each other improve by
making the right connections.
 Monthly meetups

Format of Meetings
Introduction
 Main Talk

 Questions during presentation
 Twitter questions. Tweet @winnipegjs

Demo(s) – things you (yes as in you) are
working on that are related to JS
Presentation
Outline
1.
Intro to Node.js (Michael Yagudaev)
1. Why Node
2. When to Use it and when not to
2. Intro to Express.js (Peter Braun)
Intro to Node.js
Node.js is a set of networking libraries
for Javascript.
 Built on top of V8 – Google’s Virtual
Machine for Javascript.
 Introduced by Ryan Dhal in 2009
 Current version is 0.89
 Uses an async non-blocking event
driven model

Why is it so epic?
Built for highly scalable systems
 Good for I/O bound applications
 Allows for concurrent programming
without the use of threads (threads ===
evil)
 Makes developing soft real-time
applications easy
 Can take advantage of multiple cores by
using the cluster module

Why is it so epic? (continued)

Share code between client and server
When should I use Node?
Soft-real time applications
 JSON APIs and NoSQL DBs
 Socket.IO
 Single-page application
 Mobile App Backend

 Great for handling large loads and real-time
updating
Unix command-line tools
 Streaming Data

When NOT to use it?

CPU bound/intensive applications
 But can easily write a C module (similar to
Python)

Simple CRUD applications
 Rails or Django are a better choice (for now)

SSL Services
 Poor performance from Crypto library being
looked at 0.9.x
Tool Chain





Npm – Node Package Manager, similar to
gems in ruby, lets you download additional
libraries for node.
NVM – Node Version Manager, similar to
Ruby’s RVM. Helps manage versions of
node.
node(1) – interactive command-line REPL
Text-editor (Sublime) – for writing code
IDE (WebStorm) – for heavy lift debugging
Demo/Coding
Intro to Express.js
Peter Bruan
 Works at DMT
 Mobile Web Application Development

Suggestions
What do you think we should do?
 What would be a good way to stay in
touch even after meetups?
 What topics would you like to see
covered?


Feel free to tweet us your suggestions
@winnipegjs
Download