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
オブジェクト指向のこころ: 第2章 / 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
58
オブジェクト指向のこころ: 第2章 / DESIGN PATTERNS EXPLAINED: chapter-2
会社で「オブジェクト指向のこころ」の読書会をやっています
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
89
組織もソフトウェアも難しく考えない、もっとシンプルな考え方で設計する #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
AI巻き込み型コードレビューのススメ
nealle
0
120
それ、本当に安全? ファイルアップロードで見落としがちなセキュリティリスクと対策
penpeen
7
2.4k
そのAIレビュー、レビューしてますか? / Are you reviewing those AI reviews?
rkaga
6
4.5k
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
500
登壇資料を作る時に意識していること #登壇資料_findy
konifar
4
970
Kotlin Multiplatform Meetup - Compose Multiplatform 외부 의존성 아키텍처 설계부터 운영까지
wisemuji
0
190
OSSとなったswift-buildで Xcodeのビルドを差し替えられるため 自分でXcodeを直せる時代になっている ダイアモンド問題編
yimajo
3
610
Amazon Bedrockを活用したRAGの品質管理パイプライン構築
tosuri13
4
250
AI Agent の開発と運用を支える Durable Execution #AgentsInProd
izumin5210
7
2.3k
CSC307 Lecture 07
javiergs
PRO
0
550
AIフル活用時代だからこそ学んでおきたい働き方の心得
shinoyu
0
130
今こそ知るべき耐量子計算機暗号(PQC)入門 / PQC: What You Need to Know Now
mackey0225
3
370
Featured
See All Featured
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.6k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.7k
Un-Boring Meetings
codingconduct
0
200
A Modern Web Designer's Workflow
chriscoyier
698
190k
The Invisible Side of Design
smashingmag
302
51k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.3k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
0
140
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
196
71k
Typedesign – Prime Four
hannesfritz
42
2.9k
Ethics towards AI in product and experience design
skipperchong
2
190
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
Transcript
第2章 UML統⼀モデリング⾔語 課題図書: オブジェクト指向のこころ: デザインパターンとともに学ぶ
͜ͷষͷॏཁͳΩʔϫʔυ • UML • モデリング • クラス図 • 関連 •
依存 • 集約 • コンポジション • 相互作⽤図(シーケンス図)
【突然のネタバレ】 この章ではUMLを扱いますが UML⾃体を学習することは 本書を読む上で些細なことだと思います
では、なぜ(1章を割くほど) UMLが「重要」なのか・・・?
UMLとは何か 2.2 UMLとは何か? 2.3 UMLを使う理由
UMLͬͯԿ͢Δͷͳͷ • 開発って「⼯程」があるでしょ • 分析、設計、実装・・・ • イメージを擦り合わせながら進めたいですよね? • って事はコミュニケーションが⼤事ですよね •
”UMLは主に、⾃分⾃⾝、チームメンバ、顧客とのコミュ ニケーションを図るために使⽤されます”
ίϛϡχέʔγϣϯͷͨΊͷUML • 「モデル」を使って話そーぜ、を出来るようにする • それによって、「実際にコード書いて動かす」の⼿前の段 階で「どういう感じになるかな?」の認識を揃える • 認識を揃えた上で、「ここはこうしたくない?」とか「ア レが⾜りなくない?」とかの議論も出来るようになる
UMLͳΜͯ”ΘΓΌ͍͍ͷΑ” ͬͯେޚॴ͕ݴͬͯ·ͨ͠ • 「実際にコード書かなくても認識揃えてコミュニケー ションとれるようにする」というのが重要で • そのための「気軽さ」をUMLは兼ね備えている • UMLは「何となく図形で分かる」ようなダイアグラムと なっている
• 未学習者でも説明しながら使えば伝わりそうなレベル • 「⽂法(記法)の正しさ」「情報の正確性(⾼解像)」より も「最低限の認識が揃う」のが⼤事だよ〜
ࢀߟ • スケッチとしてのUML https://bliki-ja.github.io/UmlAsSketch/ • Fowlerと軽量UML|オブジェクトの広場 https://www.ogis-ri.co.jp/otc/hiroba/specials/ MartinFowler/FowlersUML.html • 書籍「UMLモデリングのエッセンス」
ܹΦεεϝ
ຊॻʹͱͬͯͷUML • 全体を通じて、クラス図・シーケンス図が出てきます • クラス(オブジェクト)間の関係やどう作⽤し合うか?を 視覚的に表現するための⼿段として、くらいの位置づけ • なので「めっちゃ正確にUMLを覚えるぞ・・!」や 「⾼度な記法を覚えるぞ・・!」はいらないです •
ざっくり「あーはいはい、完全に理解した」でOK • ⾒慣れない記法が出てきたらその都度で調べましょ
(本書を読む上で)主要なダイアグラム 2.4 クラス図 2.5 相互作⽤図
Ϋϥεਤ クラスやクラス同⼠の関連性を⽰す(静的なモデリング)
ूͱίϯϙδγϣϯ • ある要素が他の要素を所有する(has)ことを「集約」 • サイクリスト has a⾃転⾞ • 集約の⼀形態に「コンポジション」がある •
⾃転⾞ is composed of gears • 違いは「集約は弱く、コンポジションは強く依存する」 • とは・・・?
ڧ͍ґଘɺऑ͍ґଘɺͦΜͳͷਓͷɾɾ • ⾔いたいことは「互いにどういう影響を及ぼしているの か?を強調したいね」って点 • なので、「私がいなくても⽣きていけるの・・?」みたい な情報は嬉しいですよね • (それによって、お互いの存在意義って変わるでしょ?)
ͬ͘͟Γίϯϙδγϣϯ • 端折った説明 • 集約: 部分が無くても全体が成り⽴つ • コンポジション: 部分は全体が無いと意味を成さない •
コンポジション関係だと、 「全体がdestructされた時に部分も破棄される」イメージ • この説明はちょっとミスリードかもだけども
ࢀߟ • オブジェクトの動的側⾯を⾒極める:【改訂版】初歩の UML - ITmedia エンタープライズ https://www.itmedia.co.jp/im/articles/0306/05/ news001.html •
やはりお前らのコンポジションは間違っている - Qiita https://qiita.com/turanukimaru/items/ 0b1396393908b7e22618
૬ޓ࡞༻ਤ クラス(オブジェクト)がどのようにメッセージングし合うか を⽰す(動的モデリング)