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
1
150
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
95
5 ways I screwed up Sol Trader's launch
chrismdp
0
160
Pathfinding Peril SPA 2016
chrismdp
0
200
Pathfinding Peril - BCS 2014
chrismdp
0
160
Separating allocation from code - NDC
chrismdp
0
150
Separating Allocation from Code
chrismdp
1
420
Extreme Isolation Workshop
chrismdp
1
130
Who's code is it anyway?
chrismdp
0
94
Leading software teams well
chrismdp
2
1k
Other Decks in Programming
See All in Programming
Java on Azure で LangGraph!
kohei3110
0
170
アンドパッドの Go 勉強会「 gopher 会」とその内容の紹介
andpad
0
260
20250628_非エンジニアがバイブコーディングしてみた
ponponmikankan
0
350
[初登壇@jAZUG]アプリ開発者が気になるGoogleCloud/Azure+wasm/wasi
asaringo
0
130
What Spring Developers Should Know About Jakarta EE
ivargrimstad
0
220
関数型まつりレポート for JuliaTokai #22
antimon2
0
150
都市をデータで見るってこういうこと PLATEAU属性情報入門
nokonoko1203
1
570
Julia という言語について (FP in Julia « SIDE: F ») for 関数型まつり2025
antimon2
3
980
GoのGenericsによるslice操作との付き合い方
syumai
3
680
Rubyでやりたい駆動開発 / Ruby driven development
chobishiba
1
370
A2A プロトコルを試してみる
azukiazusa1
2
1.1k
PHP 8.4の新機能「プロパティフック」から学ぶオブジェクト指向設計とリスコフの置換原則
kentaroutakeda
2
490
Featured
See All Featured
The Cost Of JavaScript in 2023
addyosmani
51
8.4k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.3k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
2.9k
Fireside Chat
paigeccino
37
3.5k
Building Applications with DynamoDB
mza
95
6.5k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
Rails Girls Zürich Keynote
gr2m
94
14k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Raft: Consensus for Rubyists
vanstee
140
7k
A better future with KSS
kneath
239
17k
Faster Mobile Websites
deanohume
307
31k
A Tale of Four Properties
chriscoyier
160
23k
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