server-side javascript for the rest of us

35
Server-side JavaScript For The Rest Of Us Kyle Simpson @getify http://getif y.me

Upload: kyle-simpson

Post on 15-Jan-2015

2.290 views

Category:

Technology


1 download

DESCRIPTION

Exploring patterns for using server-side JavaScript along side existing (non-JavaScript) application architectures. In other words, how to use *some* SSJS without rewriting your entire app in JS.

TRANSCRIPT

Page 1: Server-side JavaScript for the rest of us

Server-side JavaScript For The Rest Of Us

Kyle Simpson@getify

http://getify.me

Page 2: Server-side JavaScript for the rest of us

Server-side JavaScriptnode.jsMiddle-End (BikechainJS)

Page 3: Server-side JavaScript for the rest of us

Pep Talk

Page 4: Server-side JavaScript for the rest of us

Wait... you're not using

server-side JavaScript in all your apps?

Page 5: Server-side JavaScript for the rest of us

You haven't replaced

Apache with Node.js yet?

Page 6: Server-side JavaScript for the rest of us

You still write PHP/Java/RoR/

Python/C# code on the

server?

Page 7: Server-side JavaScript for the rest of us

It's OK. You're just like the rest of us.

Page 8: Server-side JavaScript for the rest of us

Server-side JavaScript

Cheat Guide

Page 9: Server-side JavaScript for the rest of us

It's all been done before

Page 10: Server-side JavaScript for the rest of us

JavaScript:engine !=

environment

Page 11: Server-side JavaScript for the rest of us

You still need a web server*

*unless your SSJS environment is a web server

Page 12: Server-side JavaScript for the rest of us
Page 13: Server-side JavaScript for the rest of us

node.js is a special type of

JavaScript environment

Page 14: Server-side JavaScript for the rest of us

socket/network/web

server + application

server

Page 15: Server-side JavaScript for the rest of us

Alternate usage patterns

Page 16: Server-side JavaScript for the rest of us

reverse proxy

https://github.com/nodejitsu/node-http-proxy

Page 17: Server-side JavaScript for the rest of us

backend web service

php.js?http://

phpjs.org

Page 18: Server-side JavaScript for the rest of us

side (bypass) service

example: http://goLook

.athttp://jsno.de/presentations/

jsconf2011/#slide6

Page 19: Server-side JavaScript for the rest of us

Middle-End Architecture

In between the front-end and the

back-end is...

the Middle-End

Page 20: Server-side JavaScript for the rest of us

Middle-End?

templating, URL routing, data

validation, data formatting, ajax,

caching, cookies/headers

Page 21: Server-side JavaScript for the rest of us
Page 22: Server-side JavaScript for the rest of us
Page 23: Server-side JavaScript for the rest of us

Why?

The Middle-End is meant to bring order

to the general dis-order of today's web stack architectures

Page 24: Server-side JavaScript for the rest of us

CVC (vs. MVC)

CVC (Clients-Views-Controllers) is an

alternate pattern for web application architecture that

leverages the Middle-End

Page 25: Server-side JavaScript for the rest of us
Page 26: Server-side JavaScript for the rest of us
Page 27: Server-side JavaScript for the rest of us

CVC Middle-End is not a framework or

library...it's the removal of

abstractions to expose and control

what's already there... better

Page 28: Server-side JavaScript for the rest of us

Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.

— Antoine de Saint-Exupery

Page 29: Server-side JavaScript for the rest of us

Middle-End patterns

Page 30: Server-side JavaScript for the rest of us

Wordpress (or any CMS)

http://wordpress.org/extend/plugins/json-api/

Page 31: Server-side JavaScript for the rest of us

BikechainJS

http://bikechainjs.com

Page 32: Server-side JavaScript for the rest of us

http://shortie.me

https://github.com/getify/shortie.me

Page 33: Server-side JavaScript for the rest of us

Server-side JavaScript

FTW

Page 34: Server-side JavaScript for the rest of us

Questions?

Page 35: Server-side JavaScript for the rest of us

http://

nodejs.org

Kyle Simpson@getify

http://getify.me

http://bikechainjs.com

http://middleend.com

http://start.middleend.com