Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
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
160
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
110
5 ways I screwed up Sol Trader's launch
chrismdp
0
170
Pathfinding Peril SPA 2016
chrismdp
0
210
Pathfinding Peril - BCS 2014
chrismdp
0
180
Separating allocation from code - NDC
chrismdp
0
150
Separating Allocation from Code
chrismdp
1
470
Extreme Isolation Workshop
chrismdp
1
130
Who's code is it anyway?
chrismdp
0
100
Leading software teams well
chrismdp
2
1.1k
Other Decks in Programming
See All in Programming
まだ間に合う!Claude Code元年をふりかえる
nogu66
5
820
Building AI Agents with TypeScript #TSKaigiHokuriku
izumin5210
6
1.3k
非同期処理の迷宮を抜ける: 初学者がつまづく構造的な原因
pd1xx
1
710
AIエンジニアリングのご紹介 / Introduction to AI Engineering
rkaga
6
2.1k
AWS CDKの推しポイントN選
akihisaikeda
1
240
モデル駆動設計をやってみようワークショップ開催報告(Modeling Forum2025) / model driven design workshop report
haru860
0
270
堅牢なフロントエンドテスト基盤を構築するために行った取り組み
shogo4131
8
2.3k
【CA.ai #3】ワークフローから見直すAIエージェント — 必要な場面と“選ばない”判断
satoaoaka
0
240
生成AIを利用するだけでなく、投資できる組織へ
pospome
2
320
Rediscover the Console - SymfonyCon Amsterdam 2025
chalasr
2
160
SwiftUIで本格音ゲー実装してみた
hypebeans
0
330
CSC509 Lecture 14
javiergs
PRO
0
220
Featured
See All Featured
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
970
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
390
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Navigating Team Friction
lara
191
16k
The Invisible Side of Design
smashingmag
302
51k
Designing Experiences People Love
moore
143
24k
[RailsConf 2023] Rails as a piece of cake
palkan
58
6.2k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
The Cost Of JavaScript in 2023
addyosmani
55
9.3k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Speed Design
sergeychernyshev
33
1.4k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
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