SlideShare una empresa de Scribd logo
1 de 24
Descargar para leer sin conexión
É a Técnica de isolar partes do código com a mesma semântica
 em uma única representação lógica.




Propõe que cada porção de conhecimento possua uma representação
Única, autônoma e livre de ambiguidades em todo o sistema.




  Simplesmente Não se repita.
Repetir é Erado!
  Repetir é Erado!
                                Repetir é Erado!
             Repetir é Erado!
         Repetir é Erado!      Repetir é Erado!
                Repetir é Erado!
 Repetir é Erado!               Repetir é Erado!
           Repetir é Erado!     Repetir é Erado!
Repetir é Erado!Repetir é Erado! Repetir é Erado!
  Repetir é Erado! Repetir é Erado!
         Repetir é Erado!
                       Repetir é Erado!
  Repetir é Erado!
                    Repetir é Erado!
Repetir-se Aumenta os custos de manutenção
Repetir é Errado!
 Repetir é Errado!
                     Repetir é Errado!
 Repetir é Errado!              Repetir é Errado!
         Repetir é Errado!
                               Repetir é Errado!
Repetir é Errado!
                    Repetir é Errado!
         Repetir é Errado! Repetir é Errado!
 Repetir é Errado!      Repetir é Errado!
            Repetir é Erado! Repetir é Errado!
 Repetir é Errado! Repetir é Errado!
      Repetir é Errado!       Repetir é Errado!
Repetir-se pode omitir erros.
Repetir é Errado!
 Repetir é Errado!
                     Repetir é Errado!
 Repetir é Errado!              Repetir é Errado!
         Repetir é Errado!
                               Repetir é Errado!
Repetir é Errado!
                    Repetir é Errado!
         Repetir é Errado! Repetir é Errado!
 Repetir é Errado!      Repetir é Errado!
            Repetir é Errado! Repetir é Errado!
 Repetir é Errado! Repetir é Errado!
      Repetir é Errado!       Repetir é Errado!
Repetir-se é errado.
Um código Menor, mais limpo.
  Um código mais confiável.
Manutenção mais ágil e segura.
   Maior reaproveitamento.
Menos tempo lendo códigos.
    SIMPLISCIDADE.
No desenvolvimento.
 Na arquitetura.
       Na Documentação.
Em testes de todos os tipos.

Em todos os pontos onde
Há algum tipo de expressão
de conhecimento.
DRY influencia diretamente.
    Nos custos de se manter a aplicação.
 Na confiabilidade do código.
              No montante de código.
Na sua vida social, saúde e relacionamentos.
     Na simplicidade.
           Na legibilidade.
                  Na quantidade de erros.
Não repetir-se é difícil e
 requer esforço.
Usar Orientação a Objetos.
Usar o principio de
responsabilidade única.
Eliminar até as menores
repetições.
Ser forte e paciente.
StringBuilder sb = new StringBuilder();
      sb.AppendFormat("select ");
      sb.AppendFormat("Dimencao2 ");
      sb.AppendFormat("Dimencao3 ");
      sb.AppendFormat("Dimencao1 ");
      sb.AppendFormat("Dimencao4 ");
      sb.AppendFormat("Dimencao5 ");
      sb.AppendFormat("Dimencao6 ");
      sb.AppendFormat("Dimencao7 ");
…
      sb.AppendFormat("Dimencao48 ");
      sb.AppendFormat("Dimencao49 ");
      sb.AppendFormat("Dimencao50 ");
StringBuilder sb = new StringBuilder();

      sb.AppendFormat("select ");

      for (int i = 0; i <= 50; i++ )
        sb.AppendFormat("Dimencao{0} ",i);
GLAUBER DE ALMEIDA ASSUNÇÃO

@GLAUBERCODER

LOGIN NA XBOXLIVE: GLAUBERCODER

GLAUBER.FDIM@GMAIL.COM

Más contenido relacionado

Destacado

Infocapitales
InfocapitalesInfocapitales
Infocapitalespuyales
 
Uma aventura na escola_ GME
Uma aventura na escola_ GMEUma aventura na escola_ GME
Uma aventura na escola_ GMEmtorga_online
 
