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
A new state of mind: Building better web apps w...
Search
Adam Michael Daw
May 27, 2020
Programming
43
0
Share
A new state of mind: Building better web apps with finite-state machines
Adam Michael Daw
May 27, 2020
Other Decks in Programming
See All in Programming
モダンOBSプラグイン開発
umireon
0
190
Mastering Event Sourcing: Your Parents Holidayed in Yugoslavia
super_marek
0
130
AIコードレビューの導入・運用と AI駆動開発における「AI4QA」の取り組みについて
hagevvashi
0
580
おれのAgentic Coding 2026/03
tsukasagr
1
120
RailsのValidatesをSwift Macrosで再現してみた
hokuron
0
140
それはエンジニアリングの糧である:AI開発のためにAIのOSSを開発する現場より / It serves as fuel for engineering: insights from the field of developing open-source AI for AI development.
nrslib
1
780
AI-DLC 入門 〜AIコーディングの本質は「コード」ではなく「構造」〜 / Introduction to AI-DLC: The Essence of AI Coding Is Not “Code” but “Structure”
seike460
PRO
0
150
コードレビューをしない選択 #でぃーぷらすトウキョウ
kajitack
3
1.2k
Geminiをパートナーに神社DXシステムを個人開発した話(いなめぐDX 開発振り返り)
fujiba
0
130
Everything Claude Code OSS詳細 — 5層構造の中身と導入方法
targe
0
160
Agentic AI: Evolution oder Revolution
mobilelarson
PRO
0
220
AIと共にエンジニアとPMの “二刀流”を実現する
naruogram
0
110
Featured
See All Featured
How to Ace a Technical Interview
jacobian
281
24k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
340
Site-Speed That Sticks
csswizardry
13
1.1k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.8k
Skip the Path - Find Your Career Trail
mkilby
1
93
WENDY [Excerpt]
tessaabrams
9
37k
We Have a Design System, Now What?
morganepeng
55
8.1k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.2k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.8k
Statistics for Hackers
jakevdp
799
230k
Transcript
A NEW STATE OF MIND BUILDING BETTER WEB APPS WITH
FINITE-STATE MACHINES
ADAM DAW TWITTER: @ADAMDAW GITHUB: ADAMDAW
WHAT IS A FINITE-STATE MACHINE? ANY (ABSTRACT) MACHINE THAT CAN
BE IN EXACTLY ONE OF A FINITE NUMBER OF STATES AT A GIVEN TIME.
THINGS TO KNOW • NOT NEW (THOUGH RECENTLY GAINING POPULARITY)
• NOT CODE (THOUGH MANY IMPLEMENTATIONS HAVE BEEN INTRODUCED) • NOT HARD (THOUGH STARTING TO THINK OF THINGS IN THIS FASHION MIGHT BE)
EXAMPLES IN THE WILD A CHECKBOX (2 STATES: CHECKED, UNCHECKED)
A DOOR (2 STATES: OPEN, CLOSED) A PROMISE (3 STATES: PENDING, REJECTED, FULFILLED)
WHY STATE MACHINES? • IMPLICIT STATE • Booleans such as
(loading/doneloading) • EXPLICIT STATE • states: { loading: {…}, error: {…}, idle: {…}, success: {…}} • CLEANER CONCEPTUALIZATION OF BEHAVIOUR • BETTER MAPPING OF TRANSITIONS • PARADIGM SHIFT: EVENT-ACTION TO EVENT-STATE-ACTION
VISUALIZING STATE • 2 STATES : • Locked (initial) •
Coin: un-locked • Un-locked • Push: locked
VISUALIZING STATE PT 2 • 3 STATES : • Idle
(initial) • Click : fetching • Fetching • Failure: error • Success: idle • Error • Retry: fetching
LET’S SEE IT IN CODE!
SUMMARY • CLEANER TRANSITIONS BETWEEN STATES • BETTER UNDERSTANDING OF
BEHAVIOUR • LESS CODE TO COVER FOR TESTING • Can automate integration testing • MOVE FROM EVENT-ACTION TO EVENT-STATE-ACTION TODAY!
Q & A?