Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Designing with Data Flow
Search
Jack Hsu
November 22, 2016
Programming
54
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Designing with Data Flow
How we can approach design with application state and data flow in mind.
Jack Hsu
November 22, 2016
Other Decks in Programming
See All in Programming
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Kaigi on Rails 2026, Tokyo, Japan
marcoroth
2
230
作れる、でも消せるか?──安全に「枯らして消す」機能削除術 / Drain, Then Delete
chobishiba
2
690
AIで開発が速くなった先で、開発チームは何を目指すか
shihochan
0
1.4k
[Dev Group Paris Octobre 26] Agentforce, SIforce, Claudeforce, Slackbot… on s'y retrouve ?
nabondance
0
110
Jetpack Compose Mechanisms
skydoves
3
820
IBM Bob Dojo #1 仕様駆動開発入門
oniak3ibm
PRO
0
390
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
APNsからLive Activityを開始する話
yumnumm
0
170
C#の現在地 進化の歴史と、AI時代の.NET Everywhere
neuecc
5
5.2k
IBM Bob でAI駆動開発『QC-Playbook』
ichirokano2
0
110
Long Living Tokens, Die, Die, Die! (or: The One Ring is Banned in Modern)
sylph01
0
310
[2026-09-26]空論ジェネリックプロセス~テスト資産とAIで紡ぐ、再現可能なパフォーマンスチューニングの話~
tosite
0
270
Featured
See All Featured
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Navigating Weather and Climate Data
rabernat
0
560
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
1
630
The World Runs on Bad Software
bkeepers
PRO
72
12k
Designing for Timeless Needs
cassininazir
1
530
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
203
77k
Producing Creativity
orderedlist
PRO
348
41k
Documentation Writing (for coders)
carmenintech
77
5.6k
Google's AI Overviews - The New Search
badams
0
1.6k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
12k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
310
Transcript
DESIGNING WITH DATA FLOW
A BIT ABOUT ME… JACK HSU ▸ Web developer ▸
Twitter: @jay_soo ▸ Blog: jaysoo.ca
IF YOU’RE BUILDING SOFTWARE, THERE IS A CERTAIN POINT WHERE
YOU’LL BE DOMINATED BY COMPLEXITY. Rich Hickey
IN THE BRIEF WHAT IS SIMPLICITY? ▸ Simple: One concept
▸ Complexity: Interleaving of concepts ▸ Limits ▸ Simplicity Matters: https://www.youtube.com/watch? v=rI8tNMsozo0
WHAT MAKES DESIGN COMPLEX? ▸ Permutations of states ▸ Interleaving
UI interactions ▸ Error states ▸ etc.
None
CQRS/ES SIMPLIFYING DESIGN
CQRS? ▸ CQRS = Command Query Responsibility Segregation ▸ (aka
Flux) ▸ Commands = What the user intends to do ▸ Query = What the user sees
EVENT SOURCING ▸ Commands result in events ▸ Events affect
application state
EVENT SOURCING ▸ Commands may result in events ▸ Events
may affect application state NEXT!
None
None
CREATE NEW OPEN EMAIL
SEPARATION OF CONCERNS QUERIES ▸ List notifications ▸ Offline? ▸
…
SEPARATION OF CONCERNS COMMANDS ▸ Dismiss notification ▸ Go online
▸ …
THE GLOBAL STATE ONE STATE TO RULE THEM ALL
GLOBAL APPLICATION STATE
GLOBAL APPLICATION STATE WHY IS THIS USEFUL? ▸ State decoupled
from UI ▸ UI reproducible from state
ERROR HANDLING
TEXT NO CODE NEEDED! ▸ List out possible states ▸
Handle each state in UI accordingly ▸ No interaction with running app =
HOW DOES UI UPDATE? ES + STATE ATOM ▸ Commands
update parts of the state atom ▸ Updates to state cause change in UI ▸ Can reason about state changes without UI ▸ UI decoupled from commands
THE DATA FLOW TYING IT ALL TOGETHER
DATA FLOW QUERY UI CMD EVENT STATE
ONE-WAY DATA FLOW DOWN UI ▸ Data only flows in
one direction ▸ From top-level component to child components
INVERSE DATA FLOW UP ▸ User interaction causes a flow
back up ▸ Could result in a command in the application
OPEN EMAIL
TEXT BENEFITS ▸ Separation of concerns ▸ Completeness & correctness
▸ Design & Discovery process
None
None
DESIGN AND DISCOVERY ▸ Design UI with known states ▸
Discover through implementation
None
None
None
None
None
TAKEAWAYS ▸ Separate commands and queries ▸ Design UI from
global application state ▸ Design how data flows through application ▸ Design for one thing at a time
DISCUSSIONS ▸ Designs work with actual state? code? ▸ Managing
app complexity ▸ Too many states?
RESOURCES ▸ Pure UI - http://rauchg.com/2015/pure-ui/ ▸ Simplicity Matters (Talk)
- https://www.youtube.com/ watch?v=rI8tNMsozo0
THANK YOU!