PEC - Escola Anselm Clavé
PEC - Escola Anselm ClavéPEC - Escola Anselm Clavé
PEC - Escola Anselm Clavéa8023566
 
Hallgrímur Pétursson
Hallgrímur PéturssonHallgrímur Pétursson
Hallgrímur Péturssonoldusel
 
Dempeo ii segunda parte +1
Dempeo ii   segunda parte +1Dempeo ii   segunda parte +1
Dempeo ii segunda parte +1Bianca Martins
 
Dempeo ii oitava parte
Dempeo ii   oitava parteDempeo ii   oitava parte
Dempeo ii oitava parteBianca Martins
 
Tecniques 1. negociació segons principis
Tecniques 1. negociació segons principisTecniques 1. negociació segons principis
Tecniques 1. negociació segons principisthneuncet
 
A s c a m k blog
A s c a m k blogA s c a m k blog
A s c a m k blogjamsom
 
História da literatura brasileira romantismo
História da literatura brasileira romantismoHistória da literatura brasileira romantismo
História da literatura brasileira romantismoJúnior Souza
 
Emp. taguatinga (2)
Emp. taguatinga (2)Emp. taguatinga (2)
Emp. taguatinga (2)Roberto Braz
 
1º Projeto: ReUCAnto
1º Projeto: ReUCAnto1º Projeto: ReUCAnto
1º Projeto: ReUCAntoorquideadf
 

Destacado (19)

Chinese Summer School
Chinese Summer SchoolChinese Summer School
Chinese Summer School
 
Infocapitales
InfocapitalesInfocapitales
Infocapitales
 
Uma aventura na escola_ GME
Uma aventura na escola_ GMEUma aventura na escola_ GME
Uma aventura na escola_ GME
 
PEC - Escola Anselm Clavé
PEC - Escola Anselm ClavéPEC - Escola Anselm Clavé
PEC - Escola Anselm Clavé
 
Hallgrímur Pétursson
Hallgrímur PéturssonHallgrímur Pétursson
Hallgrímur Pétursson
 
Foto Galería
Foto GaleríaFoto Galería
Foto Galería
 
Autos
AutosAutos
Autos
 
Dempeo ii segunda parte +1
Dempeo ii   segunda parte +1Dempeo ii   segunda parte +1
Dempeo ii segunda parte +1
 
Practica 17
Practica 17Practica 17
Practica 17
 
T1 p2 d1
T1 p2 d1T1 p2 d1
T1 p2 d1
 
Dempeo ii oitava parte
Dempeo ii   oitava parteDempeo ii   oitava parte
Dempeo ii oitava parte
 
Tecniques 1. negociació segons principis
Tecniques 1. negociació segons principisTecniques 1. negociació segons principis
Tecniques 1. negociació segons principis
 
A s c a m k blog
A s c a m k blogA s c a m k blog
A s c a m k blog
 
O ceo nocturno
O ceo nocturnoO ceo nocturno
O ceo nocturno
 
Con un-boli-bic
Con un-boli-bicCon un-boli-bic
Con un-boli-bic
 
História da literatura brasileira romantismo
História da literatura brasileira romantismoHistória da literatura brasileira romantismo
História da literatura brasileira romantismo
 
Emp. taguatinga (2)
Emp. taguatinga (2)Emp. taguatinga (2)
Emp. taguatinga (2)
 
1º Projeto: ReUCAnto
1º Projeto: ReUCAnto1º Projeto: ReUCAnto
1º Projeto: ReUCAnto
 
Spot
Spot Spot
Spot
 

Similar a LT 07 - Glauber de Almeida - DRY

Da academia para o mercado de software
Da academia para o mercado de softwareDa academia para o mercado de software
Da academia para o mercado de softwareEric Muniz
 
Vamos falar de Clean Code, Refatoração e TDD
Vamos falar de Clean Code, Refatoração e TDDVamos falar de Clean Code, Refatoração e TDD
Vamos falar de Clean Code, Refatoração e TDDDomingos Teruel
 
