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
メンタルモデルから見るオブジェクト設計
Search
まりも
October 02, 2024
Programming
0
14
メンタルモデルから見るオブジェクト設計
オブジェクト指向はなんかプログラマーが難しいと言っていますが、本来人間の心の中をそのまま書けば一番楽な方法としてつくられました。その観点からオブジェクト指向をまとめてみます。
まりも
October 02, 2024
Tweet
Share
More Decks by まりも
See All by まりも
技術的負債
hrmstrsmgs
0
15
よい設計のプログラムを作るには
hrmstrsmgs
0
28
歴史から理解するJavaScript
hrmstrsmgs
0
14
論理的な考え方
hrmstrsmgs
0
15
論理的な話し合いはなぜ必要か
hrmstrsmgs
0
5
腕のある技術者はなぜ
hrmstrsmgs
0
13
疑似乱数の生成
hrmstrsmgs
0
7
構造化プログラミング
hrmstrsmgs
0
13
社内勉強会の戦略
hrmstrsmgs
0
11
Other Decks in Programming
See All in Programming
A Journey of Contribution and Collaboration in Open Source
ivargrimstad
0
220
Remix × Cloudflare Pages × Sentry 奮闘記 / remix-pages-sentry
nkzn
1
380
Applied NLP in the Age of Generative AI
inesmontani
PRO
3
1.1k
"noncopyable types" の使いどころについて考えてみた
andpad
0
130
선언형 UI를 학습할 때 알아둬야하는 키워드들
l2hyunwoo
0
110
クラウドサービスの 利用コストを削減する技術 - 円安の真南風を感じて -
pyama86
3
240
フロントエンドの現在地とこれから
koba04
10
4.3k
XP2024 っていう国際会議に行ってきたよの記 / XP2024 Conference Report
bonotake
4
180
ECS向けのドリフト検知機構を実装してみた
tkikuc
0
270
AWS認定資格を受験するにあたり、気づいたこと・実践していたことのまとめ
satoshi256kbyte
1
120
C#および.NETに対する誤解をひも解く
ymd65536
0
230
Делим тесты между QA и разработчиком
mariyasaygina
0
500
Featured
See All Featured
VelocityConf: Rendering Performance Case Studies
addyosmani
324
23k
Scaling GitHub
holman
458
140k
Happy Clients
brianwarren
97
6.7k
Keith and Marios Guide to Fast Websites
keithpitt
408
22k
A Tale of Four Properties
chriscoyier
155
22k
Unsuck your backbone
ammeep
667
57k
The Straight Up "How To Draw Better" Workshop
denniskardys
231
130k
Building Adaptive Systems
keathley
37
2.1k
Robots, Beer and Maslow
schacon
PRO
157
8.2k
Become a Pro
speakerdeck
PRO
24
4.9k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
355
29k
Making the Leap to Tech Lead
cromwellryan
130
8.8k
Transcript
メンタルモデルから見るオ ブジェクト指向設計 犬がワンと鳴いて猫がニャーと鳴く話
プログラマーにとってのオブジェクト指向? 昔から難しいと言われていました。 いまだに使う理由がわからんとか、オブジェクト指向の時代はもう終わったとかいう人も。 最近はプログラム覚えたときから当たり前にあるものなので。 標準ライブラリがオブジェクト指向なので、覚えないと何もできないんですよね。 結局理由までは理解していないので使いこなせていない人も多い。
オブジェクト指向 もともとは子供のため のものですよ。 少なくとも文系分野 のもの。 出典 A Personal Computer for
Children of All Ages Alan Kay 1972.
オブジェクト指向設計と オブジェクト指向プログラミング オブジェクト指向 設計 オブジェク ト指向プロ グラミング
メンタルモデルとUI実装 メンタルモデル ユーザー 商品 カート UI実装 ボタン テキスト ドロップダウンリスト
設計 UIを作成する メンタルモデルをオブジェクト指向で実装する メンタルモデルをオブジェクト指向で設計する
オブジェクト指向設計 すべてのものはオブジェクト ユーザー 商品 カート
注意点 アプリケーションに関係ないもの は設計しなくていいですからね? •設計しなくていいものは、当然オブジェク ト指向設計の範囲外ですよ。
オブジェクト指向設計 •クラスやインスタンス にする。 アプリケーションの説 明に出てくるすべて の名詞を全部集める •名詞を主語にとるメ ソッドにする アプリケーションの説 明に出てくるすべtネ
オ動詞を全部集める
継承を使って整理
継承による構造化 生物 動物 脊椎動物 魚類 両生類 爬虫類 鳥類 哺乳類 節足動物
植物 被子植物 裸子植物 菌類 キノコ
多重継承 分類すると複数のツリーに出てくる プログラムにしにくいので設計でもあまり使わないほうが良い アプリケーション開発ではそんなには出てこない 必要なら方法はあるので使うが多用はしない
まとめ UIではなくメンタルモデルを意識する 日本語で説明する。 出てくるすべての動詞と名詞に着目する 継承を使って、名詞と動詞をツリー上に整理する こうやって設計するとすんなりプログラムにできる