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
42
0
Share
Clean Architecture
Short introduction about Clean Architecture
Thibaut Coutard
January 27, 2020
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
63
Internationalisation
coutart
0
35
Other Decks in Technology
See All in Technology
40代からのアウトプット ― 経験は価値ある学びに変わる / 20260404 Naoki Takahashi
shift_evolve
PRO
2
240
SaaSに宿る21g
kanyamaguc
2
180
Zephyr(RTOS)でARMとRISC-Vのコア間通信をしてみた
iotengineer22
0
110
AI時代のIssue駆動開発のススメ
moongift
PRO
0
310
トイルを超えたCREは何屋になるのか
bengo4com
0
110
Bref でサービスを運用している話
sgash708
0
210
【AWS】CloudTrail LakeとCloudWatch Logs Insightsの使い分け方針
tsurunosd
0
130
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
11k
Physical AI on AWS リファレンスアーキテクチャ / Physical AI on AWS Reference Architecture
aws_shota
1
200
パワポ作るマンをMCP Apps化してみた
iwamot
PRO
0
250
CloudFrontのHost Header転送設定でパケットの中身はどう変わるのか?
nagisa53
1
230
FASTでAIエージェントを作りまくろう!
yukiogawa
4
180
Featured
See All Featured
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.9k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
110
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
310
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
690
Optimizing for Happiness
mojombo
378
71k
The Invisible Side of Design
smashingmag
302
51k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
160
It's Worth the Effort
3n
188
29k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.2k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
870
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
260
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.4k
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