Testes + Automacao + Atitude = Toolkit para a melhoria continua
Testes + Automacao + Atitude = Toolkit para a melhoria continuaTestes + Automacao + Atitude = Toolkit para a melhoria continua
Testes + Automacao + Atitude = Toolkit para a melhoria continuaGuilherme Elias
 
A Maldição da Fábrica de Software Ágil (The Curse of the Agile Software Factory)
A Maldição da Fábrica de Software Ágil (The Curse of the Agile Software Factory)A Maldição da Fábrica de Software Ágil (The Curse of the Agile Software Factory)
A Maldição da Fábrica de Software Ágil (The Curse of the Agile Software Factory)Phil Calçado
 
A culpa é de todos: reduzindo o "gap" entre Dev e Ops
A culpa é de todos: reduzindo o "gap" entre Dev e OpsA culpa é de todos: reduzindo o "gap" entre Dev e Ops
A culpa é de todos: reduzindo o "gap" entre Dev e OpsFlaudísio Tolentino
 

Similar a LT 07 - Glauber de Almeida - DRY (9)

Palestra Testes De Unidade Com JUnit
Palestra Testes De Unidade Com JUnitPalestra Testes De Unidade Com JUnit
Palestra Testes De Unidade Com JUnit
 
O que é ser um bom programador?
O que é ser um bom programador?O que é ser um bom programador?
O que é ser um bom programador?
 
Da academia para o mercado de software
Da academia para o mercado de softwareDa academia para o mercado de software
Da academia para o mercado de software
 
Clean Code
Clean CodeClean Code
Clean Code
 
Vamos falar de Clean Code, Refatoração e TDD
Vamos falar de Clean Code, Refatoração e TDDVamos falar de Clean Code, Refatoração e TDD
Vamos falar de Clean Code, Refatoração e TDD
 
Testes + Automacao + Atitude = Toolkit para a melhoria continua
Testes + Automacao + Atitude = Toolkit para a melhoria continuaTestes + Automacao + Atitude = Toolkit para a melhoria continua
Testes + Automacao + Atitude = Toolkit para a melhoria continua
 
A Maldição da Fábrica de Software Ágil (The Curse of the Agile Software Factory)
A Maldição da Fábrica de Software Ágil (The Curse of the Agile Software Factory)A Maldição da Fábrica de Software Ágil (The Curse of the Agile Software Factory)
A Maldição da Fábrica de Software Ágil (The Curse of the Agile Software Factory)
 
Clean Code na prática
Clean Code na práticaClean Code na prática
Clean Code na prática
 
A culpa é de todos: reduzindo o "gap" entre Dev e Ops
A culpa é de todos: reduzindo o "gap" entre Dev e OpsA culpa é de todos: reduzindo o "gap" entre Dev e Ops
A culpa é de todos: reduzindo o "gap" entre Dev e Ops
 

Más de DNAD

LT 03 - Juan Lopes - Complexidade algoritmos
LT 03 - Juan Lopes - Complexidade algoritmosLT 03 - Juan Lopes - Complexidade algoritmos
LT 03 - Juan Lopes - Complexidade algoritmosDNAD
 
LT 05 - Ismael Apolinário - Importancia participacao cliente
LT 05 - Ismael Apolinário - Importancia participacao clienteLT 05 - Ismael Apolinário - Importancia participacao cliente
LT 05 - Ismael Apolinário - Importancia participacao clienteDNAD
 
LT 09 - Victor Cavalcante - Arquitetura não é só server side
LT 09 - Victor Cavalcante - Arquitetura não é só server sideLT 09 - Victor Cavalcante - Arquitetura não é só server side
LT 09 - Victor Cavalcante - Arquitetura não é só server sideDNAD
 
LT 08 - Guilherme Silveira - Cache hipermidia
LT 08 - Guilherme Silveira - Cache hipermidiaLT 08 - Guilherme Silveira - Cache hipermidia
LT 08 - Guilherme Silveira - Cache hipermidiaDNAD
 
LT 06 - Douglas Aguiar - Quem nao se comunica se trumbica
LT 06 - Douglas Aguiar - Quem nao se comunica se trumbicaLT 06 - Douglas Aguiar - Quem nao se comunica se trumbica
LT 06 - Douglas Aguiar - Quem nao se comunica se trumbicaDNAD
 
