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
220
Pathfinding Peril - BCS 2014
chrismdp
0
200
Separating allocation from code - NDC
chrismdp
0
160
Separating Allocation from Code
chrismdp
1
560
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
YJITとZJITにはイカなる違いがあるのか?
nakiym
0
260
Claude Codeをカスタムして自分だけのClaude Codeを作ろう
terisuke
0
150
mruby on C#: From VM Implementation to Game Scripting (RubyKaigi 2026)
hadashia
2
1.1k
〜バイブコーディングを超えて〜 チームで実験し続けたAI駆動開発
tigertora7571
0
180
PHP で mp3 プレイヤーを実装しよう
m3m0r7
PRO
0
290
PHPer、Cloudflare に引っ越す
suguruooki
1
120
アーキテクチャモダナイゼーションとは何か
nwiizo
19
5.6k
運転動画を検索可能にする〜Cosmos-Embed1とDatabricks Vector Searchで〜/cosmos-embed1-databricks-vector-search
studio_graph
1
520
CursorとClaudeCodeとCodexとOpenCodeを実際に比較してみた
terisuke
1
500
検索設計から 推論設計への重心移動と Recall-First Retrieval
po3rin
4
1.3k
Surviving Black Friday: 329 billion requests with Falcon!
ioquatix
0
2k
AI時代のPhpStorm最新事情 #phpcon_odawara
yusuke
0
240
Featured
See All Featured
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
380
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.5k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.5k
First, design no harm
axbom
PRO
2
1.2k
Paper Plane (Part 1)
katiecoart
PRO
0
6.9k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.7k
Site-Speed That Sticks
csswizardry
13
1.2k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
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