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
0
39
A new state of mind: Building better web apps with finite-state machines
Adam Michael Daw
May 27, 2020
Tweet
Share
Other Decks in Programming
See All in Programming
AI駆動開発カンファレンスAutumn2025 _AI駆動開発にはAI駆動品質保証
autifyhq
0
120
品質ワークショップをやってみた
nealle
0
920
Vue 3.6 時代のリアクティビティ最前線 〜Vapor/alien-signals の実践とパフォーマンス最適化〜
hiranuma
2
370
スキーマ駆動で、Zod OpenAPI Honoによる、API開発するために、Hono Takibiというライブラリを作っている
nakita628
0
340
One Enishi After Another
snoozer05
PRO
0
180
data-viz-talk-cz-2025
lcolladotor
0
110
Reactive Thinking with Signals and the Resource API
manfredsteyer
PRO
0
120
Temporal Knowledge Graphで作る! 時間変化するナレッジを扱うAI Agentの世界
po3rin
5
1.2k
Migration to Signals, Resource API, and NgRx Signal Store
manfredsteyer
PRO
0
140
ALL CODE BASE ARE BELONG TO STUDY
uzulla
29
6.9k
ビルドプロセスをデバッグしよう!
yt8492
0
230
3年ぶりにコードを書いた元CTOが Claude Codeと30分でMVPを作った話
maikokojima
0
750
Featured
See All Featured
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
10
640
Speed Design
sergeychernyshev
32
1.2k
Building Adaptive Systems
keathley
44
2.8k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.5k
Into the Great Unknown - MozCon
thekraken
40
2.1k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.7k
Unsuck your backbone
ammeep
671
58k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
658
61k
Visualization
eitanlees
150
16k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.3k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
The Invisible Side of Design
smashingmag
302
51k
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?