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 20, 2018
Technology
0
130
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 20, 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
Skaffoldを用いたGKEアプリケーションの CD(Continuous Development)
kojake_300
1
120
履歴データテーブルとの向き合い方_PHPerKaigi2024
gennei
25
6.7k
GitHub composite actions
hkusu
1
120
SwiftUIのpropertyWrapperをふんわり理解する
jambo_develop_team
0
110
サイボウズのQAエンジニア育成
cybozuinsideout
PRO
3
550
すべてが #Zenoh になる
takasehideki
0
100
スクラムマスター不在でスクラムをやるのは(とても辛いので)やめておけ! #scrumfukuoka
nulabinc
PRO
4
900
Combineを中心とした処理をSwift Concurrencyへ (これまでも調べた調査と向き合い)
fumiyasac0921
1
170
ECS on FargateへのSeekable OCI導入レポート
iwamot
0
260
自己完結な開発者組織を支える プラットフォーム作り
recruitengineers
PRO
2
230
第131回 雲勉【オンライン】AWSを9年触ってきて経験した落とし穴、ハマったポイント
iret
6
480
Simplifying Data Analysis & Visualization with Developer Tools & AI
nitya
1
220
Featured
See All Featured
10 Git Anti Patterns You Should be Aware of
lemiorhan
644
57k
How to name files
jennybc
62
91k
How to train your dragon (web standard)
notwaldorf
71
5k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
111
35k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
67
38k
Scaling GitHub
holman
456
140k
Become a Pro
speakerdeck
PRO
8
4.2k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
11
1.4k
WebSockets: Embracing the real-time Web
robhawkes
59
6.9k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
4
1.4k
Reflections from 52 weeks, 52 projects
jeffersonlam
343
19k
Docker and Python
trallard
33
2.6k
Transcript
Marcus Biel, Software Craftsman Krakow | 20. 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 METHODS
CLASSES PACKAGES MODULES
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 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 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 Preconditions Mutual Trust and Respect
No Fear Product before Process Technical Debt vs. Organisational Debt Developers are Stakeholders
Copyright 2018 Marcus Biel https://cleancodeacademy.com Building Blocks of a Clean
Architecture ‣ Testing ‣ Size ‣ Naming ‣ Encapsulation ‣ Coupling and Cohesion
Copyright 2018 Marcus Biel https://cleancodeacademy.com Testing Test first (TDD) or
Test Last Let's you eat your own dog food Aim for High Branch Coverage
Copyright 2018 Marcus Biel https://cleancodeacademy.com Size METHODS CLASSES PACKAGES MODULES
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 Coupling Tight Coupling Loose Coupling
Copyright 2018 Marcus Biel https://cleancodeacademy.com Coupling Strength ‣ Type of
Coupling ‣ Distance of the Components ‣ Time of Coupling
Copyright 2018 Marcus Biel https://cleancodeacademy.com Type of Coupling
Copyright 2018 Marcus Biel https://cleancodeacademy.com Distance of the Components METHODS
CLASSES PACKAGES MODULES
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 Time 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 “ ”
Copyright 2018 Marcus Biel https://cleancodeacademy.com Slides: http://bit.ly/ByteMyCode Questions?
[email protected]
Thanks!