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
140
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
37
5 ways I screwed up Sol Trader's launch
chrismdp
0
150
Pathfinding Peril SPA 2016
chrismdp
0
150
Pathfinding Peril - BCS 2014
chrismdp
0
110
Separating allocation from code - NDC
chrismdp
0
130
Separating Allocation from Code
chrismdp
1
300
Extreme Isolation Workshop
chrismdp
1
100
Who's code is it anyway?
chrismdp
0
81
Leading software teams well
chrismdp
2
980
Other Decks in Programming
See All in Programming
Introduction of Happy Eyeballs Version 2 (RFC8305) to the Socket library
coe401_
1
220
今こそ始める、CDKコンストラクトライブラリ開発 ― 入門から実践まで
tmokmss
1
930
Jetpack for KMP
fornewid
1
290
TiDB Serverless ~理想のServerless DBを考える~
soso_15315
1
160
Folding Cheat Sheet #7
philipschwarz
PRO
0
150
From Spring Boot 2 to Spring Boot 3 with Java 22 and Jakarta EE
ivargrimstad
0
1.9k
3 Effective Rules for Success with Signals in Angular
manfredsteyer
PRO
0
120
最近追加した型の紹介とその振り返り
aki19035vc
0
180
大規模マルチテナントを解決するYugabyteDBという選択肢
nnaka2992
1
250
Webエディタライブラリ 「CodeMirror」から学ぶ Webアプリ開発のテクニック
ryosukeigarashi
0
250
社内 LT 会を発足し、アウトプット文化を醸成させるために考えたこと・やったこと / Starting internal LT meetings and fostering an output culture
mackey0225
3
120
Clean Architecture by TypeScript & NestJS
ryounasso
0
150
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
269
39k
Creatively Recalculating Your Daily Design Routine
revolveconf
214
11k
Being A Developer After 40
akosma
72
580k
Bash Introduction
62gerente
607
210k
YesSQL, Process and Tooling at Scale
rocio
166
14k
Code Reviewing Like a Champion
maltzj
517
39k
Optimising Largest Contentful Paint
csswizardry
18
2.6k
Done Done
chrislema
179
15k
The Power of CSS Pseudo Elements
geoffreycrofte
64
5.2k
RailsConf 2023
tenderlove
16
720
How to Ace a Technical Interview
jacobian
274
23k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
35
6.3k
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