immutable data
const array = Object.freeze([3,1,2]);
array[0] // 3
array.sort(); // TypeError: Cannot assign to
read only property '1' ...
array[0] // 3
Slide 42
Slide 42 text
let newArr = [ ...prevArr ];
let newObj = { ...prevObj };
copy data
Slide 43
Slide 43 text
Data
Filter
Data
Shaper
Line
Graph
Options
Data
(e.g. fetch api)
Functional
Core
“Nerve Net”
draw
(e.g. chart.js)
Slide 44
Slide 44 text
Data
Filter
Data
Shaper
Line
Graph
Options
Data
(e.g. fetch api)
Functional
Core
“Nerve Net”
draw
(e.g. chart.js)
Date
Filter
TrendLine
Gary Bernhardt, Boundaries
Slide 45
Slide 45 text
Cambrian Explosion: ~541
million YA
Slide 46
Slide 46 text
No content
Slide 47
Slide 47 text
Run and Tumble
mit.edu
Slide 48
Slide 48 text
Run and Tumble to Better Design
small
components
compose with
messages
push side-effects
to boundaries
functional core name things
Slide 49
Slide 49 text
Resources
• Gary Bernhardt - Boundaries: https://
www.destroyallsoftware.com/talks/boundaries
• Dan North - Software that Fits in Your Head: https://
www.youtube.com/watch?v=4Y0tOi7QWqM
• Rich Hickey - Simple Made Easy: https://www.infoq.com/
presentations/Simple-Made-Easy
• Jessica Kerr - Functional Principles for OO Development:
https://www.youtube.com/watch?v=tq5SQ4W3gRI