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
A craftsman’s guide to designing clean architec...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Marcus Biel
June 11, 2018
Technology
0
320
A craftsman’s guide to designing clean architecture
In this talk, Software Craftsman Marcus Biel describes how to design a Clean Architecture.
Marcus Biel
June 11, 2018
Tweet
Share
More Decks by Marcus Biel
See All by Marcus Biel
Java, Turbocharged!
marcusbiel
0
40
Java, Turbocharged!
marcusbiel
0
59
Java, Turbocharged!
marcusbiel
0
110
Java, Turbocharged!
marcusbiel
0
35
Java, Turbocharged
marcusbiel
0
33
Listen to Dad
marcusbiel
0
49
Java, Turbocharged
marcusbiel
0
97
Java, Turbocharged
marcusbiel
0
59
A craftsman’s guide to designing clean architecture (german)
marcusbiel
0
60
Other Decks in Technology
See All in Technology
SchooでVue.js/Nuxtを技術選定している理由
yamanoku
3
180
生成AIと余白 〜開発スピードが向上した今、何に向き合う?〜
kakehashi
PRO
0
130
AIエージェントを開発しよう!-AgentCore活用の勘所-
yukiogawa
0
180
30万人の同時アクセスに耐えたい!新サービスの盤石なリリースを支える負荷試験 / SRE Kaigi 2026
genda
4
1.4k
コミュニティが変えるキャリアの地平線:コロナ禍新卒入社のエンジニアがAWSコミュニティで見つけた成長の羅針盤
kentosuzuki
0
130
こんなところでも(地味に)活躍するImage Modeさんを知ってるかい?- Image Mode for OpenShift -
tsukaman
1
170
Oracle AI Database移行・アップグレード勉強会 - RAT活用編
oracle4engineer
PRO
0
110
Frontier Agents (Kiro autonomous agent / AWS Security Agent / AWS DevOps Agent) の紹介
msysh
3
180
AI駆動開発を事業のコアに置く
tasukuonizawa
1
360
予期せぬコストの急増を障害のように扱う――「コスト版ポストモーテム」の導入とその後の改善
muziyoshiz
1
2k
Cosmos World Foundation Model Platform for Physical AI
takmin
0
960
Bedrock PolicyでAmazon Bedrock Guardrails利用を強制してみた
yuu551
0
260
Featured
See All Featured
Site-Speed That Sticks
csswizardry
13
1.1k
Designing for Timeless Needs
cassininazir
0
130
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
460
BBQ
matthewcrist
89
10k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
9.6k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
GitHub's CSS Performance
jonrohan
1032
470k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
1
57
Navigating Team Friction
lara
192
16k
New Earth Scene 8
popppiees
1
1.5k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
190
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.3k
Transcript
Marcus Biel, Software Craftsman Barcelona | 11. June 2018 A
craftsman’s guide to designing clean architecture
Copyright 2018 Marcus Biel https://cleancodeacademy.com About Me Clean Code Evangelist
• Public Speaker Author • Java Influencer • JCP Member Clean Code Coach • Java Consultant @MarcusBiel https://cleancodeacademy.com
Copyright 2018 Marcus Biel https://cleancodeacademy.com Defining a Clean Architecture
Copyright 2018 Marcus Biel https://cleancodeacademy.com Defining a Clean Architecture
Copyright 2018 Marcus Biel https://cleancodeacademy.com Defining a Clean Architecture
Copyright 2018 Marcus Biel https://cleancodeacademy.com Defining a Clean Architecture MODULES
PACKAGES CLASSES METHODS
Copyright 2018 Marcus Biel https://cleancodeacademy.com Defining a Clean Architecture Domain
Infrastructure HTTPS REST SOAP http://bit.ly/HexagonalArchitecture
Copyright 2018 Marcus Biel https://cleancodeacademy.com Defining a Clean Architecture
Copyright 2018 Marcus Biel https://cleancodeacademy.com Building Blocks of a Clean
Architecture ‣ Size ‣ Naming ‣ Encapsulation ‣ Coupling and Cohesion
Copyright 2018 Marcus Biel https://cleancodeacademy.com Size MODULES PACKAGES CLASSES METHODS
Copyright 2018 Marcus Biel https://cleancodeacademy.com Naming Clean names drive high
cohesion (Customer, AccountNumber) Use service pattern judiciously Clean names are team work Rename on new insights
Copyright 2018 Marcus Biel https://cleancodeacademy.com Encapsulation technically enforces of how
the system should be used. Getters and Setters violate encapsulation. Use package private more often! http://bit.ly/EvilGettersAndSetters
Copyright 2018 Marcus Biel https://cleancodeacademy.com Building Blocks of a Clean
Architecture ‣ Size ‣ Naming ‣ Encapsulation ‣ Coupling and Cohesion
Copyright 2018 Marcus Biel https://cleancodeacademy.com Defining Coupling Tight Coupling Loose
Coupling
Copyright 2018 Marcus Biel https://cleancodeacademy.com Coupling Strength ‣ Type of
Coupling ‣ Timing of Coupling ‣ Distance of the Components
Copyright 2018 Marcus Biel https://cleancodeacademy.com Type of Coupling
Copyright 2018 Marcus Biel https://cleancodeacademy.com Distance of the Components MODULES
PACKAGES CLASSES METHODS
Copyright 2018 Marcus Biel https://cleancodeacademy.com Distance of the Components
Copyright 2018 Marcus Biel https://cleancodeacademy.com Distance of the Components
Copyright 2018 Marcus Biel https://cleancodeacademy.com Distance of the Components
Copyright 2018 Marcus Biel https://cleancodeacademy.com Distance of the Components
Copyright 2018 Marcus Biel https://cleancodeacademy.com Timing of Coupling
Copyright 2018 Marcus Biel https://cleancodeacademy.com Cohesion Low Cohesion High Cohesion
Copyright 2018 Marcus Biel https://cleancodeacademy.com Cohesion Low Cohesion High Cohesion
Copyright 2018 Marcus Biel https://cleancodeacademy.com Cohesion High Cohesion requires in-depth
knowledge of the domain.
Copyright 2018 Marcus Biel https://cleancodeacademy.com What is Clean Architecture? I
would advise students to pay more attention to the fundamental ideas rather than the latest technology. The technology will be out-of-date before they graduate. Fundamental ideas never get out of date. — David L. Parnas “ ”
Marcus Biel, Software Craftsman Barcelona | 11. June 2018 A
craftsman’s guide to designing clean architecture