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
Shintaro Kakutani
December 01, 2012
Technology
4
7.9k
DCI: Let the code do the talking
“DCI and the application builds our mental models” redux
Shintaro Kakutani
December 01, 2012
Tweet
Share
More Decks by Shintaro Kakutani
See All by Shintaro Kakutani
えにしテック、あるいは人間関係のエクササイズ / #enishitech-15th-anniv
kakutani
10
6.1k
(Software) Development with Agility
kakutani
4
840
KeebKaigi Strikes!!!q
kakutani
0
610
Ruby30周年イベント オープニング / Ruby30th Opening
kakutani
3
1.6k
Above All, Make It Fun! #fjordbootcamp / make it fun
kakutani
8
1.2k
Agile Manifesto Decade Resurrections
kakutani
4
3.4k
『達人プログラマー 第2版』/ Pragmatic Programmer 2nd Ed.
kakutani
7
9.2k
『ユニコーン企業のひみつ』とスケーリングの考えかた / #AgileLounge 20220204
kakutani
5
5.5k
(You) Name It!
kakutani
6
2k
Other Decks in Technology
See All in Technology
アカデミーキャンプ 2025 SuuuuuuMMeR「燃えろ!!ロボコン」 / Academy Camp 2025 SuuuuuuMMeR "Burn the Spirit, Robocon!!" DAY 1
ks91
PRO
0
150
開発 × 生成AI × コミュニケーション:GENDAの開発現場で感じたコミュニケーションの変化 / GENDA Tech Talk #1
genda
0
230
JAWS AI/ML #30 AI コーディング IDE "Kiro" を触ってみよう
inariku
3
370
마라톤 끝의 단거리 스퍼트: 2025년의 AI
inureyes
PRO
1
750
リリース2ヶ月で収益化した話
kent_code3
1
290
Amazon S3 Vectorsは大規模ベクトル検索を低コスト化するサーバーレスなベクトルデータベースだ #jawsugsaga / S3 Vectors As A Serverless Vector Database
quiver
1
510
LTに影響を受けてテンプレリポジトリを作った話
hol1kgmg
0
370
生成AIによるデータサイエンスの変革
taka_aki
0
3k
10年以上続くプロダクトで今取り組んでること、取り組もうとしていること
sansantech
PRO
2
110
薬屋のひとりごとにみるトラブルシューティング
tomokusaba
0
330
Backlog AI アシスタントが切り開く未来
vvatanabe
1
140
結局QUICで通信は速くなるの?
kota_yata
6
5.7k
Featured
See All Featured
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.4k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.8k
Optimizing for Happiness
mojombo
379
70k
Agile that works and the tools we love
rasmusluckow
329
21k
Designing for Performance
lara
610
69k
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
The Pragmatic Product Professional
lauravandoore
36
6.8k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
800
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.6k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
139
34k
Building Applications with DynamoDB
mza
96
6.5k
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!