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
DCI: Let the code do the talking
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Shintaro Kakutani
December 01, 2012
Technology
8.1k
4
Share
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
えにしテック、あるいは人間関係のエクササイズ / #enishitech-15th-anniv
kakutani
10
6.9k
(Software) Development with Agility
kakutani
4
1.1k
KeebKaigi Strikes!!!q
kakutani
0
700
Ruby30周年イベント オープニング / Ruby30th Opening
kakutani
3
1.7k
Above All, Make It Fun! #fjordbootcamp / make it fun
kakutani
8
1.4k
Agile Manifesto Decade Resurrections
kakutani
4
3.7k
『達人プログラマー 第2版』/ Pragmatic Programmer 2nd Ed.
kakutani
7
9.6k
『ユニコーン企業のひみつ』とスケーリングの考えかた / #AgileLounge 20220204
kakutani
5
5.6k
(You) Name It!
kakutani
6
2.1k
Other Decks in Technology
See All in Technology
サプライチェーン攻撃への備えについて考えている #湘なんか
stefafafan
3
2.3k
ラズパイ & Picoで入門:Zephyr(RTOS)の環境構築からビルドまでの紹介
iotengineer22
0
200
TSKaigi 2026 - 10秒のビルドを1秒へ:tsdownが切り拓く2026年のTypeScriptライブラリ開発
teamlab
PRO
1
210
Python開発環境にハーネス適用を検討する
yuuka51
1
470
layerx-fde-practices
cipepser
6
2.5k
開発にAIを組織として取り入れる一歩目とその後
yujishibuya
0
200
大規模環境でどのように監視を実現する?
yuobayashi
1
120
ソフトウェアサプライチェーン攻撃対策として今からサクッとできること
flatt_security
2
120
データ分析基盤の信頼を支える視点と設計
yuki_saito
1
600
Slack MCPでインシデント対応とFAQ生成を加速する:社内ワークショップの実践
lycorptech_jp
PRO
0
340
基礎から解説!Icebergで紐解くSnowflake×Databricks連携の現在地
cm_yasuhara
0
220
Claude Code で使える DuckDB Skills を試してみた / DuckDB Skills and Claude Code
masahirokawahara
2
2.2k
Featured
See All Featured
First, design no harm
axbom
PRO
2
1.2k
The browser strikes back
jonoalderson
0
1.1k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
200
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
550
Six Lessons from altMBA
skipperchong
29
4.2k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.6k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9k
Being A Developer After 40
akosma
91
590k
Optimising Largest Contentful Paint
csswizardry
37
3.7k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
370
Raft: Consensus for Rubyists
vanstee
141
7.4k
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!