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 architecture
Search
Marcus Biel
October 10, 2018
Technology
0
51
A craftsman’s guide to designing clean architecture
In this talk, Software Craftsman Marcus Biel describes how to design a Clean Architecture.
Marcus Biel
October 10, 2018
Tweet
Share
More Decks by Marcus Biel
See All by Marcus Biel
Java, Turbocharged!
marcusbiel
0
25
Java, Turbocharged!
marcusbiel
0
46
Java, Turbocharged!
marcusbiel
0
88
Java, Turbocharged!
marcusbiel
0
19
Java, Turbocharged
marcusbiel
0
16
Listen to Dad
marcusbiel
0
31
Java, Turbocharged
marcusbiel
0
76
Java, Turbocharged
marcusbiel
0
42
A craftsman’s guide to designing clean architecture (german)
marcusbiel
0
45
Other Decks in Technology
See All in Technology
イチから学ぶdbt / Learn dbt from scratch
shinyaa31
0
140
関数型DDDの理論と実践:「決定を遅らせる」を先につくり、 ビジネスの機動力と価値をあげる
knih
2
490
Cloud Friendly(?) Jenkins. How we failed to make Jenkins cloud native and what we learned?
onenashev
PRO
0
110
SREsのためのSRE定着ガイド
netmarkjp
10
1.6k
KTC_DBRE.pdf
_awache
1
290
生成AIサービスPanorama AIご説明資料
sdt
0
300
技術広報として2023年度に頑張ったこと / What we did well in FY2023 as a DevRel
pauli
5
490
これまでのキャリアとこれからMLエンジニアとしてどう動くか
masatakashiwagi
1
610
継続的テストモデルを実現するためにスリーアミーゴスを用いた10Xでのシフトレフトの事例
nihonbuson
3
250
Elementaryを用いたデータ品質の可視化とデータ基盤の運用改善
10xinc
6
1.6k
やっていきテスト
k6s4i53rx
0
160
業務で使えるかもしれない…!?GitHub Actions の Tips 集 / CI/CD Test Night #7
ponkio_o
PRO
24
7.1k
Featured
See All Featured
Optimising Largest Contentful Paint
csswizardry
7
2.3k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
153
14k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
28
5.9k
Learning to Love Humans: Emotional Interface Design
aarron
266
39k
Practical Orchestrator
shlominoach
180
9.7k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
225
51k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3k
RailsConf 2023
tenderlove
0
510
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
113
18k
Bash Introduction
62gerente
604
210k
Code Reviewing Like a Champion
maltzj
512
39k
Facilitating Awesome Meetings
lara
39
5.5k
Transcript
Marcus Biel, Software Craftsman London | 10. October 2018 A
craftsman’s guide to designing 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
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 Defining a 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 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
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 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 “ ”
Copyright 2018 Marcus Biel https://cleancodeacademy.com Marcus Biel
[email protected]
https://cleancodeacademy.com Thanks!