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
250
0
Share
メンタルモデルから見るオブジェクト設計
オブジェクト指向はなんかプログラマーが難しいと言っていますが、本来人間の心の中をそのまま書けば一番楽な方法としてつくられました。その観点からオブジェクト指向をまとめてみます。
まりも
October 02, 2024
More Decks by まりも
See All by まりも
技術的負債
hrmstrsmgs
0
280
よい設計のプログラムを作るには
hrmstrsmgs
0
91
歴史から理解するJavaScript
hrmstrsmgs
0
76
論理的な考え方
hrmstrsmgs
0
77
論理的な話し合いはなぜ必要か
hrmstrsmgs
0
50
腕のある技術者はなぜ
hrmstrsmgs
0
100
疑似乱数の生成
hrmstrsmgs
0
54
構造化プログラミング
hrmstrsmgs
0
170
社内勉強会の戦略
hrmstrsmgs
0
68
Other Decks in Programming
See All in Programming
Laravel Nightwatchの裏側 - Laravel公式Observabilityツールを支える設計と実装
avosalmon
1
290
Migration to Signals, Signal Forms, Resource API, and NgRx Signal Store @Angular Days 03/2026 Munich
manfredsteyer
PRO
0
210
我々はなぜ「層」を分けるのか〜「関心の分離」と「抽象化」で手に入れる変更に強いシンプルな設計〜 #phperkaigi / PHPerKaigi 2026
shogogg
2
740
Claude Code Skill入門
mayahoney
0
460
Geminiをパートナーに神社DXシステムを個人開発した話(いなめぐDX 開発振り返り)
fujiba
0
130
ポーリング処理廃止によるイベント駆動アーキテクチャへの移行
seitarof
3
1.3k
存在論的プログラミング: 時間と存在を記述する
koriym
5
740
へんな働き方
yusukebe
6
2.9k
モックわからないマン卒業記 ~振る舞いを起点に見直した、フロントエンドテストにおけるモックの使いどころ~
tasukuwatanabe
3
440
Smarter Angular mit Transformers.js & Prompt API
christianliebel
PRO
1
110
PHP 7.4でもOpenTelemetryゼロコード計装がしたい! / PHPerKaigi 2026
arthur1
1
460
AI活用のコスパを最大化する方法
ochtum
0
360
Featured
See All Featured
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.5k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
The Spectacular Lies of Maps
axbom
PRO
1
670
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
290
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.2k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
300
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
400
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.3k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
390
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
230
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Transcript
メンタルモデルから見るオ ブジェクト指向設計 犬がワンと鳴いて猫がニャーと鳴く話
プログラマーにとってのオブジェクト指向? 昔から難しいと言われていました。 いまだに使う理由がわからんとか、オブジェクト指向の時代はもう終わったとかいう人も。 最近はプログラム覚えたときから当たり前にあるものなので。 標準ライブラリがオブジェクト指向なので、覚えないと何もできないんですよね。 結局理由までは理解していないので使いこなせていない人も多い。
オブジェクト指向 もともとは子供のため のものですよ。 少なくとも文系分野 のもの。 出典 A Personal Computer for
Children of All Ages Alan Kay 1972.
オブジェクト指向設計と オブジェクト指向プログラミング オブジェクト指向 設計 オブジェク ト指向プロ グラミング
メンタルモデルとUI実装 メンタルモデル ユーザー 商品 カート UI実装 ボタン テキスト ドロップダウンリスト
設計 UIを作成する メンタルモデルをオブジェクト指向で実装する メンタルモデルをオブジェクト指向で設計する
オブジェクト指向設計 すべてのものはオブジェクト ユーザー 商品 カート
注意点 アプリケーションに関係ないもの は設計しなくていいですからね? •設計しなくていいものは、当然オブジェク ト指向設計の範囲外ですよ。
オブジェクト指向設計 •クラスやインスタンス にする。 アプリケーションの説 明に出てくるすべて の名詞を全部集める •名詞を主語にとるメ ソッドにする アプリケーションの説 明に出てくるすべtネ
オ動詞を全部集める
継承を使って整理
継承による構造化 生物 動物 脊椎動物 魚類 両生類 爬虫類 鳥類 哺乳類 節足動物
植物 被子植物 裸子植物 菌類 キノコ
多重継承 分類すると複数のツリーに出てくる プログラムにしにくいので設計でもあまり使わないほうが良い アプリケーション開発ではそんなには出てこない 必要なら方法はあるので使うが多用はしない
まとめ UIではなくメンタルモデルを意識する 日本語で説明する。 出てくるすべての動詞と名詞に着目する 継承を使って、名詞と動詞をツリー上に整理する こうやって設計するとすんなりプログラムにできる