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
69
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
60
Aprendizados de um projeto Elixir OTP
amandasposito
4
520
Como concorrência funciona em Elixir?
amandasposito
1
220
Programação Funcional & Elixir
amandasposito
3
120
Ecto, você sabe o que é ?
amandasposito
4
230
Novidades no Rails 5
amandasposito
0
95
Rails Engines & RSpec
amandasposito
0
210
Elixir e Phoenix
amandasposito
3
550
Elixir em 5 minutos
amandasposito
1
86
Other Decks in Technology
See All in Technology
チームビルディング「脅威モデリング」ワークショップ
koheiyoshikawa
0
180
こんなデータマートは嫌だ。どんな? / waiwai-data-meetup-202504
shuntak
3
1.2k
滑らかなユーザー体験も目指す注文管理のマイクロサービス化〜注文情報CSVダウンロード機能の事例〜
demaecan
0
140
Langchain4j y Ollama - Integrando LLMs con programas Java @ Commit Conf 2025
deors
0
100
Re:VIEWで書いた「Compose で Android の edge-to-edge に対応する」をRoo Codeで発表資料にしてもらった
tomoya0x00
0
240
SaaSプロダクト開発におけるバグの早期検出のためのAcceptance testの取り組み
kworkdev
PRO
0
550
Startups On Rails 2025 @ Tropical on Rails
irinanazarova
0
200
製造業の会計システムをDDDで開発した話
caddi_eng
3
1.1k
SREが実現する開発者体験の革新
sansantech
PRO
0
140
サーバシステムを無理なくコンテナ移行する際に伝えたい4つのポイント/Container_Happy_Migration_Method
ozawa
1
130
FinOps_Demo
tkhresk
0
120
新卒1年目のフロントエンド開発での取り組み/New grad front-end efforts
kaonavi
0
150
Featured
See All Featured
Mobile First: as difficult as doing things right
swwweet
223
9.6k
Designing for humans not robots
tammielis
251
25k
BBQ
matthewcrist
88
9.6k
How to Think Like a Performance Engineer
csswizardry
22
1.5k
Typedesign – Prime Four
hannesfritz
41
2.6k
Java REST API Framework Comparison - PWX 2021
mraible
29
8.5k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.4k
Raft: Consensus for Rubyists
vanstee
137
6.9k
RailsConf 2023
tenderlove
29
1k
Large-scale JavaScript Application Architecture
addyosmani
511
110k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
12
1.4k
The World Runs on Bad Software
bkeepers
PRO
67
11k
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