Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Got Milk? A short introduction to node.js and e...
Search
Alexey Taktarov
May 07, 2012
Programming
5
460
Got Milk? A short introduction to node.js and event-driven programming.
A short introduction to node.js and event-driven programming.
Alexey Taktarov
May 07, 2012
Tweet
Share
More Decks by Alexey Taktarov
See All by Alexey Taktarov
React Hooks: Iteractivity in Functional Components (RU)
molefrog
0
42
Practical Serverless & Edge Computing
molefrog
2
240
Дизайн принципы для разработчиков. Может ли дизайн сделать наши программы лучше?
molefrog
0
130
Hooks in action: implementing a 1KB React router
molefrog
0
130
How to apply design principles in software engineering?
molefrog
0
220
Give a second change to Rails frontend!
molefrog
4
620
Heroes of Information Security
molefrog
4
180
Other Decks in Programming
See All in Programming
CSC509 Lecture 02
javiergs
PRO
0
160
Kotlin Multiplatform at Stable and Beyond (Kotlin Vienna, October 2024)
zsmb
2
360
How to debug Xdebug... or any other weird bug in PHP
dunglas
2
1k
現場から考えるソフトウェアエンジニアリングの価値と実験
nomuson
1
130
선언형 UI를 학습할 때 알아둬야하는 키워드들
l2hyunwoo
0
140
自分だけの世界を創るクリエイティブコーディング / Creative Coding: Creating Your Own World
chobishiba
2
1.5k
App Router 悲喜交々
quramy
7
380
Why I Choose NetBeans for Jakarta EE
ivargrimstad
0
160
コードレビューと私の過去と未来
jxmtst
0
280
Jakarta EE as Seen Trough the Lens of the ASF
ivargrimstad
0
170
ACES Meet におけるリリース作業改善の取り組み
fukucheee
0
130
Cloud Adoption Framework にみる組織とクラウド導入戦略
tomokusaba
2
520
Featured
See All Featured
Visualization
eitanlees
143
15k
Fashionably flexible responsive web design (full day workshop)
malarkey
404
65k
Automating Front-end Workflow
addyosmani
1365
200k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
225
22k
Intergalactic Javascript Robots from Outer Space
tanoku
268
27k
Atom: Resistance is Futile
akmur
261
25k
How GitHub Uses GitHub to Build GitHub
holman
473
290k
Typedesign – Prime Four
hannesfritz
39
2.3k
Designing with Data
zakiwarfel
98
5.1k
Why Our Code Smells
bkeepers
PRO
334
57k
How STYLIGHT went responsive
nonsquared
95
5.1k
Designing Experiences People Love
moore
138
23k
Transcript
Got milk?
None
milk = dear_son.please_buy_a_milk();
milk = dear_son.please_buy_a_milk();
milk = dear_son.please_buy_a_milk(); dear_son.thank_you(); milk.drink();
milk = dear_son.please_buy_a_milk(); dear_son.thank_you(); milk.drink(); Blocking operations
milk = dear_son.please_buy_a_milk();
milk = dear_son.please_buy_a_milk(); do_cleanup(); do_something_else();
milk = dear_son.please_buy_a_milk(); do_cleanup(); do_something_else(); /* ? dear_son.here_is_your_milk(); */ Non-Blocking
operations
Event-Loop
milk = dear_son.please_buy_a_milk(); /* Event loop starts - while(…) */
if( dear_son.milk_ready() ) break; do_some_cleanup(); /* Event loop ends */ Event-Loop
In terms of: 1. OS ( process, threads scheduling) 2.
Application ( event-loops, overlapped system calls, callbacks )
OS can handle it. So why should I know about
event-loops and other sh!t?!
That’s why
Introducing Node.Js! Event-driven I/O server-side JavaScript framework based on V8
Why Javascript? 1. It’s awesome 2. It’s simple 3. It’s
popular 4. V8 is really fast 5. Built-in support for callbacks, lambdas, closures and other magic
setTimeout(function() { console.log('Hello, '); }, 1000); console.log(' World!'); Dummy example
#1
Dummy example #2 var http = require(‘http’); http.createServer(function (req, res)
{ res.writeHead(200, {'Content-Type': ‘text/plain'}); res.end('Hello World\n'); }).listen(1337, '127.0.0.1'); console.log('Server running at port 1337');
Web-Server | CGI | php, perl, python, etc.
Node.Js (all-in-one: web-server, caching, parsing, templating, data-storing, doing-a-sandwich)
Features 1. Clustering 2. Packages: web-frameworks, DB, graphics, BNF parsers,
unit- testing, … + package manager 3. Cloud 9 IDE (runs in browser)
Problems Asynchronous logic hell!
Problems Asynchronous logic hell! 1. Using helper modules (deferred, async,
node-fibers) 2. Program is Finite State Machine
The main problem Node.Js is very young, so be careful!
Use it just-for-fun!
Resources 1. “UNIX internals” by U.Vahalia 2. “Thinking Asynchronous in
C++” by author of boost::asio http://blog.think-async.com/ 3. Online npm repository http://search.npm.js 4. Cloud 9 IDE http://c9.io
Have a nice milk! Speaker: Taktarov A. Drawings: Taktarov E.
molefrog[at]gmail.com