Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Extreme Isolation (Lightning talk)
chrismdp
September 15, 2013
Programming
1
88
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
9
5 ways I screwed up Sol Trader's launch
chrismdp
0
110
Pathfinding Peril SPA 2016
chrismdp
0
100
Pathfinding Peril - BCS 2014
chrismdp
0
72
Separating allocation from code - NDC
chrismdp
0
120
Separating Allocation from Code
chrismdp
1
220
Extreme Isolation Workshop
chrismdp
1
93
Who's code is it anyway?
chrismdp
0
73
Leading software teams well
chrismdp
2
960
Other Decks in Programming
See All in Programming
SHOWROOMの分析目的を意識した伝え方・コミュニケーション
hatapu
0
230
Hasura の Relationship と権限管理
karszawa
0
160
あなたと 「|」 したい・・・
track3jyo
PRO
2
1k
量子コンピュータ時代のプログラミングセミナー / 20221222_Amplify_seminar _route_optimization
fixstars
0
240
はてなリモートインターンシップ2022 Web API 講義資料
hatena
0
150
Micro Frontends with Module Federation @MicroFrontend Summit 2023
manfredsteyer
PRO
0
430
Remix + Cloudflare Pages + D1 で ポケモン SV のレンタルチームを検索できるアプリを作ってみた
kuroppe1819
4
1.2k
低レイヤーから始める GUI
fadis
18
9.2k
Use KMM to call the API of the National Tax Agency
akkeylab
0
290
新卒2年目がデータ分析API開発に挑戦【Stapy#88】/data-science-api-begginer
matsuik
0
330
Findy - エンジニア向け会社紹介 / Findy Letter for Engineers
findyinc
2
42k
Git Rebase
bkuhlmann
10
1.2k
Featured
See All Featured
YesSQL, Process and Tooling at Scale
rocio
159
12k
Raft: Consensus for Rubyists
vanstee
130
5.7k
Scaling GitHub
holman
453
140k
Web development in the modern age
philhawksworth
197
9.6k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
224
50k
What’s in a name? Adding method to the madness
productmarketing
12
1.9k
Adopting Sorbet at Scale
ufuk
65
7.8k
Principles of Awesome APIs and How to Build Them.
keavy
117
15k
Rails Girls Zürich Keynote
gr2m
87
12k
Design by the Numbers
sachag
271
18k
A Philosophy of Restraint
colly
193
15k
Pencils Down: Stop Designing & Start Developing
hursman
114
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