$30 off During Our Annual Pro Sale. View Details »
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
29
Tests
coutart
0
55
Iterate your Klingon
coutart
0
110
Workshop : CI - CD using Bitrise
coutart
0
60
Internationalisation
coutart
0
35
Other Decks in Technology
See All in Technology
打 造 A I 驅 動 的 G i t H u b ⾃ 動 化 ⼯ 作 流 程
appleboy
0
360
[デモです] NotebookLM で作ったスライドの例
kongmingstrap
0
160
WordPress は終わったのか ~今のWordPress の制作手法ってなにがあんねん?~ / Is WordPress Over? How We Build with WordPress Today
tbshiki
1
820
CARTAのAI CoE が挑む「事業を進化させる AI エンジニアリング」 / carta ai coe evolution business ai engineering
carta_engineering
0
1.9k
マイクロサービスへの5年間 ぶっちゃけ何をしてどうなったか
joker1007
14
6.5k
年間40件以上の登壇を続けて見えた「本当の発信力」/ 20251213 Masaki Okuda
shift_evolve
PRO
1
140
ウェルネス SaaS × AI、1,000万ユーザーを支える 業界特化 AI プロダクト開発への道のり
hacomono
PRO
0
140
S3を正しく理解するための内部構造の読解
nrinetcom
PRO
2
160
Amazon Quick Suite で始める手軽な AI エージェント
shimy
0
190
AIプラットフォームにおけるMLflowの利用について
lycorptech_jp
PRO
1
170
re:Invent2025 コンテナ系アップデート振り返り(+CloudWatchログのアップデート紹介)
masukawa
0
390
ChatGPTで論⽂は読めるのか
spatial_ai_network
11
29k
Featured
See All Featured
Balancing Empowerment & Direction
lara
5
800
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.1k
Designing for humans not robots
tammielis
254
26k
jQuery: Nuts, Bolts and Bling
dougneiner
65
8.3k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.8k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
286
14k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.3k
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
Faster Mobile Websites
deanohume
310
31k
Building Applications with DynamoDB
mza
96
6.8k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.8k
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