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
180
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
140
5 ways I screwed up Sol Trader's launch
chrismdp
0
220
Pathfinding Peril SPA 2016
chrismdp
0
230
Pathfinding Peril - BCS 2014
chrismdp
0
220
Separating allocation from code - NDC
chrismdp
0
170
Separating Allocation from Code
chrismdp
1
590
Extreme Isolation Workshop
chrismdp
1
160
Who's code is it anyway?
chrismdp
0
130
Leading software teams well
chrismdp
2
1.1k
Other Decks in Programming
See All in Programming
数百円から始めるRuby電子工作
tarosay
0
160
torikago - Ruby::Boxで照らすモジュラモノリスの実行境界
se4weed
1
380
楽しそうなつよつよエンジニアと目が死んでる僕/A brilliant engineer having a blast, and dead-eyed me.
3l4l5
2
190
Android CLI
fornewid
0
220
メールのエイリアス機能を履き違えない
isshinfunada
0
240
AWS DevOps AgentのAzure接続機能を検証して見えた活用法/Use Cases Verified for the AWS DevOps Agent's Azure Connectivity Feature
masakiokuda
1
240
「寝てても仕事が進む」Claude Codeで組む第二の脳
tomoyafujita2016
0
340
テーブルをDELETEした
yuzneri
0
140
the container ship “Apple Silicon”@WWDC26 Recap -Japan-\(region).swift
shingangan
0
130
How I Won Prize Money at a Hackathon Using Codex and Symphony Alpha
yasei_no_otoko
0
100
仕様駆動開発へのトライを機に チームに適合する手法を模索し続けている話
freee
PRO
0
560
Go言語とトイモデルで学ぶTransformerの気持ち / fukuokago23-transformer
monochromegane
0
180
Featured
See All Featured
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
11k
First, design no harm
axbom
PRO
2
1.2k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Odyssey Design
rkendrick25
PRO
2
760
The Limits of Empathy - UXLibs8
cassininazir
1
610
KATA
mclloyd
PRO
35
15k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
2.4k
Become a Pro
speakerdeck
PRO
31
6.2k
Designing for Timeless Needs
cassininazir
1
440
Exploring anti-patterns in Rails
aemeredith
3
470
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
How GitHub (no longer) Works
holman
316
150k
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