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
ワールドカフェI /チューターを改良する / World Café I and Improving the Tutors
ks91
PRO
0
150
コードや知識を組み込む / Incorporate Code and knowledge
ks91
PRO
0
150
How to do well in consulting–Balkan Ruby 2024
irinanazarova
0
150
生成AIの変革の時代に、直近1年で直面した課題とその解決策
ktc_wada
0
690
Android Target SDK 35 (Android 15) 対応の概要
akkie76
0
160
M5と自作基板をくっつけてみた〜M5 Japan Tour 2024 Spring 福冈 (Fukuoka|福岡)〜
keropiyo
0
160
BPStudyの200回を中心にIT業界を振り返る。そしてこれから
haru860
3
410
Google Cloud Next '24でブログを10本書いた方法と勉強会を沸かせた方法
yasumuusan
0
340
How to Lead? Testimonial of a Lead Android Engineer
oleur
1
110
Gitlab本から学んだこと - そーだいなるプレイバック / gitlab-book
soudai
7
1.3k
データベース02: データベースの概念
trycycle
0
180
プロンプトエンジニアリングでがんばらない-Agentic Workflow へ-近藤憲児
kenjikondobai
6
1.2k
Featured
See All Featured
The Cost Of JavaScript in 2023
addyosmani
20
3.9k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
41
4.4k
A Tale of Four Properties
chriscoyier
152
22k
Creatively Recalculating Your Daily Design Routine
revolveconf
211
11k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
275
13k
From Idea to $5000 a Month in 5 Months
shpigford
378
45k
Making the Leap to Tech Lead
cromwellryan
125
8.5k
How to name files
jennybc
65
93k
Building a Scalable Design System with Sketch
lauravandoore
457
32k
VelocityConf: Rendering Performance Case Studies
addyosmani
321
23k
Agile that works and the tools we love
rasmusluckow
325
20k
Build The Right Thing And Hit Your Dates
maggiecrowley
25
2k
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