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
So Easy You Can Even Do It In JavaScript: Event...
Search
PyCon 2013
March 16, 2013
Programming
4
3.4k
So Easy You Can Even Do It In JavaScript: Event-Driven Architecture For Regular Programmers by Glyph
PyCon 2013
March 16, 2013
Tweet
Share
More Decks by PyCon 2013
See All by PyCon 2013
Bayesian statistics made simple by Allen Downey
pyconslides
32
6.5k
Python for Humans
pyconslides
40
6.8k
Contribute with me! Getting started with the tools of free software development by Jessica McKellar
pyconslides
11
2.1k
ApplePy: An Apple ][ emulator in Python by James Tauber
pyconslides
3
1.7k
Use curses, don't swear by Sean Zicari
pyconslides
2
1.5k
Namespaces in Python by Eric Snow
pyconslides
9
2k
Internationalization and Localization Done Right by Ruchi Varshney
pyconslides
9
1.2k
"Good Enough" is good enough! by Alex Martelli
pyconslides
13
2.6k
Plover: Thought to Text at 240 WPM by Mirabai Knight
pyconslides
1
1.3k
Other Decks in Programming
See All in Programming
GISエンジニアから見たLINKSデータ
nokonoko1203
0
190
16年目のピクシブ百科事典を支える最新の技術基盤 / The Modern Tech Stack Powering Pixiv Encyclopedia in its 16th Year
ahuglajbclajep
4
760
TestingOsaka6_Ozono
o3
0
270
.NET Conf 2025 の興味のあるセッ ションを復習した / dotnet conf 2025 quick recap for backend engineer
tomohisa
0
110
Deno Tunnel を使ってみた話
kamekyame
0
320
20251212 AI 時代的 Legacy Code 營救術 2025 WebConf
mouson
0
250
メルカリのリーダビリティチームが取り組む、AI時代のスケーラブルな品質文化
cloverrose
2
470
AI時代を生き抜く 新卒エンジニアの生きる道
coconala_engineer
1
530
DevFest Android in Korea 2025 - 개발자 커뮤니티를 통해 얻는 가치
wisemuji
0
180
[AI Engineering Summit Tokyo 2025] LLMは計画業務のゲームチェンジャーか? 最適化業務における活⽤の可能性と限界
terryu16
2
300
今こそ知るべき耐量子計算機暗号(PQC)入門 / PQC: What You Need to Know Now
mackey0225
3
300
Findy AI+の開発、運用におけるMCP活用事例
starfish719
0
2.1k
Featured
See All Featured
WENDY [Excerpt]
tessaabrams
9
35k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
95
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
420
[SF Ruby Conf 2025] Rails X
palkan
0
710
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.1k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.3k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
4 Signs Your Business is Dying
shpigford
187
22k
What the history of the web can teach us about the future of AI
inesmontani
PRO
0
400
Making Projects Easy
brettharned
120
6.5k
Fireside Chat
paigeccino
41
3.8k
Transcript
EVENT DRIVEN ARCHITECTURE It Is The Hardest Thing You Will
Never Figure it Out I Mean What Does “Asynchronous” Even Mean Is That Even A Real Word Saturday, March 16, 13
EVENT DRIVEN ARCHITECTURE For Regular Programmers Saturday, March 16, 13
EVENT DRIVEN ARCHITECTURE So Easy You Can Even Do It
In JavaScript Saturday, March 16, 13
W ARNING Saturday, March 16, 13
THINGS THAT ARE HARD IN JAVASCRIPT Saturday, March 16, 13
• Comparing Arrays THINGS THAT ARE HARD IN JAVASCRIPT Saturday,
March 16, 13
• Comparing Arrays • Adding Numbers THINGS THAT ARE HARD
IN JAVASCRIPT Saturday, March 16, 13
• Comparing Arrays • Adding Numbers • Defining Types THINGS
THAT ARE HARD IN JAVASCRIPT Saturday, March 16, 13
• Comparing Arrays • Adding Numbers • Defining Types •
Loading Modules THINGS THAT ARE HARD IN JAVASCRIPT Saturday, March 16, 13
THINGS THAT ARE EASY IN JAVASCRIPT Saturday, March 16, 13
• Calling Functions THINGS THAT ARE EASY IN JAVASCRIPT Saturday,
March 16, 13
• Calling Functions • Handling Events THINGS THAT ARE EASY
IN JAVASCRIPT Saturday, March 16, 13
THE ONLY THING THAT IS EASY IN JAVASCRIPT CALLING FUNCTIONS
Saturday, March 16, 13
A TALE OF TWO EVENTS • ASYNCHRONOUS I/O • CLICKY
BUTTONS Saturday, March 16, 13
A TALE OF TWO EVENTS • CLICKY BUTTONS • ASYNCHRONOUS
I/O Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
? ? ? Saturday, March 16, 13
When X ↓ Do Y Saturday, March 16, 13
When a REST API service endpoint result for the requested
data is available ↓ Do manipulate a model object of the appropriate type based on that data Saturday, March 16, 13
When I Click ↓ Do Say “Hi” Saturday, March 16,
13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
PyJS http://pyjs.org/ Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
NUMBER GUESSER binary search as implemented by human user Saturday,
March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
JAN KEN PON the ultimate distillation of human conflict Saturday,
March 16, 13
Saturday, March 16, 13
TWISTED http://twistedmatrix.com Saturday, March 16, 13
KLEIN https://github.com/twisted/klein Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
Saturday, March 16, 13
WHAT IS EVENT DRIVEN an event is just a function
call that you asked for Saturday, March 16, 13
THINK OF A FUNCTION what do you want to happen?
Saturday, March 16, 13
WHEN THE USER CLICKS THIS BUTTON please call this function
Saturday, March 16, 13
WHEN THE USER ANSWERS THIS QUESTION please call this function
Saturday, March 16, 13
WHEN THE NETWORK ANSWERS THIS QUESTION please call this function
Saturday, March 16, 13
WHEN THE NETWORK SENDS ME SOME DATA please call this
function Saturday, March 16, 13
THE NETWORK IS JUST A USER on the other side
of the planet or on the other side of the screen Saturday, March 16, 13
THANK YOU Saturday, March 16, 13
Saturday, March 16, 13