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
310
0
Share
メンタルモデルから見るオブジェクト設計
オブジェクト指向はなんかプログラマーが難しいと言っていますが、本来人間の心の中をそのまま書けば一番楽な方法としてつくられました。その観点からオブジェクト指向をまとめてみます。
まりも
October 02, 2024
More Decks by まりも
See All by まりも
技術的負債
hrmstrsmgs
1
330
よい設計のプログラムを作るには
hrmstrsmgs
0
100
歴史から理解するJavaScript
hrmstrsmgs
0
86
論理的な考え方
hrmstrsmgs
0
94
論理的な話し合いはなぜ必要か
hrmstrsmgs
0
60
腕のある技術者はなぜ
hrmstrsmgs
0
120
疑似乱数の生成
hrmstrsmgs
0
62
構造化プログラミング
hrmstrsmgs
0
200
社内勉強会の戦略
hrmstrsmgs
0
77
Other Decks in Programming
See All in Programming
柔軟なPDFレイアウトエディタを支える型システム設計 — Discriminated UnionとConditional Typeの実践
minako__ph
4
1.2k
OCRを使ってゲームのアイテムをデータ化する
kishikawakatsumi
0
120
LLM Plugin for Node-REDの利用方法と開発について
404background
0
140
Agentic UI beyond Chats Architecture Patterns & Open Standards @ngMunich 05/2026
manfredsteyer
PRO
0
180
AIエージェントと協働するCLI開発 — BunとOpenClawで学んだこと
yoshikouki
1
230
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
400
PHPで使える日時の表現と、その知り方 #frontend_phpcon_do
o0h
PRO
0
120
関係性から理解する"同一性"の型用語たち
pvcresin
2
620
Inspired By RubyKaigi (EN)
atzzcokek
0
460
3Dシーンの圧縮
fadis
1
540
TypeSpec で繋ぐ複数プロダクトの型安全
maroon8021
1
270
The Arts and Crafts of Work in the AI Era — Toward Mastery in Software Development
kuranuki
1
680
Featured
See All Featured
Building Applications with DynamoDB
mza
96
7.1k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
150
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
570
Claude Code のすすめ
schroneko
67
220k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
520
Building Adaptive Systems
keathley
44
3k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
540
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.7k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
150
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
180
The Curse of the Amulet
leimatthew05
1
13k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
580
Transcript
メンタルモデルから見るオ ブジェクト指向設計 犬がワンと鳴いて猫がニャーと鳴く話
プログラマーにとってのオブジェクト指向? 昔から難しいと言われていました。 いまだに使う理由がわからんとか、オブジェクト指向の時代はもう終わったとかいう人も。 最近はプログラム覚えたときから当たり前にあるものなので。 標準ライブラリがオブジェクト指向なので、覚えないと何もできないんですよね。 結局理由までは理解していないので使いこなせていない人も多い。
オブジェクト指向 もともとは子供のため のものですよ。 少なくとも文系分野 のもの。 出典 A Personal Computer for
Children of All Ages Alan Kay 1972.
オブジェクト指向設計と オブジェクト指向プログラミング オブジェクト指向 設計 オブジェク ト指向プロ グラミング
メンタルモデルとUI実装 メンタルモデル ユーザー 商品 カート UI実装 ボタン テキスト ドロップダウンリスト
設計 UIを作成する メンタルモデルをオブジェクト指向で実装する メンタルモデルをオブジェクト指向で設計する
オブジェクト指向設計 すべてのものはオブジェクト ユーザー 商品 カート
注意点 アプリケーションに関係ないもの は設計しなくていいですからね? •設計しなくていいものは、当然オブジェク ト指向設計の範囲外ですよ。
オブジェクト指向設計 •クラスやインスタンス にする。 アプリケーションの説 明に出てくるすべて の名詞を全部集める •名詞を主語にとるメ ソッドにする アプリケーションの説 明に出てくるすべtネ
オ動詞を全部集める
継承を使って整理
継承による構造化 生物 動物 脊椎動物 魚類 両生類 爬虫類 鳥類 哺乳類 節足動物
植物 被子植物 裸子植物 菌類 キノコ
多重継承 分類すると複数のツリーに出てくる プログラムにしにくいので設計でもあまり使わないほうが良い アプリケーション開発ではそんなには出てこない 必要なら方法はあるので使うが多用はしない
まとめ UIではなくメンタルモデルを意識する 日本語で説明する。 出てくるすべての動詞と名詞に着目する 継承を使って、名詞と動詞をツリー上に整理する こうやって設計するとすんなりプログラムにできる