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
130
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
22
5 ways I screwed up Sol Trader's launch
chrismdp
0
140
Pathfinding Peril SPA 2016
chrismdp
0
130
Pathfinding Peril - BCS 2014
chrismdp
0
100
Separating allocation from code - NDC
chrismdp
0
130
Separating Allocation from Code
chrismdp
1
260
Extreme Isolation Workshop
chrismdp
1
98
Who's code is it anyway?
chrismdp
0
79
Leading software teams well
chrismdp
2
980
Other Decks in Programming
See All in Programming
CDKコントリビュートの最初の壁を越えよう! -簡単issueの見つけ方-
badmintoncryer
3
220
使ってみよう Azure AI Document Intelligence
kosmosebi
2
360
Kotlin Multiplatform at Stable and Beyond (Android Makers 2024)
zsmb
0
500
Goのエラースタックトレースの歴史と今後
sonatard
10
1.8k
Ruby Pattern Matching
bkuhlmann
0
930
PHPはいつから死んでいるかの調査
chiroruxx
2
420
Go製Webアプリケーションのエラーとの向き合い方大全、あるいはやっぱりスタックトレース欲しいやん / Kyoto.go #50
utgwkk
6
1.8k
Milestoner
bkuhlmann
1
410
StoreKit2によるiOSのアプリ内課金のリニューアル
kangnux
0
130
Sheets API使ってみた
toshi0383
2
170
検証も兼ねて個人開発でHonoとかと向き合った話
hanetsuki
1
1.3k
CA.swift19 恋するAIアプリ開発の裏側
oskmr
0
380
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
117
18k
A Tale of Four Properties
chriscoyier
152
22k
Designing for Performance
lara
601
67k
Product Roadmaps are Hard
iamctodd
45
9.7k
Clear Off the Table
cherdarchuk
85
310k
It's Worth the Effort
3n
180
27k
A Modern Web Designer's Workflow
chriscoyier
689
190k
Imperfection Machines: The Place of Print at Facebook
scottboms
261
12k
GraphQLの誤解/rethinking-graphql
sonatard
56
9.3k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
22
1.4k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
9
1.3k
[RailsConf 2023] Rails as a piece of cake
palkan
28
4k
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