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
160
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
190
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
540
Extreme Isolation Workshop
chrismdp
1
140
Who's code is it anyway?
chrismdp
0
110
Leading software teams well
chrismdp
2
1.1k
Other Decks in Programming
See All in Programming
Kubernetesでセルフホストが簡単なNewSQLを求めて / Seeking a NewSQL Database That's Simple to Self-Host on Kubernetes
nnaka2992
0
190
Claude Code Skill入門
mayahoney
0
460
Nuxt Server Components
wattanx
0
230
「接続」—パフォーマンスチューニングの最後の一手 〜点と点を結ぶ、その一瞬のために〜
kentaroutakeda
5
2.4k
GoのDB アクセスにおける 「型安全」と「柔軟性」の両立 - Bob という選択肢
tak848
0
300
2026-03-27 #terminalnight 変数展開とコマンド展開でターミナル作業をスマートにする方法
masasuzu
0
270
それはエンジニアリングの糧である:AI開発のためにAIのOSSを開発する現場より / It serves as fuel for engineering: insights from the field of developing open-source AI for AI development.
nrslib
1
820
今こそ押さえておきたい アマゾンウェブサービス(AWS)の データベースの基礎 おもクラ #6版
satoshi256kbyte
1
220
Xdebug と IDE による デバッグ実行の仕組みを見る / Exploring-How-Debugging-Works-with-Xdebug-and-an-IDE
shin1x1
0
300
Symfonyの特性(設計思想)を手軽に活かす特性(trait)
ickx
0
110
「効かない!」依存性注入(DI)を活用したAPI Platformのエラーハンドリング奮闘記
mkmk884
0
290
RSAが破られる前に知っておきたい 耐量子計算機暗号(PQC)入門 / Intro to PQC: Preparing for the Post-RSA Era
mackey0225
3
110
Featured
See All Featured
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
170
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.2k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.9k
Tell your own story through comics
letsgokoyo
1
880
How GitHub (no longer) Works
holman
316
150k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
320
VelocityConf: Rendering Performance Case Studies
addyosmani
333
25k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
199
73k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
120
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
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