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
Write S.O.L.I.D code
Search
Yoan
June 13, 2017
How-to & DIY
2
2.5k
Write S.O.L.I.D code
Learn how to write Object Oriented S.O.L.I.D code
Yoan
June 13, 2017
Tweet
Share
More Decks by Yoan
See All by Yoan
L'artisanat logiciel à l'heure du numérique responsable
thirion
0
91
Clean Code du point de vue de la cognition
thirion
0
180
Agile Tech Coaching - The Missing Piece Of Your Organization
thirion
1
130
Cultiver l'intelligence collective à l'heure de ChatGPT
thirion
0
130
Clean Code from the Cognition Point of View
thirion
2
190
Xanpan - une méthode agile hybride centrée sur l'équipe
thirion
0
200
Les aventures d'un facilitateur au pays des techs - Agile Grenoble 2023
thirion
0
140
Clean Code du point de vue de la cognition
thirion
1
270
Les aventures d'un facilitateur au pays des techs - Agile Tour Lausanne 2022
thirion
0
200
Other Decks in How-to & DIY
See All in How-to & DIY
おっきなガジェットの回線事情
2bo
1
160
M5Stackサーバーを使って初代プレイステーションでuClinuxのカーネルを起動
kazueda
0
130
JAWS-UG 福岡 in 北九州 | JAWS-UG/AWSコミュニティ プログラムのご紹介
awsjcpm
1
180
スイングやカードをいい感じに立てるスタンドの話
niccolli
1
400
251011「ひとりより、みんなで!」 九州の支部で始めた、新しい連携のかたち
east_takumi
2
130
苦手の克服方法 / How to overcome weaknesses
toma_sm
0
330
10分de名コミュ “最高の自分”を演じ憧れの同業者と渡り合う
subroh0508
1
620
Azure PortalのQoLを上げてたら Big Techに怒られた
horihiro
2
540
新婚19年目から学ぶ夫婦円満の正しい歩き方 / Life is beautiful
soudai
PRO
13
4.9k
Node-REDで制御できるエッジカメラのreCameraを触る #iotlt #JLCPCB #recamera
n0bisuke2
0
150
5年間ぐらい、 スプリントレトロスペクティブは、 「+/Δ」しかしてないので、 あらためて良いのか悪いか考えてみる / Doing Plus Delta for about five years
camel_404
1
310
How to make the Groovebox
asonas
2
1.9k
Featured
See All Featured
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.2k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
54
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Everyday Curiosity
cassininazir
0
130
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
140
Designing for Performance
lara
610
70k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
34k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
140
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
910
Exploring anti-patterns in Rails
aemeredith
2
250
Optimising Largest Contentful Paint
csswizardry
37
3.6k
Transcript
@yot88 By yoan thirion S.O.L.I.D principles
@yot88 bad code / Good code Bad code vs Good
code Categorize each piece of code
None
@yot88 Singleton Tight Coupling Untestability Premature Optimization Indescriptive Naming Duplication
Single Responsibility Open/Closed Principle Liskov Substitution Interface Segregation Dependency Inversion Patterns and anti-patterns
@yot88 SRP A class should have only 1 responsibility
@yot88 Software entities should be open for extension, but closed
for modification. Open closed
@yot88 Subtypes must be substitutable for their base types. Liskov
substitution
@yot88 Clients should not be forced to depend on methods
that they do not use. Interface segregation
@yot88 High level modules should not depend on low level
modules : both should depend on abstractions. DI
@yot88 Good code / bad code Align each piece of
code with a S.O.L.I.D principle
1 3 3 1 3 16 13 2 4 14
15 6 8 9 12 5 10 11
3 13 16 1 3 16 13 2 4 14
15 6 8 9 12 5 10 11
3 4 2 1 3 16 13 2 4 14
15 6 8 9 12 5 10 11
3 15 14 1 3 16 13 2 4 14
15 6 8 9 12 5 10 11
3 8 6 1 3 16 13 2 4 14
15 6 8 9 12 5 10 11
3 11 9 1 3 16 13 2 4 14
15 6 8 9 12 5 10 11
3 10 5 1 3 16 13 2 4 14
15 6 8 9 12 5 10 11
12 1 3 16 13 2 4 14 15 6
8 9 12 5 10 11
1 3 16 13 2 4 14 15 6 8
9 12 5 10 11
@yot88 Let’s refactor using s.O.L.I.D
@yot88 exercises Practice S.O.L.I.D principles on code examples Clone the
repository at : https://github.com/ythirion/solid-kata Foreach code example : • identify why it’s breaking the given principle • Write down your refactoring strategy • Refactor it
@yot88 Where do you stand ? No quite yet On
the way Ready to roll