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
June 11, 2018
Technology
0
290
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
25
Java, Turbocharged!
marcusbiel
0
47
Java, Turbocharged!
marcusbiel
0
89
Java, Turbocharged!
marcusbiel
0
19
Java, Turbocharged
marcusbiel
0
17
Listen to Dad
marcusbiel
0
31
Java, Turbocharged
marcusbiel
0
76
Java, Turbocharged
marcusbiel
0
43
A craftsman’s guide to designing clean architecture (german)
marcusbiel
0
46
Other Decks in Technology
See All in Technology
ルーターでプレゼンする
puhitaku
1
3.3k
[新卒向け研修資料] テスト文字列に「うんこ」と入れるな(2024年版)
infiniteloop_inc
5
18k
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Musicを例に~
otanet
0
310
Grafana x PagerDuty Better Together
jacopen
1
270
2023年度にEMとして頑張ったこと
ikefukurou777
0
100
uvを使ってストレスフリーな Python開発をしよう!
r74tech
0
120
IaCジェネレーターとBedrockで詳細設計書を生成してみた
tsukasa_ishimaru
4
890
Documentação de Produtos: Artefatos essenciais na prática
rigolon
1
160
ゼロから始めるVue.jsコミュニティ貢献 / first-vuejs-community-contribution-link-and-motivation
lmi
1
150
LayerXにおけるLLMプロダクト開発の今までとこれから
layerx
PRO
4
750
家族アルバム みてねにおけるGrafana活用術 / Grafana Meetup Japan Vol.1 LT
isaoshimizu
1
1.1k
EMとして2023年度に頑張ったこと / What we did well in FY2023 as a EM
pauli
1
260
Featured
See All Featured
Music & Morning Musume
bryan
41
5.6k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
41
4.4k
Building a Modern Day E-commerce SEO Strategy
aleyda
22
6.4k
Designing with Data
zakiwarfel
96
4.8k
The Mythical Team-Month
searls
217
42k
5 minutes of I Can Smell Your CMS
philhawksworth
199
19k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
20
1.8k
Writing Fast Ruby
sferik
622
60k
What’s in a name? Adding method to the madness
productmarketing
PRO
17
2.7k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
245
20k
Become a Pro
speakerdeck
PRO
13
4.6k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
155
14k
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