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
60
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
生成AIが変える SaaS の競争原理と弁護士ドットコムのプロダクト戦略
bengo4com
1
3.6k
変化の激しい時代をゴキゲンに生き抜くために 〜ストレスマネジメントのススメ〜
kakehashi
PRO
4
1.2k
AI 時代の Platform Engineering
recruitengineers
PRO
1
110
そのSLO 99.9%、本当に必要ですか? 〜優先度付きSLOによる責任共有の設計思想〜 / Is that 99.9% SLO really necessary? Design philosophy of shared responsibility through prioritized SLOs
vtryo
0
110
ブラウザの投機的読み込みと投機ルールAPIを理解し、Webサービスのパフォーマンスを最適化する
shuta13
3
290
みんなの考えた最強のデータ基盤アーキテクチャ'26前期〜前夜祭〜ルーキーズ_資料_遠藤な
endonanana
0
120
Swift Sequence の便利 API 再発見
treastrain
1
150
GitHub Copilot Dev Days
tomokusaba
0
150
自動テストだけで リリース判断できるチームへ - 鍵はテストの量ではなくリリース判断基準の再設計にあった / Redesigning Release Criteria for Lightweight Releases
ewa
7
3.5k
EMから幅を広げるために最近挑戦していること / Recent challenges I'm undertaking to expand my horizons beyond EM
hiro_torii
1
180
AIエージェントの支払い基盤 AgentCore Payments概要
kmiya84377
1
140
試作とデモンストレーション / Prototyping and Demonstrations
ks91
PRO
0
190
Featured
See All Featured
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
240
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
360
The SEO identity crisis: Don't let AI make you average
varn
0
460
Everyday Curiosity
cassininazir
0
200
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
530
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.2k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Making Projects Easy
brettharned
120
6.6k
Code Review Best Practice
trishagee
74
20k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
170
A Soul's Torment
seathinner
6
2.8k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.7k
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