LT 02 - Rodrigo Kumpera - Rodando c sharp
LT 02 - Rodrigo Kumpera - Rodando c sharpLT 02 - Rodrigo Kumpera - Rodando c sharp
LT 02 - Rodrigo Kumpera - Rodando c sharpDNAD
 
LT 01 - Rodrigo Yoshima - Business vsarchitecture
LT 01 - Rodrigo Yoshima - Business vsarchitectureLT 01 - Rodrigo Yoshima - Business vsarchitecture
LT 01 - Rodrigo Yoshima - Business vsarchitectureDNAD
 
LT 04 - Denis Ferrari - Como lidar com as dificuldades da primeira sprint - dnad
LT 04 - Denis Ferrari - Como lidar com as dificuldades da primeira sprint - dnadLT 04 - Denis Ferrari - Como lidar com as dificuldades da primeira sprint - dnad
LT 04 - Denis Ferrari - Como lidar com as dificuldades da primeira sprint - dnadDNAD
 
02a - Leandro Daniel - Examinando a arquitetura evolucionária
02a -  Leandro Daniel - Examinando a arquitetura evolucionária02a -  Leandro Daniel - Examinando a arquitetura evolucionária
02a - Leandro Daniel - Examinando a arquitetura evolucionáriaDNAD
 
09 - Fábio Akita - Além do rails
09 - Fábio Akita - Além do rails09 - Fábio Akita - Além do rails
09 - Fábio Akita - Além do railsDNAD
 
07 - Osvaldo Daibert - Cenários para cache de dados distribuidos
07  - Osvaldo Daibert - Cenários para cache de dados distribuidos07  - Osvaldo Daibert - Cenários para cache de dados distribuidos
07 - Osvaldo Daibert - Cenários para cache de dados distribuidosDNAD
 
08 - Otavio Pecego - Arquitetura e nuvem: o que muda?
08 - Otavio Pecego - Arquitetura e nuvem: o que muda?08 - Otavio Pecego - Arquitetura e nuvem: o que muda?
08 - Otavio Pecego - Arquitetura e nuvem: o que muda?DNAD
 
06 - Giovanni Bassi - CQS, CQRS, DDD, DbC, DDDD
06 - Giovanni Bassi - CQS, CQRS, DDD, DbC, DDDD06 - Giovanni Bassi - CQS, CQRS, DDD, DbC, DDDD
06 - Giovanni Bassi - CQS, CQRS, DDD, DbC, DDDDDNAD
 
05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI
05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI
05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TIDNAD
 
02c - Vinicius Quaiato - Over Patternization, YAGNI, KISS
02c - Vinicius Quaiato - Over Patternization, YAGNI, KISS02c - Vinicius Quaiato - Over Patternization, YAGNI, KISS
02c - Vinicius Quaiato - Over Patternization, YAGNI, KISSDNAD
 
02b - Elemar Jr. - Examinando a Arquitetura Evolucionária
02b  - Elemar Jr. - Examinando a Arquitetura Evolucionária02b  - Elemar Jr. - Examinando a Arquitetura Evolucionária
02b - Elemar Jr. - Examinando a Arquitetura EvolucionáriaDNAD
 
04 - Felipe Oliveira - Think Decoupled! (SOA)
04 - Felipe Oliveira - Think Decoupled! (SOA)04 - Felipe Oliveira - Think Decoupled! (SOA)
04 - Felipe Oliveira - Think Decoupled! (SOA)DNAD
 
01 - Giovanni Bassi - Keynote
01 - Giovanni Bassi - Keynote01 - Giovanni Bassi - Keynote
01 - Giovanni Bassi - KeynoteDNAD
 

Más de DNAD (18)

LT 03 - Juan Lopes - Complexidade algoritmos
LT 03 - Juan Lopes - Complexidade algoritmosLT 03 - Juan Lopes - Complexidade algoritmos
LT 03 - Juan Lopes - Complexidade algoritmos
 
