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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
kazuki
October 04, 2020
0
220
達人に学ぶソフトウェアの構造と設計 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
94
達人に学ぶソフトウェアの構造と設計 19,20章
kazuki_ijima_ym
0
80
Featured
See All Featured
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
230
The Curious Case for Waylosing
cassininazir
0
240
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.1k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
170
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
330
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.1k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.7k
A Modern Web Designer's Workflow
chriscoyier
698
190k
Statistics for Hackers
jakevdp
799
230k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.3k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.6k
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 具体的な実装には注目せず、インターフェースに注目する インターフェースだけを使って、具象をあつかう 処理 抽象 → 具象 依存性
具象 → 抽象 (※依存関係逆転の原則の名前の由来)
依存関係逆転の原理 具象コンポーネント