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
This is Node.js
Search
Alexander Beletsky
July 09, 2014
Programming
10
390
This is Node.js
The talk I gave on UA Dev Club, 8-Jul-2014
Alexander Beletsky
July 09, 2014
Tweet
Share
More Decks by Alexander Beletsky
See All by Alexander Beletsky
Snapshot Testing: Going beyond UI
alexbeletsky
1
570
Tech Culture in Startups
alexbeletsky
0
170
TDD in JavaScript
alexbeletsky
4
830
Likeastore
alexbeletsky
3
120
PaaS in your pocker with Dokku
alexbeletsky
7
2.4k
Building Single Page Applications
alexbeletsky
9
5.3k
.NET developer in JavaScript world
alexbeletsky
1
2.7k
How to write good tests?
alexbeletsky
2
260
Dynamic web development with Oak
alexbeletsky
1
570
Other Decks in Programming
See All in Programming
現場から考えるソフトウェアエンジニアリングの価値と実験
nomuson
1
140
Cloud Adoption Framework にみる組織とクラウド導入戦略
tomokusaba
2
690
テスト駆動開発✅️
akitoshiga
1
170
A Journey of Contribution and Collaboration in Open Source
ivargrimstad
0
1.2k
Vitest Browser Mode への期待 / Vitest Browser Mode
odanado
PRO
1
1.2k
GPU Hash Table | レイトレ合宿10
yknishidate
0
330
ポケモンで考えるコミュニケーション / Communication Lessons from Pokémon
mackey0225
5
220
レガシーな Android アプリのリアーキテクチャ戦略
oidy
1
160
tc39 x jsconf.jp Panel Discussion 2024
yosuke_furukawa
PRO
0
110
実践サーバーレスパフォーマンスチューニング ~その実力に迫る~ / Practical Serverless Performance Tuning ~A Close Look at its Power~
seike460
PRO
2
230
Vue3の一歩踏み込んだパフォーマンスチューニング2024
hal_spidernight
3
2k
tsconfig.jsonの最近の新機能 ファイルパス編
uhyo
7
1.9k
Featured
See All Featured
What's in a price? How to price your products and services
michaelherold
243
11k
A Philosophy of Restraint
colly
203
16k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
225
22k
Building Better People: How to give real-time feedback that sticks.
wjessup
363
19k
10 Git Anti Patterns You Should be Aware of
lemiorhan
653
59k
Fashionably flexible responsive web design (full day workshop)
malarkey
404
65k
Learning to Love Humans: Emotional Interface Design
aarron
272
40k
Building Applications with DynamoDB
mza
90
6k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
250
21k
RailsConf 2023
tenderlove
28
860
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
26
710
Being A Developer After 40
akosma
85
590k
Transcript
This is Node.js
[email protected]
http://beletsky.net http://twitter.com/alexbeletsky
"I was concerned about the ability to program advanced push
features into the website like I had seen in Gmail" Ryan Dahl the creator of Node.js
V8 Google's open source JavaScript engine. V8 can run standalone,
or can be embedded into any C++ application.
LibUV High performance evented I/O Originally based on LibEV switch
to LibUV with support of Windows
JavaScript Dynamic, prototype-based language Highly popular due to browser programming
http://jsconf.eu/2009/speakers.html
Why JavaScript? functions as first-class citizen
Why JavaScript? function as first-class citizen //closures..
JavaScript designed for event-oriented systems There was a natural fit
V8 + LibEV + JavaScript
“Node.js is a platform for easily building scalable network applications.
Node.js uses an event-driven (single threaded), non-blocking I/O model that makes it lightweight and efficient…” http://nodejs.org
Non Blocking I/O The concept of accessing I/O without blocking
of application
https://www.flickr.com/photos/papyrist/ Line to ATM is blocking I/O
Mac’s Drive is non-blocking I/O
None
execution started from first line.. Output:
async operation started… Output:
but execution goes on.. > ping Output:
after ~ms file is read… > ping > pong Output:
Event Driven Application flow is driven by events
http://misclassblog.com/interactive-web-development/node-js/
Single Threaded Single-thread programming concepts is more easy to understand.
Applications running in single thread are lightweight and efficient
“Node.js is designed for building efficient networking applications”
Core components: ! • HTTP / HTTPS • TCP /
UDP / Sockets • DNS • File System • Crypto / Arch • Events • Streams
Efficiency & Scalability Build-in server, high concurrency, horizontal scalability, clustering
NPM Node Package Manager - the richest collection of high
quality open source modules
None
Thanks, @alexbeletsky