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
ナレッジグラフとLLMの相互利用
koujikozaki
0
430
あなたの知らないiOS開発の世界
recruitengineers
PRO
3
190
QAに対する超個人的な解釈 / Personal Take on QA
toma_sm
1
160
Developer Experienceを向上させる基盤づくりの取り組み事例集
coconala_engineer
0
160
2024年のナビゲーション・フォーカス対応:Composeでキーボード・ナビゲーションをサポートしよう
tahia910
0
110
ついに出た!OpenAIの最新モデル「o1」って何がすごいの?
minorun365
PRO
3
1.3k
2ヶ月かかるDBアップグレード検証を最大2週間に短縮した自作Go製CLIツール「Platinum」を紹介する / Introducing Go CLI tool "Platinum" for shortened DB upgrade validation
vtryo
2
120
Next.js のページ遷移を全力で止める
ypresto
9
3.6k
言葉は感情の近似値である。その感情と言葉の誤差を最小化しよう ~コミュニケーションにおけるアナログ/デジタル変換の課題に立ち向かう~
nktamago
0
250
Segment Anything Model 2
tenten0727
3
720
フロントエンド開発事例① LINEギフト
lycorptech_jp
PRO
0
100
【株式会社ELYZA】|GENIAC成果報告会 自社開発モデルプレゼンテーション
elyza
1
420
Featured
See All Featured
What's new in Ruby 2.0
geeforr
340
31k
From Idea to $5000 a Month in 5 Months
shpigford
379
46k
How to Ace a Technical Interview
jacobian
274
23k
Code Reviewing Like a Champion
maltzj
517
39k
Testing 201, or: Great Expectations
jmmastey
36
7k
Unsuck your backbone
ammeep
667
57k
Learning to Love Humans: Emotional Interface Design
aarron
270
40k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
24
610
RailsConf 2023
tenderlove
28
820
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
0
130
Designing Experiences People Love
moore
138
23k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
354
29k
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