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
オブジェクト指向のこころ: イントロ / DESIGN PATTERNS EXPLAINED:...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
hideki kinjyo
PRO
August 24, 2021
Programming
95
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
オブジェクト指向のこころ: イントロ / DESIGN PATTERNS EXPLAINED: introduction
会社で「オブジェクト指向のこころ」の読書会をやっています
hideki kinjyo
PRO
August 24, 2021
More Decks by hideki kinjyo
See All by hideki kinjyo
phperだってパンチカードでコーディングしたい
o0h
PRO
0
310
Symfonyが 簡単にAI agentになる
o0h
PRO
1
150
yield再入門 #phpcon
o0h
PRO
0
1.8k
PHPで使える日時の表現と、その知り方 #frontend_phpcon_do
o0h
PRO
0
460
Composerを使ったサプライチェーン攻撃の様子を眺めてみる #phpstudy
o0h
PRO
3
410
ソースコード→AST→オペコード、の旅を覗いてみる
o0h
PRO
1
380
PCOVから学ぶコードカバレッジ #phpcon_odawara
o0h
PRO
0
640
夢の無限スパゲッティ製造機 -実装篇- #phpstudy
o0h
PRO
0
300
夢の無限スパゲッティ製造機 #phperkaigi
o0h
PRO
0
1.1k
Other Decks in Programming
See All in Programming
UnityでSystem.Net.WebSocketsなWebSocketサーバが動かないのでUnity Monoのコードを覗いてみた / about implementing websocket server with unity mono
drumath2237
1
590
コーディング自動化の次へ。人の介入をゼロにするファクトリーとサポートAIによる実践
timakin
2
1.8k
複雑なUIコンポーネントとの ⻑い付き合い⽅:波及するバグからテスト戦略を経て、安全な再設計へ
mixplace
0
390
re:Inventに行く前に知っておきたい現地参加のノウハウ
nokomoro3
0
410
CodeRabbitの効果検証と過ごしてみた3ヶ月
armondando
0
230
golang-bob.pdf
iwatsukayura
0
130
カツオ、ご期待ください
suneo3476
0
180
Workers Cache を知る
syumai
0
360
Jetpack Compose Mechanisms
skydoves
2
740
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
660
C#の現在地 進化の歴史と、AI時代の.NET Everywhere
neuecc
5
5.1k
Optunaを作ったときにやりたかったこと、その後 (2026/10/16, Optuna Meetup #3)
iwiwi
1
300
Featured
See All Featured
KATA
mclloyd
PRO
35
16k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.9k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
20k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
Utilizing Notion as your number one productivity tool
mfonobong
4
620
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
2
360
Testing 201, or: Great Expectations
jmmastey
46
8.3k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
980
エンジニアに許された特別な時間の終わり
watany
109
250k
The agentic SEO stack - context over prompts
schlessera
0
970
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
430
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
2
940
Transcript
Introduction 課題図書: オブジェクト指向のこころ: デザインパターンとともに学ぶ
訳者まえがき
ΦϒδΣΫτࢦͱ͍͏ύϥμΠϜ • ݱࡏͰ͔ܽͤͳ͍ͷʹͳͬͨ • ͦͷఆٛϝϦοτͷઆ໌ɺ࣌ʹΑͬͯมભ͍ͯ͠Δ • ॳʮݱ࣮ੈքΛͦͷ··ΦϒδΣΫτͰදݱͰ͖ Δʯͱ͔͞ΜʹᨳΘΕ͍ͯͨ • ্ྲྀఔͱԼྲྀఔΛγʔϜϨεʹܨ͛Δ(ئ)
関連・参考 • オブジェクト指向の概念の発明者は誰ですか?(改訂版) - Smalltalkのtは⼩⽂字です https://sumim.hatenablog.com/entry/20040525/p1
ʮݱ࣮ʯͱΦϒδΣΫτͷؔ • ࣮ࡍͷγεςϜ։ൃʹʮநԽʯ͕͏ • 10͋Δଆ໘͔Β1Λબ͢Δ͜ͱ(ࣺ) • ཁٻมԽ͠ଓ͚Δͷɺͱ͍͏ݱ࣮ • ʮγεςϜ͠ͳ͍ʯ 関連・参考
• ソフトウェア保守の法則(リーマンの法則)、ご存知ですか?:森崎修司の「どうやってはかるの?」 https://blogs.itmedia.co.jp/morisaki/2012/04/post-7e5d.html
มߋͱΦϒδΣΫτࢦ • ͠ʮݱ࣮ͦͷͷʯͩͱͨ͠Βมߋʹऑ͘ͳΔ • ࢲʮͦΜͳ͜ͱͨ͠ΒɺόλϑϥΠΤϑΣΫτى͖ͪΌ ͏Αʙʯ • ೡΖʮநԽʯʹ͓͍ͯՁ͕ൃݟ͞Ε͍ͯͬͨ • ΦϒδΣΫτࢦʮӨڹΛด͡ࠐΊΔʯ
• ίʔυͷʮ࠶ར༻ʯΛଅਐͤ͞Δ
ΦϒδΣΫτࢦͱGoFͷσβΠϯύλʔϯ • ࠶ར༻ੑΛڧௐͨ͠ͷ͕ʮGoFͷσβΠϯύλʔϯʯ • ύλʔϯϥϯήʔδͷΦϒδΣΫτࢦϓϩάϥϛϯάͷద༻ • ॻ੶໊ʹʮΦϒδΣΫτࢦʹ͓͚Δ࠶ར༻ͷͨΊͷʯͬͯೖͬͯΔͷʹண • ͢ͳΘͪɺʮͦͦσβύλ͕࠶ར༻ͷͨΊͷͷʯͰ͋Δ •
ͬͱ͍͑ʮύλʔϯϥϯήʔδ͕(ryʯ • σβύλ͕ʮΦϒδΣΫτࢦͷϕλʔϓϥΫςΟεʯͳΒɺ ʮ࠶ར༻ɺ͍͜͞ʙʂਅͬͯײ͡Ͱ͢ʂʯͬͯͳΔಓཧΛײͯ͜͡ὑ
ຊॻͰղઆ͞Ε͍ͯΔ؍ʹཱͭ͜ͱͰɺʮ࣌ؒ࣠Λݟͨ͠ઃ ܭʯͱݴ͑Δߟ͑ํΛʹ͚ͭΔ͜ͱ͕Ͱ͖ɺ͋ͳͨͷ࡞͢ ΔγεςϜͻͱຯ;ͨຯҧͬͨͷͱͳΔͣͰ͢ɻ l
࣌ؒ࣠Λݟͨ͠ઃܭ • アレグザンダーが意識の根底にありそうな表現😏 • 我々にも「全体性」「いきいきとした建築」が必要 • 「時を超える」=> 「変動に強い」 ʮมಈΛΧϓηϧԽͤΑʯ ʮιϑτΣΞͬͱม͍͍͑ͯͣͩ͘͢ʯ
ʮϓϩδΣΫτ͕ഊ͠ͳ͍Α͏ͳ ϓϥΫςΟεΛಋೖ͠ͳ͚ΕͳΒͳ͍ʯ
まえがき
σβΠϯύλʔϯɺΦϒδΣΫτࢦ • デザインパターンとOOPは、設計者や開発者の⽣活を楽にする重要な鍵 • “オブジェクトの持つ本当の⼒は、継承ではなく「カプセル化された振 る舞い」にあると感じ取っているかも知れません” • 「概念の根底にある『やること』と『その理由』によって、⼀気に理解 が進む」という信念に基づいて本書はつくられている •
デザインパターンの考察を通じて「オブジェクト指向の本当の姿」を 理解できるようになる
σβΠϯύλʔϯ͔ΒಘΒΕΔͷ • パターンと向き合うことでオブジェクト指向の理解が深まる • オブジェクト指向設計の優れた実例が⽰される • 基本的なオブジェクト指向原則が浮き彫りにされる • 著者⾃⾝が「デザインパターンを学習することによって、 オブジェクト指向設計能⼒が広く・深くなった」のを経験している
• オブジェクト指向設計初⼼者にとっても悪くない事
ύλʔϯͱͷ͖߹͍ํ • 頻出する「問題」と「原則」「戦略」を知ることが重要 • 決して「型」を丸暗記したり、乱⽤するものではない • ⾊々な場⾯で様々なデザインパターンが「⾒えてくる」ようになる • ⽬の前の状況に対して、パターンの原則や戦略を⽤いた解決策が 浮かんでくるようになること
• 「知っている」と「理解した」の違い
ຊॻͰಘΒΕΔͷ • パターンを学ぶことができる • なぜうまく機能するのか?を理解できる • パターン同⼠を協調させる⽅法が分かる • 原則と戦略が分かる
ຊॻͷҐஔ͚ͮͱඪ • 位置づけ: 導⼊書 • デザインパターンを正しく、迅速に理解できるようになる • デザインパターンの根拠にある原則や戦略を理解できるようになる • ⽬標:
デザインパターンを経験してもらう • その世界の広さを知ってもらう • 読者の将来にあろう「パターンの旅」を計画できるようにする