Slide 1

Slide 1 text

SOLID Dependency Inversion Principle

Slide 2

Slide 2 text

O que é? Onde vive?

Slide 3

Slide 3 text

Falando um pouco de SOLID...

Slide 4

Slide 4 text

Imagine um cenário

Slide 5

Slide 5 text

Temos um software novo para escrever

Slide 6

Slide 6 text

No começo é aquela alegria

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

As mudanças são simples, a velocidade é boa

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

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."

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

"Abstrações não devem depender de detalhes. Detalhes devem depender de abstrações."

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

class Copier def self.copy reader = KeyboardReader.new writer = Printer.new keystrokes = reader.read_until_eof writer.write(keystrokes) end end

Slide 16

Slide 16 text

class Copier def initialize(reader, writer) @reader = reader @writer = writer end def copy @writer.write(@reader.read_until_eof) end end

Slide 17

Slide 17 text

No content