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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
chrismdp
September 15, 2013
Programming
170
1
Share
Extreme Isolation (Lightning talk)
Slides for a lightning talk given at Barcuo 2013.
chrismdp
September 15, 2013
More Decks by chrismdp
See All by chrismdp
Why Rails is still relevant for startups in 2021
chrismdp
0
120
5 ways I screwed up Sol Trader's launch
chrismdp
0
200
Pathfinding Peril SPA 2016
chrismdp
0
230
Pathfinding Peril - BCS 2014
chrismdp
0
200
Separating allocation from code - NDC
chrismdp
0
160
Separating Allocation from Code
chrismdp
1
570
Extreme Isolation Workshop
chrismdp
1
150
Who's code is it anyway?
chrismdp
0
120
Leading software teams well
chrismdp
2
1.1k
Other Decks in Programming
See All in Programming
開発とはなにか、Essenceカーネルで見えるもの
ukin0k0
0
190
Oxlintはいかにしてtsgolintのlint ruleを呼び出しているのか
syumai
0
240
🦞OpenClaw works with AWS
licux
1
370
2026年のソフトウェア開発を考える(2026/05版) / Software Engineering Scrum Fest Niigata 2026 Edition
twada
PRO
23
13k
TypeScriptだけでAIエージェントを作る フロント・エージェント・インフラのフルスタック実践
har1101
3
550
iOS26時代の新規アプリ開発
yuukiw00w
0
120
PHPでローカル環境用のSSL/TLS証明書を発行することはできるのか? #phpconkagawa
akase244
0
370
【ディップ|26年新卒研修資料】OpenAPI/Swagger REST API研修
dip_tech
PRO
0
170
Cloudflare で始める Data Platform
ta93abe
0
180
密結合なバックエンドから TypeScript のコードを生成する
kemuridama
0
200
Firefoxにコントリビューションして得られた学び
ken7253
2
160
Sans tests, vos agents ne sont pas fiables
nabondance
0
130
Featured
See All Featured
Building an army of robots
kneath
306
46k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.9k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
190
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
210
Producing Creativity
orderedlist
PRO
348
40k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.6k
The World Runs on Bad Software
bkeepers
PRO
72
12k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
230
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
150
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
180
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.2k
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