LT 05 - Ismael Apolinário - Importancia participacao cliente
LT 05 - Ismael Apolinário - Importancia participacao clienteLT 05 - Ismael Apolinário - Importancia participacao cliente
LT 05 - Ismael Apolinário - Importancia participacao cliente
 
LT 09 - Victor Cavalcante - Arquitetura não é só server side
LT 09 - Victor Cavalcante - Arquitetura não é só server sideLT 09 - Victor Cavalcante - Arquitetura não é só server side
LT 09 - Victor Cavalcante - Arquitetura não é só server side
 
LT 08 - Guilherme Silveira - Cache hipermidia
LT 08 - Guilherme Silveira - Cache hipermidiaLT 08 - Guilherme Silveira - Cache hipermidia
LT 08 - Guilherme Silveira - Cache hipermidia
 
LT 06 - Douglas Aguiar - Quem nao se comunica se trumbica
LT 06 - Douglas Aguiar - Quem nao se comunica se trumbicaLT 06 - Douglas Aguiar - Quem nao se comunica se trumbica
LT 06 - Douglas Aguiar - Quem nao se comunica se trumbica
 
LT 02 - Rodrigo Kumpera - Rodando c sharp
LT 02 - Rodrigo Kumpera - Rodando c sharpLT 02 - Rodrigo Kumpera - Rodando c sharp
LT 02 - Rodrigo Kumpera - Rodando c sharp
 
LT 01 - Rodrigo Yoshima - Business vsarchitecture
LT 01 - Rodrigo Yoshima - Business vsarchitectureLT 01 - Rodrigo Yoshima - Business vsarchitecture
LT 01 - Rodrigo Yoshima - Business vsarchitecture
 
LT 04 - Denis Ferrari - Como lidar com as dificuldades da primeira sprint - dnad
LT 04 - Denis Ferrari - Como lidar com as dificuldades da primeira sprint - dnadLT 04 - Denis Ferrari - Como lidar com as dificuldades da primeira sprint - dnad
LT 04 - Denis Ferrari - Como lidar com as dificuldades da primeira sprint - dnad
 
02a - Leandro Daniel - Examinando a arquitetura evolucionária
02a -  Leandro Daniel - Examinando a arquitetura evolucionária02a -  Leandro Daniel - Examinando a arquitetura evolucionária
02a - Leandro Daniel - Examinando a arquitetura evolucionária
 
09 - Fábio Akita - Além do rails
09 - Fábio Akita - Além do rails09 - Fábio Akita - Além do rails
09 - Fábio Akita - Além do rails
 
07 - Osvaldo Daibert - Cenários para cache de dados distribuidos
07  - Osvaldo Daibert - Cenários para cache de dados distribuidos07  - Osvaldo Daibert - Cenários para cache de dados distribuidos
07 - Osvaldo Daibert - Cenários para cache de dados distribuidos
 
08 - Otavio Pecego - Arquitetura e nuvem: o que muda?
08 - Otavio Pecego - Arquitetura e nuvem: o que muda?08 - Otavio Pecego - Arquitetura e nuvem: o que muda?
08 - Otavio Pecego - Arquitetura e nuvem: o que muda?
 
06 - Giovanni Bassi - CQS, CQRS, DDD, DbC, DDDD
06 - Giovanni Bassi - CQS, CQRS, DDD, DbC, DDDD06 - Giovanni Bassi - CQS, CQRS, DDD, DbC, DDDD
06 - Giovanni Bassi - CQS, CQRS, DDD, DbC, DDDD
 
05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI
05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI
05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI
 
02c - Vinicius Quaiato - Over Patternization, YAGNI, KISS
02c - Vinicius Quaiato - Over Patternization, YAGNI, KISS02c - Vinicius Quaiato - Over Patternization, YAGNI, KISS
02c - Vinicius Quaiato - Over Patternization, YAGNI, KISS
 
02b - Elemar Jr. - Examinando a Arquitetura Evolucionária
02b  - Elemar Jr. - Examinando a Arquitetura Evolucionária02b  - Elemar Jr. - Examinando a Arquitetura Evolucionária
02b - Elemar Jr. - Examinando a Arquitetura Evolucionária
 
