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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Buzzvil
April 18, 2018
Programming
970
0
Share
Clean Architecture
By Yohan
Buzzvil
April 18, 2018
More Decks by Buzzvil
See All by Buzzvil
220903_GFS
buzzvil
0
600
Git 해부하기 2 + 3
buzzvil
0
61
Metastable Failure
buzzvil
0
320
Git 해부하기
buzzvil
0
71
Introduction to Plate Solving
buzzvil
0
69
Airbnb Minerva
buzzvil
0
470
Shape up 방법론
buzzvil
0
1k
Buzzvil Billing Data Pipeline
buzzvil
0
690
Journey of Dash's release-cycle
buzzvil
0
240
Other Decks in Programming
See All in Programming
Going Multiplatform with Your Android App (Android Makers 2026)
zsmb
2
460
ついに来た!本格的なマルチクラウド時代の Google Cloud
maroon1st
0
300
Firefoxにコントリビューションして得られた学び
ken7253
0
110
Claude CodeでETLジョブ実行テストを自動化してみた
yoshikikasama
0
1.1k
クラウドネイティブなエンジニアに向ける Raycastの魅力と実際の活用事例
nealle
2
230
検索設計から 推論設計への重心移動と Recall-First Retrieval
po3rin
4
1.3k
実用!Hono RPC2026
yodaka
2
280
iOS機能開発のAI環境と起きた変化
ryunakayama
0
190
2026-04-15 Spring IO - I Can See Clearly Now
jonatan_ivanov
1
140
AIを導入する前にやるべきこと
negima
2
310
AWSコミュニティ活動は顧客のクラウド推進に効くのか / Do AWS community activities help customers adopt the cloud?
seike460
PRO
0
150
AI-DLC Deep Dive
yuukiyo
9
5k
Featured
See All Featured
New Earth Scene 8
popppiees
3
2.1k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.3k
30 Presentation Tips
portentint
PRO
1
280
The SEO Collaboration Effect
kristinabergwall1
1
430
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
500
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.7k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
200
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.3k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
170
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.8k
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.5k
Skip the Path - Find Your Career Trail
mkilby
1
110
Transcript
None
Clean Code - quick summary • Naming • Small functions
• Meaningful comments • Data abstraction • Error Handling • TDD(Unit Tests) • Building Systems
None
Goals At working at module level, software structure should •
Tolerate changes • Easy to understand • Basic components for reuse
Our Enemies • Rigidity - difficult to change • Fragility
- easy to break • Immobility - difficult to reuse • Viscosity - resistance against making changes
SOLID Principles • Single Responsibility • Open-closed • Liskov substitution
• Interface segregation • Dependency Inversion
Single Responsibility Principle (SRP) • A module should be responsible
to one, and only one, actor
SRP: Violation Employee -regularHours +calculatePay +reportHours +save Roy John Zune
SRP: Solution Employee Facade +calculatePay +reportHours +save PayCalculator +calculatePay HourReporter
+reportHours EmployeeSaver +save
Open-closed Principle • Open for extension but closed for modification
• Example with inheritance ◦ Bad ◦ Good
Liskov Substitution Principle • If for each object o1 of
type S, there is an object o2 of type T, such that, for all programs P defined in terms of T, the behavior of P is unchanged when o1 is substituted for o2, then S is a subtype of T
None
None
LSP Violation Rectangle +setHeight +setWidth Square +setSides User
Interface Segregation Principle (ISP)
ISP Violation Ops +ops0 +ops1 +ops2 User0 User1 User2
Dependency Inversion Principle • Source code should interact with abstractions,
not concretions • Stable vs volatile concrete elements
Takeaways • Consider actors in the system • Keep options
open with layers • Interact with abstractions over details