Download - Server Side Javascript : how to start ?
![Page 1: Server Side Javascript : how to start ?](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554bb40bb4c90530298b4637/html5/thumbnails/1.jpg)
Server-side javascript
how to start ?
Confoo 2011 remix NantesJS
– Quentin ADAM @waxzce
![Page 2: Server Side Javascript : how to start ?](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554bb40bb4c90530298b4637/html5/thumbnails/2.jpg)
$: w
hoam
i
Quentin ADAM
@waxzce on
twitter or github
CEO at Clever
Cloud
![Page 3: Server Side Javascript : how to start ?](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554bb40bb4c90530298b4637/html5/thumbnails/3.jpg)
JavascriptWhere ? When ? Why ?
![Page 4: Server Side Javascript : how to start ?](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554bb40bb4c90530298b4637/html5/thumbnails/4.jpg)
What
are
we d
oin
g
wit
h Java
scri
pt
today
? Application server
Database
Browser
RIA
![Page 5: Server Side Javascript : how to start ?](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554bb40bb4c90530298b4637/html5/thumbnails/5.jpg)
![Page 6: Server Side Javascript : how to start ?](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554bb40bb4c90530298b4637/html5/thumbnails/6.jpg)
His
tory
At the begining, Brendan Eich, created
Live Script (1995) at Netscape for server
usage. It is the Netscape Server procuct.
The Javascript name is
a maketing change by
Sun and Netscape.
![Page 7: Server Side Javascript : how to start ?](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554bb40bb4c90530298b4637/html5/thumbnails/7.jpg)
The p
olyg
lotte
situatio
nClient
Javascript• Controller
HTML• Model
CSS• View
Server
Php
Java
Perl
Ruby
Scala
Groovy
.net
Brainf*ck
….
![Page 8: Server Side Javascript : how to start ?](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554bb40bb4c90530298b4637/html5/thumbnails/8.jpg)
About polyglots
and languages
![Page 9: Server Side Javascript : how to start ?](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554bb40bb4c90530298b4637/html5/thumbnails/9.jpg)
Share
som
e co
de
betw
een clie
nt a
nd
serve
r Unity of tools and
environment
Agile
Have the same
Model
No « translations »
of objects
![Page 10: Server Side Javascript : how to start ?](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554bb40bb4c90530298b4637/html5/thumbnails/10.jpg)
Some strengths for
modern and social apps
Event driven
NoSQL & Json
Use some data with unknow
format
![Page 11: Server Side Javascript : how to start ?](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554bb40bb4c90530298b4637/html5/thumbnails/11.jpg)
One la
nguage,
seve
ral e
ngin
es
Rem
inds
me o
f so
meth
ing …
![Page 12: Server Side Javascript : how to start ?](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554bb40bb4c90530298b4637/html5/thumbnails/12.jpg)
A s
tandard
(or
not)
&
Many
imple
menta
tions
(or
not)
Engine =
Tools compiling to bytecode + conversion
to binary instructions=
Javascript virtual machine
![Page 13: Server Side Javascript : how to start ?](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554bb40bb4c90530298b4637/html5/thumbnails/13.jpg)
A s
tandard
(or
not)
&
Many
imple
menta
tions
(or
not)
{trace, spider, jäger…}Monkey
V8 M$ apple nitro Rhino Narcissus (zaphod)
dynJS & Nashorn
![Page 14: Server Side Javascript : how to start ?](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554bb40bb4c90530298b4637/html5/thumbnails/14.jpg)
engin
e JS
≠ B
row
ser
Engine Browser
…
Rendering
DOM
API
JS -> binary
Define standard utils & lang
![Page 15: Server Side Javascript : how to start ?](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554bb40bb4c90530298b4637/html5/thumbnails/15.jpg)
No D
OM
No jquery
No mootools
No dojo…
Except server
versions
![Page 16: Server Side Javascript : how to start ?](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554bb40bb4c90530298b4637/html5/thumbnails/16.jpg)
A w
eb s
erv
er
HTTPRequest• Client
HTTPResponse• Server
RESTful
![Page 17: Server Side Javascript : how to start ?](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554bb40bb4c90530298b4637/html5/thumbnails/17.jpg)
One of the biggest changes of ssjs :
event driven web response, async
0_0Don’t panic, some schema next slide
![Page 18: Server Side Javascript : how to start ?](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554bb40bb4c90530298b4637/html5/thumbnails/18.jpg)
wit
hout
New HTTP
request is here
Routing work
Proccess the
response blocking thread
Send the HTTP
response
![Page 19: Server Side Javascript : how to start ?](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554bb40bb4c90530298b4637/html5/thumbnails/19.jpg)
Wit
h
New HTTP
request is here
Work begins : event fired
Request marked
for waiting
Event listener handles
the request
Response contructio
n
Event « it’s
done » fired
Send the
HTTP respons
e
![Page 20: Server Side Javascript : how to start ?](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554bb40bb4c90530298b4637/html5/thumbnails/20.jpg)
What
do w
e
need ?
VM javascrip
t
Useful API
http request handler
Server side
ready
![Page 21: Server Side Javascript : how to start ?](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554bb40bb4c90530298b4637/html5/thumbnails/21.jpg)
Some toolsNames
![Page 22: Server Side Javascript : how to start ?](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554bb40bb4c90530298b4637/html5/thumbnails/22.jpg)
Aja
x Push
Engin
e
Designed for real time
web
Stable and strong project
Mootools framework
Mysql support
http://www.ape-project.org/
![Page 23: Server Side Javascript : how to start ?](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554bb40bb4c90530298b4637/html5/thumbnails/23.jpg)
How
to ?
![Page 24: Server Side Javascript : how to start ?](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554bb40bb4c90530298b4637/html5/thumbnails/24.jpg)
Mongo D
B
Document oriented
database
Store data as Bson
Lots of platforms
supported
![Page 25: Server Side Javascript : how to start ?](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554bb40bb4c90530298b4637/html5/thumbnails/25.jpg)
Map re
duce
A new way for geting data
working on a lot of noSQL DB
![Page 26: Server Side Javascript : how to start ?](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554bb40bb4c90530298b4637/html5/thumbnails/26.jpg)
Node.js : T
he
Sta
r
![Page 27: Server Side Javascript : how to start ?](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554bb40bb4c90530298b4637/html5/thumbnails/27.jpg)
![Page 28: Server Side Javascript : how to start ?](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554bb40bb4c90530298b4637/html5/thumbnails/28.jpg)
How
to ?
Entry point file
![Page 29: Server Side Javascript : how to start ?](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554bb40bb4c90530298b4637/html5/thumbnails/29.jpg)
fram
ew
orks
node
Sinatra like : express
Rails like : Geddy
!! -> tools are not ready
Ruby & node.js
![Page 30: Server Side Javascript : how to start ?](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554bb40bb4c90530298b4637/html5/thumbnails/30.jpg)
Com
monJS
Some specs
for all this
f*cking mess
require()
http://www.commonjs.org/
![Page 31: Server Side Javascript : how to start ?](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554bb40bb4c90530298b4637/html5/thumbnails/31.jpg)
How to begin ?And be happy with new tools
![Page 32: Server Side Javascript : how to start ?](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554bb40bb4c90530298b4637/html5/thumbnails/32.jpg)
Cre
ate
a g
ithub
acc
ount All ssJs projects
are on github Frameworks, mods too Examples You need it anyway
![Page 33: Server Side Javascript : how to start ?](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554bb40bb4c90530298b4637/html5/thumbnails/33.jpg)
Have
a r
eal O
S
You need a real command
line interface You need compilation tools
You need it anyway UNIX
Tips : use ZSH with git
![Page 34: Server Side Javascript : how to start ?](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554bb40bb4c90530298b4637/html5/thumbnails/34.jpg)
Test
node.js
wit
h
cloud9
Online IDE for node.js Nothing to install Works with github
![Page 35: Server Side Javascript : how to start ?](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554bb40bb4c90530298b4637/html5/thumbnails/35.jpg)
Make
an o
pen
table
for
YQ
L SQL like language for
web APIs Works with ssjs Rhino
backend You only need a server
storing your table
![Page 36: Server Side Javascript : how to start ?](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554bb40bb4c90530298b4637/html5/thumbnails/36.jpg)
Pla
y w
ith m
ongoD
B
or
couch
DB
Easy to install Useful Ssjs platform integration
![Page 37: Server Side Javascript : how to start ?](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554bb40bb4c90530298b4637/html5/thumbnails/37.jpg)
Inst
all
APE
test
it
![Page 38: Server Side Javascript : how to start ?](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554bb40bb4c90530298b4637/html5/thumbnails/38.jpg)
Incl
ude R
hin
o in
yo
ur
java
pro
ject
s Included in the JDK Useful for scripting Useful to work on
unsafe data Add an event layer with Atmoshpere or Akka
![Page 39: Server Side Javascript : how to start ?](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554bb40bb4c90530298b4637/html5/thumbnails/39.jpg)
Wri
te s
om
e
kick
ass
apps
![Page 40: Server Side Javascript : how to start ?](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554bb40bb4c90530298b4637/html5/thumbnails/40.jpg)
The ch
ecklist
What do I need ?
Can I split the
application ?
What about my
sysadmin skills ?
Is the app critical ?
Think about your problems with
these solutions
![Page 41: Server Side Javascript : how to start ?](https://reader033.vdocuments.mx/reader033/viewer/2022052822/554bb40bb4c90530298b4637/html5/thumbnails/41.jpg)
Thx