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
オブジェクト指向のこころ: イントロ / DESIGN PATTERNS EXPLAINED:...
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
hideki kinjyo
PRO
August 24, 2021
Programming
0
81
オブジェクト指向のこころ: イントロ / DESIGN PATTERNS EXPLAINED: introduction
会社で「オブジェクト指向のこころ」の読書会をやっています
hideki kinjyo
PRO
August 24, 2021
Tweet
Share
More Decks by hideki kinjyo
See All by hideki kinjyo
#phperbiglt のLT
o0h
PRO
0
58
手軽に積ん読を増やすには?/読みたい本と付き合うには?
o0h
PRO
1
210
symfony/mcp-bundleで、既存アプリケーションもお手軽にMCPサーバー化
o0h
PRO
1
90
組織もソフトウェアも難しく考えない、もっとシンプルな考え方で設計する #phpconfuk
o0h
PRO
10
5.4k
Composerが「依存解決」のためにどんな工夫をしているか #phpcon
o0h
PRO
1
650
Composerの依存解決 #phpstudy
o0h
PRO
0
160
「影響が少ない」を自分の目でみてみる
o0h
PRO
4
2.3k
PHPによる"非"構造化プログラミング入門 -本当に熱いスパゲティコードを求めて- #phperkaigi
o0h
PRO
0
1.8k
もう少しテストを書きたいんじゃ〜 #phpstudy
o0h
PRO
23
5.4k
Other Decks in Programming
See All in Programming
【卒業研究】会話ログ分析によるユーザーごとの関心に応じた話題提案手法
momok47
0
190
余白を設計しフロントエンド開発を 加速させる
tsukuha
7
2.1k
そのAIレビュー、レビューしてますか? / Are you reviewing those AI reviews?
rkaga
6
4.5k
AI巻き込み型コードレビューのススメ
nealle
1
150
AIフル活用時代だからこそ学んでおきたい働き方の心得
shinoyu
0
130
CSC307 Lecture 09
javiergs
PRO
1
830
フルサイクルエンジニアリングをAI Agentで全自動化したい 〜構想と現在地〜
kamina_zzz
0
400
2026年 エンジニアリング自己学習法
yumechi
0
130
責任感のあるCloudWatchアラームを設計しよう
akihisaikeda
3
170
OCaml 5でモダンな並列プログラミングを Enjoyしよう!
haochenx
0
140
AI前提で考えるiOSアプリのモダナイズ設計
yuukiw00w
0
220
副作用をどこに置くか問題:オブジェクト指向で整理する設計判断ツリー
koxya
1
600
Featured
See All Featured
Agile that works and the tools we love
rasmusluckow
331
21k
RailsConf 2023
tenderlove
30
1.3k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
0
3.4k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
280
Testing 201, or: Great Expectations
jmmastey
46
8k
Facilitating Awesome Meetings
lara
57
6.7k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
130
Tell your own story through comics
letsgokoyo
1
810
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
160
Heart Work Chapter 1 - Part 1
lfama
PRO
5
35k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
930
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.1k
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は、設計者や開発者の⽣活を楽にする重要な鍵 • “オブジェクトの持つ本当の⼒は、継承ではなく「カプセル化された振 る舞い」にあると感じ取っているかも知れません” • 「概念の根底にある『やること』と『その理由』によって、⼀気に理解 が進む」という信念に基づいて本書はつくられている •
デザインパターンの考察を通じて「オブジェクト指向の本当の姿」を 理解できるようになる
σβΠϯύλʔϯ͔ΒಘΒΕΔͷ • パターンと向き合うことでオブジェクト指向の理解が深まる • オブジェクト指向設計の優れた実例が⽰される • 基本的なオブジェクト指向原則が浮き彫りにされる • 著者⾃⾝が「デザインパターンを学習することによって、 オブジェクト指向設計能⼒が広く・深くなった」のを経験している
• オブジェクト指向設計初⼼者にとっても悪くない事
ύλʔϯͱͷ͖߹͍ํ • 頻出する「問題」と「原則」「戦略」を知ることが重要 • 決して「型」を丸暗記したり、乱⽤するものではない • ⾊々な場⾯で様々なデザインパターンが「⾒えてくる」ようになる • ⽬の前の状況に対して、パターンの原則や戦略を⽤いた解決策が 浮かんでくるようになること
• 「知っている」と「理解した」の違い
ຊॻͰಘΒΕΔͷ • パターンを学ぶことができる • なぜうまく機能するのか?を理解できる • パターン同⼠を協調させる⽅法が分かる • 原則と戦略が分かる
ຊॻͷҐஔ͚ͮͱඪ • 位置づけ: 導⼊書 • デザインパターンを正しく、迅速に理解できるようになる • デザインパターンの根拠にある原則や戦略を理解できるようになる • ⽬標:
デザインパターンを経験してもらう • その世界の広さを知ってもらう • 読者の将来にあろう「パターンの旅」を計画できるようにする