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
46
5 ways I screwed up Sol Trader's launch
chrismdp
0
150
Pathfinding Peril SPA 2016
chrismdp
0
160
Pathfinding Peril - BCS 2014
chrismdp
0
120
Separating allocation from code - NDC
chrismdp
0
130
Separating Allocation from Code
chrismdp
1
320
Extreme Isolation Workshop
chrismdp
1
110
Who's code is it anyway?
chrismdp
0
85
Leading software teams well
chrismdp
2
980
Other Decks in Programming
See All in Programming
プログラマのための音楽入門
cheebow
5
550
dotfiles について話したい #湘なんか
stefafafan
2
280
LangChainの現在とv0.3にむけて
os1ma
3
690
私の考える初学者がBlazorできるまでの学習方法
tomokusaba
1
250
Rubyのobject_id
qnighy
6
1.3k
New Order in Cascade Sorting Order
mugi_uno
3
2.5k
数値を文字列に整形する際の落とし穴とその解決策(iOSDC2024 ルーキーズLT) / iOSDC Japan 2024 Formatting Floating-Point Numbers
glassfiber
0
270
いつか使える ObjectSpace / Maybe useful ObjectSpace
euglena1215
2
110
GoのIteratorに詳しくなってしまう
inatonix
1
180
The Sequel to a Dream of Ruby Parser's Grammar
ydah
1
190
Web技術を駆使してユーザーの画面を「録画」する
yukukotani
13
6.3k
マイグレーションコード自作して File-Based Routing に自動移行!! ~250 ページの歴史的経緯を添えて~
cut0
1
250
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
43
13k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
190
16k
How STYLIGHT went responsive
nonsquared
93
5.1k
Optimizing for Happiness
mojombo
375
69k
Embracing the Ebb and Flow
colly
83
4.4k
What's new in Ruby 2.0
geeforr
340
31k
The Invisible Side of Design
smashingmag
295
50k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
122
18k
GitHub's CSS Performance
jonrohan
1029
450k
Mobile First: as difficult as doing things right
swwweet
220
8.8k
Six Lessons from altMBA
skipperchong
26
3.3k
Raft: Consensus for Rubyists
vanstee
135
6.5k
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