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
SOLID - Dependency inversion principle
Search
Amanda
October 09, 2018
Technology
0
60
SOLID - Dependency inversion principle
Amanda
October 09, 2018
Tweet
Share
More Decks by Amanda
See All by Amanda
Lessons Learned From an Elixir OTP Project
amandasposito
2
48
Aprendizados de um projeto Elixir OTP
amandasposito
4
440
Como concorrência funciona em Elixir?
amandasposito
1
210
Programação Funcional & Elixir
amandasposito
3
110
Ecto, você sabe o que é ?
amandasposito
4
220
Novidades no Rails 5
amandasposito
0
87
Rails Engines & RSpec
amandasposito
0
200
Elixir e Phoenix
amandasposito
3
530
Elixir em 5 minutos
amandasposito
1
80
Other Decks in Technology
See All in Technology
自作Cコンパイラ 8時間の奮闘
soukouki
0
830
不動産 x AIことはじめ~データの真価を拓くために
estie
0
110
JEP 480: Structured Concurrency
aya_ebata
0
130
四国クラウドお遍路 2024 in 高知 オープニング
yukataoka
0
200
事前準備が肝!AI活用のための業務改革
layerx
PRO
1
370
DevRelの始め方
moongift
PRO
1
380
SORACOMで実現するIoTのマルチクラウド対応 - IoTでのクリーンアーキテクチャの実現 -
kenichirokimura
0
380
PDF Viewer作成の今までとこれから
hunachi
0
400
とあるOSSを継続可能にするための取り組みについて / OSS Refactoring Process
bun913
1
190
20240912 JJUGナイトセミナー
mii1004
0
140
『GRANBLUE FANTASY: Relink』最高の「没入感」を実現するカットシーン制作手法とそれを支える技術
cygames
0
100
LINEヤフーのフロントエンド組織・体制の紹介
lycorp_recruit_jp
1
1.2k
Featured
See All Featured
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Product Roadmaps are Hard
iamctodd
PRO
48
10k
The World Runs on Bad Software
bkeepers
PRO
64
11k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
26
2k
Music & Morning Musume
bryan
46
6k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
502
140k
Teambox: Starting and Learning
jrom
131
8.7k
Build your cross-platform service in a week with App Engine
jlugia
228
18k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
227
52k
Statistics for Hackers
jakevdp
794
220k
5 minutes of I Can Smell Your CMS
philhawksworth
202
19k
Facilitating Awesome Meetings
lara
49
5.9k
Transcript
SOLID Dependency Inversion Principle
O que é? Onde vive?
Falando um pouco de SOLID...
Imagine um cenário
Temos um software novo para escrever
No começo é aquela alegria
None
As mudanças são simples, a velocidade é boa
None
None
Fragilidade "Tendência do software de quebrar em vários lugares sempre
que é alterado. Geralmente em lugares não relacionados conceitualmente com o local da mudança."
Rigidez "Tendência do software de ser difícil de mudar. Qualquer
mudança gera várias mudanças em sequência." https://fi.ort.edu.uy/innovaportal/file/2032/1/design_principles.pdf
"Abstrações não devem depender de detalhes. Detalhes devem depender de
abstrações."
None
class Copier def self.copy reader = KeyboardReader.new writer = Printer.new
keystrokes = reader.read_until_eof writer.write(keystrokes) end end
class Copier def initialize(reader, writer) @reader = reader @writer =
writer end def copy @writer.write(@reader.read_until_eof) end end
None