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
Extreme Isolation (Lightning talk)
Search
chrismdp
September 15, 2013
Programming
1
140
Extreme Isolation (Lightning talk)
Slides for a lightning talk given at Barcuo 2013.
chrismdp
September 15, 2013
Tweet
Share
More Decks by chrismdp
See All by chrismdp
Why Rails is still relevant for startups in 2021
chrismdp
0
48
5 ways I screwed up Sol Trader's launch
chrismdp
0
150
Pathfinding Peril SPA 2016
chrismdp
0
160
Pathfinding Peril - BCS 2014
chrismdp
0
120
Separating allocation from code - NDC
chrismdp
0
140
Separating Allocation from Code
chrismdp
1
330
Extreme Isolation Workshop
chrismdp
1
110
Who's code is it anyway?
chrismdp
0
87
Leading software teams well
chrismdp
2
980
Other Decks in Programming
See All in Programming
メモリ最適化を究める!iOSアプリ開発における5つの重要なポイント
yhirakawa333
0
420
Lessons by WebAssembly app in production on CDN Edge Computing Service
tetsuharuohzeki
0
210
Prolog入門
qnighy
4
1k
Developer Joy == Developer Productivity (really!)
hollycummins
1
220
From Idea to IDE: Developing Plugins for Android Studio
thisaay
1
220
Jakarta EE meets AI
ivargrimstad
1
520
Using Livebook to build and deploy internal tools @ ElixirConf 2024
hugobarauna
0
250
ECMAScript、Web標準の型はどう管理されているか / How ECMAScript and Web standards types are maintained
petamoriken
3
390
Pythonで改めて考える「クラス(class)」の使いどころ
os1ma
1
470
僕が思い描くTypeScriptの未来を勝手に先取りする
yukukotani
9
2.4k
今インフラ技術をイチから学び直すなら
yuhta28
1
140
Kotlin 2.0 and Beyond
antonarhipov
2
150
Featured
See All Featured
Imperfection Machines: The Place of Print at Facebook
scottboms
263
13k
[RailsConf 2023] Rails as a piece of cake
palkan
48
4.6k
4 Signs Your Business is Dying
shpigford
179
21k
The Invisible Customer
myddelton
119
13k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
8.9k
Designing for humans not robots
tammielis
248
25k
Happy Clients
brianwarren
96
6.6k
Optimising Largest Contentful Paint
csswizardry
31
2.8k
Building a Scalable Design System with Sketch
lauravandoore
459
32k
Being A Developer After 40
akosma
84
590k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
326
21k
The Power of CSS Pseudo Elements
geoffreycrofte
71
5.3k
Transcript
EXTREME ISOLATION @chrismdp Sunday, 15 September 13
PROBLEM Sunday, 15 September 13
baz bar foo quux eke baz bar foo quux eke
baz bar foo quux eke baz bar foo quu eke baz bar foo quux eke foo quux bar quux eke bar eke bar foo quux baz eke baz bar foo Sunday, 15 September 13
ACTOR MODEL OF CONCURRENCY Separating Arrangement and Work Sunday, 15
September 13
baz bar foo quux eke Sunday, 15 September 13
bar foo POROs baz calling code handles the arrangement objects
handle the work, don’t know about others objects can be called in any order POROs POROs Sunday, 15 September 13
HEXAGONAL RAILS Ports and Adaptors Sunday, 15 September 13
persistence web mailer view controller domain Sunday, 15 September 13
persistence web mailer view controller domain Sunday, 15 September 13
persistence web Plain Ruby representing your domain mailer Sunday, 15
September 13
EXTREME ISOLATION Sunday, 15 September 13
domain persistence Person Sunday, 15 September 13
Person Repository Person PORO Sunday, 15 September 13
Person Repository Person Sunday, 15 September 13
PersonRepository PersonValidator Person Web Handler Mongo web page request Request
Handler InvalidPerson UpdatePerson Sunday, 15 September 13
put “person/:slug” do |slug| updated_person = find(slug). with_description(params[:description]). with_topics([params[:topics]) queue
= PersonValidator.new.validate(updated_person) queue = PersonEditor.new(slug).pipe(queue) PersonMongoRepository.apply(queue) SinatraResponder.apply(queue) end Sunday, 15 September 13
BENEFITS Sunday, 15 September 13
EACH OBJECT IS INDEPENDENT Dealing with value objects on the
edges Sunday, 15 September 13
UpdatePerson Web Handler web page InvalidPerson Sunday, 15 September 13
PersonRepository UpdatePerson Mongo InvalidPerson Sunday, 15 September 13
IMMUTABLE VALUE OBJECTS Freeze is your friend Sunday, 15 September
13
EXAMPLE ON GITHUB http://github.com/thinkcodelearn/discover Sunday, 15 September 13
BLOG SERIES http://chrismdp.com Sunday, 15 September 13
THANKS @chrismdp Sunday, 15 September 13