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
メンタルモデルから見るオブジェクト設計
Search
まりも
October 02, 2024
Programming
450
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
メンタルモデルから見るオブジェクト設計
オブジェクト指向はなんかプログラマーが難しいと言っていますが、本来人間の心の中をそのまま書けば一番楽な方法としてつくられました。その観点からオブジェクト指向をまとめてみます。
まりも
October 02, 2024
More Decks by まりも
See All by まりも
AI駆動TDD ― 2026年10月版
hrmstrsmgs
0
62
オブジェクトモデルと関係モデルの設計
hrmstrsmgs
0
68
技術的負債
hrmstrsmgs
1
480
よい設計のプログラムを作るには
hrmstrsmgs
0
140
歴史から理解するJavaScript
hrmstrsmgs
0
120
論理的な考え方
hrmstrsmgs
0
130
論理的な話し合いはなぜ必要か
hrmstrsmgs
0
89
腕のある技術者はなぜ
hrmstrsmgs
0
170
疑似乱数の生成
hrmstrsmgs
0
83
Other Decks in Programming
See All in Programming
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
230
조합이폭발하는디자인시스템이걸눈으로도테스트하라고요
giljongyu
0
740
Goコンパイラを作ってGoをもっと理解する / Build a Go compiler to better understand Go
ikura_hamu
0
130
느린 네트워크와 저사양 디바이스 사용자를 위한 웹뷰 로딩 시간 개선기
kmkim
1
220
Coding with AI: How to trust the storyteller (AWS Community Day Adria, Ljubljana 2026)
slobodan
0
140
Zero-Tap Sign-In対応、結局何をすればいいの?
mitohato14
0
2k
自作Discord音声botをLambda MicroVMsに移行した話 / Migrating My Discord Voice Bot to Lambda MicroVMs
akihisaikeda
1
300
Snowflake Openflow Connector利用の勘所 / 20261024developersio2026tokyo-snowflake-openflow
kasacchiful
PRO
0
320
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Kaigi on Rails 2026, Tokyo, Japan
marcoroth
2
420
Next.js: The final boss of Web Performance
guaca
0
400
Web3Dライブラリを作ってVue Custom Rendererの仕組みを理解しよう / lets learn vue custom renderer by making 3d library
drumath2237
1
130
AI Augmentation Techniques with Liberty
ivargrimstad
1
430
Featured
See All Featured
AI Search: Where Are We & What Can We Do About It?
aleyda
0
8.2k
brightonSEO & MeasureFest 2025 - Winning Strategies for Black Friday CRO & PPC - Christian Goodrich
cargoodrich
3
890
Building Applications with DynamoDB
mza
96
7.3k
ラッコキーワード サービス紹介資料
rakko
5
5.8M
Evolving SEO for Evolving Search Engines
ryanjones
0
360
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
460
Scaling GitHub
holman
464
140k
SEO for Brand Visibility & Recognition
aleyda
0
4.9k
Embracing the Ebb and Flow
colly
88
5.2k
Mind Mapping
helmedeiros
1
440
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.4k
Transcript
メンタルモデルから見るオ ブジェクト指向設計 犬がワンと鳴いて猫がニャーと鳴く話
プログラマーにとってのオブジェクト指向? 昔から難しいと言われていました。 いまだに使う理由がわからんとか、オブジェクト指向の時代はもう終わったとかいう人も。 最近はプログラム覚えたときから当たり前にあるものなので。 標準ライブラリがオブジェクト指向なので、覚えないと何もできないんですよね。 結局理由までは理解していないので使いこなせていない人も多い。
オブジェクト指向 もともとは子供のため のものですよ。 少なくとも文系分野 のもの。 出典 A Personal Computer for
Children of All Ages Alan Kay 1972.
オブジェクト指向設計と オブジェクト指向プログラミング オブジェクト指向 設計 オブジェク ト指向プロ グラミング
メンタルモデルとUI実装 メンタルモデル ユーザー 商品 カート UI実装 ボタン テキスト ドロップダウンリスト
設計 UIを作成する メンタルモデルをオブジェクト指向で実装する メンタルモデルをオブジェクト指向で設計する
オブジェクト指向設計 すべてのものはオブジェクト ユーザー 商品 カート
注意点 アプリケーションに関係ないもの は設計しなくていいですからね? •設計しなくていいものは、当然オブジェク ト指向設計の範囲外ですよ。
オブジェクト指向設計 •クラスやインスタンス にする。 アプリケーションの説 明に出てくるすべて の名詞を全部集める •名詞を主語にとるメ ソッドにする アプリケーションの説 明に出てくるすべtネ
オ動詞を全部集める
継承を使って整理
継承による構造化 生物 動物 脊椎動物 魚類 両生類 爬虫類 鳥類 哺乳類 節足動物
植物 被子植物 裸子植物 菌類 キノコ
多重継承 分類すると複数のツリーに出てくる プログラムにしにくいので設計でもあまり使わないほうが良い アプリケーション開発ではそんなには出てこない 必要なら方法はあるので使うが多用はしない
まとめ UIではなくメンタルモデルを意識する 日本語で説明する。 出てくるすべての動詞と名詞に着目する 継承を使って、名詞と動詞をツリー上に整理する こうやって設計するとすんなりプログラムにできる