Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
メンタルモデルから見るオブジェクト設計
Search
まりも
October 02, 2024
Programming
0
210
メンタルモデルから見るオブジェクト設計
オブジェクト指向はなんかプログラマーが難しいと言っていますが、本来人間の心の中をそのまま書けば一番楽な方法としてつくられました。その観点からオブジェクト指向をまとめてみます。
まりも
October 02, 2024
Tweet
Share
More Decks by まりも
See All by まりも
技術的負債
hrmstrsmgs
0
230
よい設計のプログラムを作るには
hrmstrsmgs
0
77
歴史から理解するJavaScript
hrmstrsmgs
0
58
論理的な考え方
hrmstrsmgs
0
58
論理的な話し合いはなぜ必要か
hrmstrsmgs
0
31
腕のある技術者はなぜ
hrmstrsmgs
0
75
疑似乱数の生成
hrmstrsmgs
0
40
構造化プログラミング
hrmstrsmgs
0
150
社内勉強会の戦略
hrmstrsmgs
0
52
Other Decks in Programming
See All in Programming
Rubyで鍛える仕組み化プロヂュース力
muryoimpl
0
130
안드로이드 9년차 개발자, 프론트엔드 주니어로 커리어 리셋하기
maryang
1
110
dotfiles 式年遷宮 令和最新版
masawada
1
770
SwiftUIで本格音ゲー実装してみた
hypebeans
0
380
Github Copilotのチャット履歴ビューワーを作りました~WPF、dotnet10もあるよ~ #clrh111
katsuyuzu
0
110
Why Kotlin? 電子カルテを Kotlin で開発する理由 / Why Kotlin? at Henry
agatan
2
7.2k
ZOZOにおけるAI活用の現在 ~モバイルアプリ開発でのAI活用状況と事例~
zozotech
PRO
8
5.7k
バックエンドエンジニアによる Amebaブログ K8s 基盤への CronJobの導入・運用経験
sunabig
0
160
UIデザインに役立つ 2025年の最新CSS / The Latest CSS for UI Design 2025
clockmaker
18
7.5k
LLMで複雑な検索条件アセットから脱却する!! 生成的検索インタフェースの設計論
po3rin
3
740
Rediscover the Console - SymfonyCon Amsterdam 2025
chalasr
2
160
チームをチームにするEM
hitode909
0
330
Featured
See All Featured
Building Applications with DynamoDB
mza
96
6.8k
Typedesign – Prime Four
hannesfritz
42
2.9k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Docker and Python
trallard
47
3.7k
Context Engineering - Making Every Token Count
addyosmani
9
510
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.8k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
36
6.2k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
34k
How STYLIGHT went responsive
nonsquared
100
6k
Transcript
メンタルモデルから見るオ ブジェクト指向設計 犬がワンと鳴いて猫がニャーと鳴く話
プログラマーにとってのオブジェクト指向? 昔から難しいと言われていました。 いまだに使う理由がわからんとか、オブジェクト指向の時代はもう終わったとかいう人も。 最近はプログラム覚えたときから当たり前にあるものなので。 標準ライブラリがオブジェクト指向なので、覚えないと何もできないんですよね。 結局理由までは理解していないので使いこなせていない人も多い。
オブジェクト指向 もともとは子供のため のものですよ。 少なくとも文系分野 のもの。 出典 A Personal Computer for
Children of All Ages Alan Kay 1972.
オブジェクト指向設計と オブジェクト指向プログラミング オブジェクト指向 設計 オブジェク ト指向プロ グラミング
メンタルモデルとUI実装 メンタルモデル ユーザー 商品 カート UI実装 ボタン テキスト ドロップダウンリスト
設計 UIを作成する メンタルモデルをオブジェクト指向で実装する メンタルモデルをオブジェクト指向で設計する
オブジェクト指向設計 すべてのものはオブジェクト ユーザー 商品 カート
注意点 アプリケーションに関係ないもの は設計しなくていいですからね? •設計しなくていいものは、当然オブジェク ト指向設計の範囲外ですよ。
オブジェクト指向設計 •クラスやインスタンス にする。 アプリケーションの説 明に出てくるすべて の名詞を全部集める •名詞を主語にとるメ ソッドにする アプリケーションの説 明に出てくるすべtネ
オ動詞を全部集める
継承を使って整理
継承による構造化 生物 動物 脊椎動物 魚類 両生類 爬虫類 鳥類 哺乳類 節足動物
植物 被子植物 裸子植物 菌類 キノコ
多重継承 分類すると複数のツリーに出てくる プログラムにしにくいので設計でもあまり使わないほうが良い アプリケーション開発ではそんなには出てこない 必要なら方法はあるので使うが多用はしない
まとめ UIではなくメンタルモデルを意識する 日本語で説明する。 出てくるすべての動詞と名詞に着目する 継承を使って、名詞と動詞をツリー上に整理する こうやって設計するとすんなりプログラムにできる