Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Extreme Isolation (Lightning talk)
Search
chrismdp
September 15, 2013
Programming
180
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
150
5 ways I screwed up Sol Trader's launch
chrismdp
0
230
Pathfinding Peril SPA 2016
chrismdp
0
240
Pathfinding Peril - BCS 2014
chrismdp
0
230
Separating allocation from code - NDC
chrismdp
0
170
Separating Allocation from Code
chrismdp
1
610
Extreme Isolation Workshop
chrismdp
1
170
Who's code is it anyway?
chrismdp
0
140
Leading software teams well
chrismdp
2
1.1k
Other Decks in Programming
See All in Programming
Intent as Code
shoppingjaws
6
1.1k
AI時代のコードレビューは人に向けるな、仕組みに向けろ
texmeijin
5
3.2k
JRuby: Past, Present, and Future
headius
0
220
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
410
ゲームコントローラやキーボードのファームウェアをSwiftで書く
kishikawakatsumi
1
270
Findy - エンジニア向け会社紹介/Findy Company Deck
findyinc
6
400k
AWS CDKのカスタムリソースでContinuum(旧Security Agent)を実装した話 | Implementing Continuum (formerly Security Agent) via AWS CDK Custom Resource
akihisaikeda
2
110
Verilogで学ぶCPU自作入門.pdf
uyuki234
7
3.9k
更なる可用性を求めて、5年間運用したKotlinのアプリケーションをGoでリプレイスする話
ken_tunc
0
420
標準パッケージに uuid が追加された 背景から見る Go らしい意思決定 / go_127_uuid_decision
convto
5
9.3k
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
1k
Embedded Swiftで作る自作USBデバイス によるiOSデバイスの自動テスト / iOSDC Japan 2026 glassfiber
glassfiber
0
250
Featured
See All Featured
Heart Work Chapter 1 - Part 1
lfama
PRO
10
36k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
33
5k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.6k
Making Projects Easy
brettharned
120
6.8k
The browser strikes back
jonoalderson
0
1.7k
SEO for Brand Visibility & Recognition
aleyda
0
4.8k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Mobile First: as difficult as doing things right
swwweet
225
10k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
500
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
Amusing Abliteration
ianozsvald
1
320
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
340
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