04 - Felipe Oliveira - Think Decoupled! (SOA)
04 - Felipe Oliveira - Think Decoupled! (SOA)04 - Felipe Oliveira - Think Decoupled! (SOA)
04 - Felipe Oliveira - Think Decoupled! (SOA)
 
01 - Giovanni Bassi - Keynote
01 - Giovanni Bassi - Keynote01 - Giovanni Bassi - Keynote
01 - Giovanni Bassi - Keynote
 

LT 07 - Glauber de Almeida - DRY

  • 1.
  • 2.
  • 3.
  • 4.
  • 5. É a Técnica de isolar partes do código com a mesma semântica em uma única representação lógica. Propõe que cada porção de conhecimento possua uma representação Única, autônoma e livre de ambiguidades em todo o sistema. Simplesmente Não se repita.
  • 6.
  • 7. Repetir é Erado! Repetir é Erado! Repetir é Erado! Repetir é Erado! Repetir é Erado! Repetir é Erado! Repetir é Erado! Repetir é Erado! Repetir é Erado! Repetir é Erado! Repetir é Erado! Repetir é Erado!Repetir é Erado! Repetir é Erado! Repetir é Erado! Repetir é Erado! Repetir é Erado! Repetir é Erado! Repetir é Erado! Repetir é Erado!
  • 8. Repetir-se Aumenta os custos de manutenção
  • 9. Repetir é Errado! Repetir é Errado! Repetir é Errado! Repetir é Errado! Repetir é Errado! Repetir é Errado! Repetir é Errado! Repetir é Errado! Repetir é Errado! Repetir é Errado! Repetir é Errado! Repetir é Errado! Repetir é Errado! Repetir é Erado! Repetir é Errado! Repetir é Errado! Repetir é Errado! Repetir é Errado! Repetir é Errado!
  • 11. Repetir é Errado! Repetir é Errado! Repetir é Errado! Repetir é Errado! Repetir é Errado! Repetir é Errado! Repetir é Errado! Repetir é Errado! Repetir é Errado! Repetir é Errado! Repetir é Errado! Repetir é Errado! Repetir é Errado! Repetir é Errado! Repetir é Errado! Repetir é Errado! Repetir é Errado! Repetir é Errado! Repetir é Errado!
  • 13.
  • 14. Um código Menor, mais limpo. Um código mais confiável. Manutenção mais ágil e segura. Maior reaproveitamento. Menos tempo lendo códigos. SIMPLISCIDADE.
  • 15.
  • 16. No desenvolvimento. Na arquitetura. Na Documentação. Em testes de todos os tipos. Em todos os pontos onde Há algum tipo de expressão de conhecimento.
  • 17.
  • 18. DRY influencia diretamente. Nos custos de se manter a aplicação. Na confiabilidade do código. No montante de código. Na sua vida social, saúde e relacionamentos. Na simplicidade. Na legibilidade. Na quantidade de erros.
  • 19.
  • 20. Não repetir-se é difícil e requer esforço. Usar Orientação a Objetos. Usar o principio de responsabilidade única. Eliminar até as menores repetições. Ser forte e paciente.
  • 21.
  • 22. StringBuilder sb = new StringBuilder(); sb.AppendFormat("select "); sb.AppendFormat("Dimencao2 "); sb.AppendFormat("Dimencao3 "); sb.AppendFormat("Dimencao1 "); sb.AppendFormat("Dimencao4 "); sb.AppendFormat("Dimencao5 "); sb.AppendFormat("Dimencao6 "); sb.AppendFormat("Dimencao7 "); … sb.AppendFormat("Dimencao48 "); sb.AppendFormat("Dimencao49 "); sb.AppendFormat("Dimencao50 ");
  • 23. StringBuilder sb = new StringBuilder(); sb.AppendFormat("select "); for (int i = 0; i <= 50; i++ ) sb.AppendFormat("Dimencao{0} ",i);
  • 24. GLAUBER DE ALMEIDA ASSUNÇÃO @GLAUBERCODER LOGIN NA XBOXLIVE: GLAUBERCODER GLAUBER.FDIM@GMAIL.COM