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
DCI: Let the code do the talking
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Shintaro Kakutani
December 01, 2012
Technology
8.2k
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
DCI: Let the code do the talking
“DCI and the application builds our mental models” redux
Shintaro Kakutani
December 01, 2012
More Decks by Shintaro Kakutani
See All by Shintaro Kakutani
「ピッケル本」日本語版は4.0(第6版)が出版されるべき / pickaxe4-nagoyark05
kakutani
2
410
えにしテック、あるいは人間関係のエクササイズ / #enishitech-15th-anniv
kakutani
10
7.3k
(Software) Development with Agility
kakutani
4
1.2k
KeebKaigi Strikes!!!q
kakutani
0
790
Ruby30周年イベント オープニング / Ruby30th Opening
kakutani
3
1.8k
Above All, Make It Fun! #fjordbootcamp / make it fun
kakutani
8
1.5k
Agile Manifesto Decade Resurrections
kakutani
4
3.9k
『達人プログラマー 第2版』/ Pragmatic Programmer 2nd Ed.
kakutani
7
9.8k
『ユニコーン企業のひみつ』とスケーリングの考えかた / #AgileLounge 20220204
kakutani
5
5.7k
Other Decks in Technology
See All in Technology
cdk deployとcdkd deploy、実際にデプロイして5倍速近くの差を実測した
yama3133
1
160
200人の配信コメント、 全部Jevが仕分けます 〜 マサカリガードを作ってみた 〜
katayamatg
1
510
WireGuard for Apache NuttX - Bringing Secure Remote Access to embedded Devices -
aki310ooooo
0
130
eBPF 簡介 2026 版
shunghsiyu
0
160
慶應義塾大学 AI実践05 論文執筆の仕組み化
keio_smilab
PRO
6
3.4k
構造で守らせる データ・法務・セキュリティ・開発チームとつくる AI時代のデータガバナンスとデータ基盤のリアル
legalontechnologies
PRO
3
750
クラウドエージェントの先駆け Devin。今も最先端を走る、他との違い
kinopeee
2
550
Building Audio Plugin Ecosystem for Android in 2026
atsushieno
1
110
AIエージェント統制はAPIから——押さえるべき5つの要素
nagix
0
120
あなたのDartコードは丸見えかもしれない ~reFlutterで暴くFlutterアプリの中身と多層防御~
zozotech
PRO
0
750
1週間、Opus封印でお願いします
kintotechdev
1
440
AI AgentによるEmbedded SREの取り組み
tgidgd
1
320
Featured
See All Featured
We Are The Robots
honzajavorek
0
420
From π to Pie charts
rasagy
1
430
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
620
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
390
Side Projects
sachag
456
43k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
590
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
5
880
Balancing Empowerment & Direction
lara
6
1.4k
Music & Morning Musume
bryan
48
7.5k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
50
10k
Thoughts on Productivity
jonyablonski
76
5.4k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
620
Transcript
DCILET THE CODE DO THE TALKING “DCI and the application
builds our mental models” redux Shintaro Kakutani(@kakutani), ruby-no-kai || esminc,Fukuoka RubyKaigi 01, 2012-12-01(Sat)
taken by @hibariya @kakutani @j2h #rubyfriends
ఏɹڙ ͓͔͛͞·Ͱ̏̌प ใԽٕज़Λ௨ͯࣾ͡ձͱڞੜ͢Δ
None
Asakusa.rb http://www.flickr.com/photos/takkanm/3978417669
http://www.amazon.co.jp/o/ASIN/4274068560/kakutani-22
http://rubyfriends.com
http://www.slideshare.net/snoozer05/20101204-youmustunlearnwhatyouhavelearned/61
None
DCILET THE CODE DO THE TALKING “DCI and the application
builds our mental models” redux Shintaro Kakutani(@kakutani), ruby-no-kai || esminc,Fukuoka RubyKaigi 01, 2012-12-01(Sat)
James O.Coplien
We’ve already had nice resources on the net...
http://www.amazon.co.jp/o/ASIN/0470684208/kakutani-22/ref=nosim/
http://objectsonrails.com/
http://clean-ruby.com/
http://rubysource.com/dci-the-evolution-of-the-object-oriented-paradigm/
http://dci-in-ruby.info/resources.html
http://mikepackdev.com/blog_posts/24-the-right-way-to-code-dci-in-ruby
ιϑτΣΞ Ͳ͜ʹ͋Δͷ͔
ιϑτΣΞ಄ͷͳ͔ʹ͋Δ
ΤϯυϢʔβʔͷ ϝϯλϧϞσϧΛ ιʔείʔυͱͯ͠ දݱ͢Δ
গͣͭ͠ɺ ܁Γฦ͠ͳ͕Β ҭ͍ͯͯ͘
Software Development as Learning Process
“Agile”
ςετۦಈ։ൃ
ΦϒδΣΫτࢦઃܭ
దͳ໊લͷ͍ͭͨ ίʔυΛదͳॴʹ ஔ͘͜ͱ
Ruby
✓ Agile Style Workflow ✓ Test Driven Development ✓ Object-Oriented
Design ✓ Ruby
ιϑτΣΞ಄ͷͳ͔ʹ͋Δ
http://www.amazon.co.jp/o/ASIN/4798124583/kakutani-22/ref=nosim/
We’re on the same rails http://pixdaus.com/single.php?id=104150
http://guides.rubyonrails.org/getting_started.html
http://guides.rubyonrails.org/getting_started.html#the-mvc-architecture
HTTP: Hyper TEXT Transfer Protocol
http://martinfowler.com/eaaCatalog/activeRecord.html
Active Record is a pattern for persistence
Rails doesn’t save YOUR Applications! (it’s an awesome FRAMEWORK!)
http://www.flickr.com/photos/essgee/2477102230/ Recap ‘Common Pitfalls’ @ursm mentioned in Sapporo RubyKaigi 2012
http://sapporo.rubykaigi.org/2012/en/schedule/details/64.html
✓ Helpers don’t help up ✓ Partials are just partial,
Not parts ✓ Too Fat to be a model
✓ Helpers don’t help up ✓ Partials are just partial,
Not parts ✓ Too Fat to be a model
Too Fat to be a model
None
DCI Data-Context-Interaction
✓ Data: AR domain knowledge structure ✓ Context: (Ba) Playing
field for “objects” ✓ Interaction: Role Object#extend / refinements?
http://mikepackdev.com/blog_posts/24-the-right-way-to-code-dci-in-ruby
✓ Data: AR ✓ Context: “Activities” ✓ Interaction: Modules Poor
man’s DCI: you should check the talk given by @ursm in sapporo RubyKaigi 2012, thanks!
http://qa.atmarkit.co.jp/
Recap
✓ Agile Style Workflow ✓ Test Driven Development ✓ Object-Oriented
Design ✓ Ruby
Rails doesn’t save YOUR Applications! (it’s an awesome FRAMEWORK!)
ΤϯυϢʔβʔͷ ϝϯλϧϞσϧΛ ιʔείʔυͱͯ͠ දݱ͢Δ
ιϑτΣΞ಄ͷͳ͔ʹ͋Δ
Bonus Takeaway
https://codeclimate.com/
None
ιϑτΣΞΛཧղ͢Δͷʹ͋ͨΓɺυΩϡ ϝϯτ͕͋Δͱྑ͍͠ɺςετίʔυ͋Δͱ ॿ͔ΔɻϓϩμΫγϣϯίʔυʹίϝϯτ͕͋ Ε͔֬ʹศར͚ͩͲɺϓϩμΫγϣϯίʔυ ͦͷͷ͕ͦͷιϑτΣΞͷ͜ͱΛޠ͍ͬͯ ΔΑ͏ʹίʔυΛॻ͚ΔΑ͏ʹʜʜͳΓ͍ͨ ͶɻͰɺͦͷͨΊʹɺ͚͖ͬΐࣗͨͪ͘ ্͕खʹͳΔΑ͏ʹ࿅शΛॏͶ͍͔ͯ͘͠ͳ͍ ͱࢥ͏ͷͰɺΈͳ͞ΜҰॹʹ͕ΜΖ͏
Let the Code Do The Talking!