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
Clean Architecture
Search
Thibaut Coutard
January 27, 2020
Technology
0
42
Clean Architecture
Short introduction about Clean Architecture
Thibaut Coutard
January 27, 2020
Tweet
Share
More Decks by Thibaut Coutard
See All by Thibaut Coutard
iOS ecosystem
coutart
0
30
Tests
coutart
0
56
Iterate your Klingon
coutart
0
120
Workshop : CI - CD using Bitrise
coutart
0
61
Internationalisation
coutart
0
35
Other Decks in Technology
See All in Technology
Amazon S3 Vectorsを使って資格勉強用AIエージェントを構築してみた
usanchuu
3
450
Bill One急成長の舞台裏 開発組織が直面した失敗と教訓
sansantech
PRO
2
340
超初心者からでも大丈夫!オープンソース半導体の楽しみ方〜今こそ!オレオレチップをつくろう〜
keropiyo
0
110
Bedrock PolicyでAmazon Bedrock Guardrails利用を強制してみた
yuu551
0
190
ブロックテーマでサイトをリニューアルした話 / 2026-01-31 Kansai WordPress Meetup
torounit
0
460
プロポーザルに込める段取り八分
shoheimitani
1
190
We Built for Predictability; The Workloads Didn’t Care
stahnma
0
140
Claude_CodeでSEOを最適化する_AI_Ops_Community_Vol.2__マーケティングx_AIはここまで進化した.pdf
riku_423
2
530
SREチームをどう作り、どう育てるか ― Findy横断SREのマネジメント
rvirus0817
0
130
顧客との商談議事録をみんなで読んで顧客解像度を上げよう
shibayu36
0
210
会社紹介資料 / Sansan Company Profile
sansan33
PRO
15
400k
インフラエンジニア必見!Kubernetesを用いたクラウドネイティブ設計ポイント大全
daitak
1
340
Featured
See All Featured
Navigating Weather and Climate Data
rabernat
0
100
4 Signs Your Business is Dying
shpigford
187
22k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
73
Technical Leadership for Architectural Decision Making
baasie
1
240
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
410
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.2k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
240
Utilizing Notion as your number one productivity tool
mfonobong
3
220
A better future with KSS
kneath
240
18k
Exploring anti-patterns in Rails
aemeredith
2
250
Believing is Seeing
oripsolob
1
53
Transcript
Clean Architecture Thibaut Coutard iOS developer
What is it ?
Uncle Bob • co-autor of the agile manifest • Author
of Clean Code • His blog cleancoder.com
Why ? • Easier to change • Easier to maintain
• Less bugs • Less developers needed
S.O.L.I.D
S.O.L.I.D • Single Responsibility Principle
S.O.L.I.D • Single Responsibility Principle • Open Close Principle
S.O.L.I.D • Single Responsibility Principle • Open Close Principle •
Liskov Substitution Principle
S.O.L.I.D • Single Responsibility Principle • Open Close Principle •
Liskov Substitution Principle • Interface Segregation Principle
S.O.L.I.D • Single Responsibility Principle • Open Close Principle •
Liskov Substitution Principle • Interface Segregation Principle • Dependency Inversion Principle
S.O.L.I.D
S.ingle Responsibility Principle
S.ingle Responsibility Principle • One reason to change • Do
one thing • Responsible to one actor
O.pen Close Principle
O.pen Close Principle • Open for extension - Close for
modi fi cation • Protects higher-level components from changes in lower-level components
View Presenter Interactor Repository
L.iskov Substition Principle
L.iskov Substition Principle • Class substituted by another without breaking
the caller
Repository DBInterface Realm Gateway CoreData Gateway <I>
I.nterface Segregation Principle
I.nterface Segregation Principle • Harmful to depend on modules that
contains more than you need • Give only the essentials
UserAPI ———— +getAll +get +post UserList AddUser GetAllUserAPI ———— +getAll
<I> GetUserAPI ———— +get <I> PostUserAPI ———— +post <I> UserPro fi le
D.ependency Inversion Principle
D.ependency Inversion Principle • Flexible using abstraction • Interfaces less
volatiles • Never mention the name of anything concrete or volatile
D.ependency Inversion Principle Interactor Interactor Output Presenter
Clean Architecture
-M. Conway « organizations which design systems ... are constrained
to produce designs which are copies of the communication structures of these organizations. »
Clean Architecture • A good architecture allow changes • Be
careful of duplication that is not real • Premature decisions are ones that have nothing to do with business requirements • Draw Boundaries between business and GUI, GUI and DB, DB and business
None
None
None
None
None
None
None
Don’t depend on volatile things !
Going deeper • https://github.com/coutar-t/GW2Achievements • Clean Architecture, Robert C. Martin
• V.I.P.E.R • Clean Swift • https://speakerdeck.com/coutart/clean-architecture