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
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
130
5 ways I screwed up Sol Trader's launch
chrismdp
0
210
Pathfinding Peril SPA 2016
chrismdp
0
230
Pathfinding Peril - BCS 2014
chrismdp
0
210
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
ふつうのFeature Flag実践入門
irof
7
3.5k
ローカルLLMを使ってB2Bサービスを作っていての学び
yaotti
0
130
IBM Bobを活用したレガシーアプリの最新化
oniak3ibm
PRO
1
170
net-httpのHTTP/2対応について
naruse
0
440
AutonomyとControlのあいだ:Graflowで記述するAIエージェント協調
myui
0
110
tsserverとは何だったのか、これからどうなるのか
nowaki28
1
450
気づいたらRubyで100作品 ー クリエイティブコーディングが生活の一部になるまで / 100 Ruby Sketches Later: How Creative Coding Became Part of My Life
chobishiba
3
540
開発体験を左右するライブラリの API 設計 - GraphQL スキーマ構築ライブラリから考える #tskaigi
izumin5210
2
1.6k
運用エージェントは "作る" から "育てる" へ - 記憶と自己進化の3層設計パターン / self-evolving-agents-three-layer-agent-design
gawa
12
3.5k
JavaDoc 再入門
nagise
0
280
作って学ぶ、 JSX (TSX) ランタイムの基本
syumai
7
1.5k
生成AI時代にこそ効くGo | Why Go Works in the Age of Generative AI
mom0tomo
8
3.1k
Featured
See All Featured
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.4k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.3k
Design in an AI World
tapps
1
220
Heart Work Chapter 1 - Part 1
lfama
PRO
7
36k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
240
Being A Developer After 40
akosma
91
590k
The Cost Of JavaScript in 2023
addyosmani
55
10k
Discover your Explorer Soul
emna__ayadi
2
1.1k
Visualization
eitanlees
152
17k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.7k
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