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
Marcus Biel
June 11, 2018
Technology
320
0
Share
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
More Decks by Marcus Biel
See All by Marcus Biel
Java, Turbocharged!
marcusbiel
0
45
Java, Turbocharged!
marcusbiel
0
61
Java, Turbocharged!
marcusbiel
0
120
Java, Turbocharged!
marcusbiel
0
38
Java, Turbocharged
marcusbiel
0
35
Listen to Dad
marcusbiel
0
52
Java, Turbocharged
marcusbiel
0
98
Java, Turbocharged
marcusbiel
0
61
A craftsman’s guide to designing clean architecture (german)
marcusbiel
0
64
Other Decks in Technology
See All in Technology
カオナビに Suspenseを導入するまで / The Road to Suspense at kaonavi
kaonavi
1
430
Every Conversation Counts
kawaguti
PRO
0
140
The 7 pitfalls of AI
ufried
0
200
もっとコンテンツをよく構造化して理解したいので、LLM 時代こそ Taxonomy の設計品質に目を向けたい〜!
morinota
0
210
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
15
100k
ファインディの事業拡大を支える 拡張可能なデータ基盤へのリアーキテクチャ
hiracky16
0
940
Fabric MCPの紹介と使い分け
ryomaru0825
1
150
Forget technical debt
ufried
0
180
GKE Agent SandboxでAIが生成したコードを 安全に実行してみた
lamaglama39
0
210
要件定義の精度を高めるための型と生成AIの活用 / Using Types and Generative AI to Improve the Accuracy of Requirements Definition
haru860
0
310
会社説明資料|株式会社ギークプラス ソフトウェア事業部
geekplus_tech
0
200
変化の激しい時代をゴキゲンに生き抜くために 〜ストレスマネジメントのススメ〜
kakehashi
PRO
4
1.2k
Featured
See All Featured
Mind Mapping
helmedeiros
PRO
1
180
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2k
A Soul's Torment
seathinner
6
2.8k
How to make the Groovebox
asonas
2
2.2k
Building Adaptive Systems
keathley
44
3k
Documentation Writing (for coders)
carmenintech
77
5.3k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
190
Making Projects Easy
brettharned
120
6.6k
My Coaching Mixtape
mlcsv
0
120
GraphQLとの向き合い方2022年版
quramy
50
15k
The untapped power of vector embeddings
frankvandijk
2
1.7k
How GitHub (no longer) Works
holman
316
150k
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