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
達人に学ぶソフトウェアの構造と設計 9,10,11章
Search
kazuki
October 04, 2020
0
160
達人に学ぶソフトウェアの構造と設計 9,10,11章
達人に学ぶソフトウェアの構造と設計 9,10,11章
kazuki
October 04, 2020
Tweet
Share
More Decks by kazuki
See All by kazuki
達人に学ぶソフトウェアの構造と設計 29,30章
kazuki_ijima_ym
0
57
達人に学ぶソフトウェアの構造と設計 19,20章
kazuki_ijima_ym
0
47
Featured
See All Featured
Designing for Performance
lara
601
67k
Stop Working from a Prison Cell
hatefulcrawdad
266
19k
Designing with Data
zakiwarfel
96
4.8k
Agile that works and the tools we love
rasmusluckow
325
20k
In The Pink: A Labor of Love
frogandcode
138
21k
Gamification - CAS2011
davidbonilla
76
4.6k
Teambox: Starting and Learning
jrom
128
8.4k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
60
14k
Building Better People: How to give real-time feedback that sticks.
wjessup
355
18k
Product Roadmaps are Hard
iamctodd
44
9.7k
How to Ace a Technical Interview
jacobian
272
22k
Building Effective Engineering Teams - LeadDev
addyosmani
28
1.8k
Transcript
クリーンアーキテクチャ 達人に学ぶソフトウェアの構造と設計 9,10,11章 kazuki ijima
9,10,11章 リスコフの置換原則(LSP) インターフェース分離の原則(ISP) 依存関係逆転の原則(DIP)
リスコフの置換原則 「ここで望まれるのは、次に述べるような置換可能な性質である:s型のオブジェクトo1の 各々に対応するT型のオブジェクトo2が1つ存在し、Tを使って定義されたプログラムPに 対してo2の代わりにo1を使ってもPの振る舞いが変わらない場合、SはTの派生型であ ると言える」
リスコフの置換原則 置換できる例 図9-1 置換できない例 図9-2
リスコフの置換原則 継承の使い方の指針 ↓ インターフェースと実装に関するソフトウェア設計の原則
リスコフの置換原則 インターフェースが置換できない例 purplecab.com/driver/bob/.... /distination/ORD purplecab.com/driver/bob/.... /dist/ORD
インターフェース分離の原則 図10-1 Userと関係ないopの変更であっても、 再コンパイル・再デプロイが必要 図10-2 インターフェースを噛ませ、Userと関係ないopの変更であれば、 再コンパイル・再デプロイが不要
インターフェース分離の原則 必要としないモジュールに依存することは一般的に有害とされる 上位のアーキテクチャレベルにおいても同様 図10-3
依存関係逆転の原則 「ソースコードの依存関係が(具象ではなく)抽象だけを参照しているもの。 それが、最も柔軟なシステムである」 具象に依存するべきではない → 変化しやすいため 変化しづらいものへの依存は許容
依存関係逆転の原則 • 変化しやすい具象クラスを参照しない ◦ 抽象インターフェースを参照する ◦ Abstract Factoryパターンを使う • 変化しやすい具象クラスを継承しない
• 具象関数をオーバーライドしない • 変化しやすい具象を名指しで参照しない
依存関係逆転の原理 Abstract Factory 具体的な実装には注目せず、インターフェースに注目する インターフェースだけを使って、具象をあつかう 処理 抽象 → 具象 依存性
具象 → 抽象 (※依存関係逆転の原則の名前の由来)
依存関係逆転の原理 具象コンポーネント