Top Banner
1 1 Essential Node for Web Developers Mike Amundsen Principal API Architect Layer 7 Technologies @mamund
33

Essential Node.js for Web Developers from Developer Week 2013

Aug 20, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Essential Node.js for Web Developers from Developer Week 2013

1 1

Essential Node for Web Developers Mike Amundsen

Principal API Architect

Layer 7 Technologies

@mamund

Page 2: Essential Node.js for Web Developers from Developer Week 2013

2 2

Mike Amundsen

Web Architect, Author, Presenter

Software Explorer

Principal API Architect, Layer 7 Technologies

Preliminaries

Page 3: Essential Node.js for Web Developers from Developer Week 2013

3 3

Building Hypermedia APIs w/ HTML5 & Node (November 2011)

Methodology for writing/maintaining business-level APIs in the cloud.

Real solutions for real use-cases.

Three Servers, Six Clients, 200+ pages.

Last Project

Page 4: Essential Node.js for Web Developers from Developer Week 2013

4 4

RESTful Web APIs (Summer 2013)

Co-author with Leonard Richardson

Follow up to Richardson/Ruby’s RESTful Web Services (2007)

Focus on scaling up application-level interoperability with hypermedia

Beyond HTML, XML, and JSON is …

Next Project

Page 5: Essential Node.js for Web Developers from Developer Week 2013

5 5

Let's start with a bit of

Philosophy...

Page 6: Essential Node.js for Web Developers from Developer Week 2013

6 6

Unix Philosophy

Write programs that do one thing and do it well.

Write programs to work together.

Write programs to handle text streams.

- Douglas McIlroy

Page 7: Essential Node.js for Web Developers from Developer Week 2013

7 7

Node Philosophy (possible)

• Write modules that do one thing and do it well.

• Write modules to work together.

• Write modules to handle streams and events

Page 8: Essential Node.js for Web Developers from Developer Week 2013

8 8

Eric S. Raymond's Design Rules

"Rule of Diversity: Distrust all claims for one true way"

-- Eric S. Raymond

Page 9: Essential Node.js for Web Developers from Developer Week 2013

9 9

Reminder:

My Examples

are NOT

the

"One True Way"

Page 10: Essential Node.js for Web Developers from Developer Week 2013

10 10

Essentially, Node is...

"...a platform built on Chrome's JavaScript runtime for

easily building fast, scalable network applications."

Page 11: Essential Node.js for Web Developers from Developer Week 2013

11 11

Node is…

“Node is intended to be a very low-level library that

facilitates higher-level extensions and abstractions in

userland. It is more like C than it is like Python, and that is

by design.” – Isaac Schlueter

Page 12: Essential Node.js for Web Developers from Developer Week 2013

12 12

And it's different because....

"Node.js uses an event-driven, non-blocking I/O model that

makes it lightweight and efficient, perfect for data-

intensive real-time applications that run across distributed

devices."

Page 13: Essential Node.js for Web Developers from Developer Week 2013

13 13

So that means....

"Most of the applications we're writing today are heavily

I/O bound. Because of the event-driven nature of

JavaScript (and Node by extension), whatever you write

with it is going to be very fast." - Guillermo Rauch

(socket.io)

Page 14: Essential Node.js for Web Developers from Developer Week 2013

14 14

But does it run on my machine?

"To build a diverse open source

community, you need a wide

platform," - Paul Querna,

Rackspace

Page 15: Essential Node.js for Web Developers from Developer Week 2013

15 15

Essential NodeJS on a single slide (well, almost)

Page 16: Essential Node.js for Web Developers from Developer Week 2013

16 16

Ok, introduce me then...

Page 17: Essential Node.js for Web Developers from Developer Week 2013

17 17

Hello, Node!

Page 18: Essential Node.js for Web Developers from Developer Week 2013

18 18

Ok, but how do I deliver files?

Page 19: Essential Node.js for Web Developers from Developer Week 2013

19 19

Ok, but how do I deliver files using streams?

Page 20: Essential Node.js for Web Developers from Developer Week 2013

20 20

Not bad; how about HTML Forms?

Page 21: Essential Node.js for Web Developers from Developer Week 2013

21 21

Cool. Now how about a server-side mash-up?

Page 22: Essential Node.js for Web Developers from Developer Week 2013

22 22

Yeah, but how do you write files?

Page 23: Essential Node.js for Web Developers from Developer Week 2013

23 23

What about HTTP Authentication?

Page 24: Essential Node.js for Web Developers from Developer Week 2013

24 24

Ok, but where's that "sockets" stuff?

Page 25: Essential Node.js for Web Developers from Developer Week 2013

25 25

Alright, how about MVC & routing?

Page 26: Essential Node.js for Web Developers from Developer Week 2013

26 26

Hey, this is all 'async' & hard, right?

Page 27: Essential Node.js for Web Developers from Developer Week 2013

27 27

So are there lots of libraries?

Page 28: Essential Node.js for Web Developers from Developer Week 2013

28 28

So are there lots of libraries?

Page 29: Essential Node.js for Web Developers from Developer Week 2013

29 29

Bottom Line…

While Node *is* Javascript, the ethos is closer to C/Unix

Don’t get tied up in the “Evented IO” stuff; just write your code and enjoy

Async is the future; learn to love the future.

Get to know the NPM library; lots of good stuff there.

Check out Shelly Power’s “Learning Node” book

Page 30: Essential Node.js for Web Developers from Developer Week 2013

30 30

So....

Page 31: Essential Node.js for Web Developers from Developer Week 2013

31 31

Node.js...

• “Low-level” Javascript

• Non-blocking I/O

• Cross Platform

• Pages, Forms, Services, APIs, Sockets

• MVC, Templates, ...

• 1000s of available libraries

• All Open Source

Oh yeah, one more question...

Page 32: Essential Node.js for Web Developers from Developer Week 2013

32 32

Why not join the hipster Nod-ies?

Page 33: Essential Node.js for Web Developers from Developer Week 2013

33 33

Essential Node for Web Developers Mike Amundsen

Principal API Architect

Layer 7 Technologies

@mamund