SlideShare ist ein Scribd-Unternehmen logo
1 von 9
Princípio DRY
 1   Don’t Repeat Yourself (Nunca Repita Você Mesmo)


     Princípio criado por Andy Hunt e Dave Thomas documentado no livro
 2
     “The Pragmatic Programmer” de 1.999

     Principal finalidade é reduzir a duplicação de informações no sistema
 3
     (Documentação, Código, Testes, Banco de Dados)

     Informações duplicadas devem ser refatoradas
 4
     (Remover todas as linhas de código duplicadas)


 5   Deve ser aplicado a medida que colocamos novas linhas de código




                                                                             2
Porque aplicar o DRY ???
 1   Evitar linhas de código duplicadas


 2   Software mais limpo e menor (linhas de código, bytes (assembly))


 3   Software flexível e de fácil manutenção


     Forçar o desenvolvedor a olhar e conhecer melhor o código antes de
 4
     implementar uma nova funcionalidade


 5   Aplicar a técnica de POO (Encapsulamento)




                                                                          3
Como aplicar o DRY ???

             Localizar Código
                Duplicado




                          Encapsular Código
        Testar
                              Duplicado




                                              4
Código .NET - SEM DRY

protected void Button1_Click(object sender, EventArgs e)
{
  ClientScript.RegisterStartupScript(typeof(Page), “inclusao”,
  “alert(„Cliente incluido com sucesso‟);”, true);
}


protected void Button2_Click(object sender, EventArgs e)
{
  ClientScript.RegisterStartupScript(typeof(Page), “alteracao”,
  “alert(„Cliente alterado com sucesso‟);”, true);
}




                                                                  5
Código .NET - COM DRY

private void ExibirMensagem(String identificador, String mensagem)
{
  ClientScript.RegisterStartupScript(typeof(Page), identificador,
  “alert(„” + mensagem + “‟);”, true);
}


protected void Button1_Click(object sender, EventArgs e)
{
  ExibirMensagem(“inclusao”, “Cliente inserido com sucesso”);
}


protected void Button2_Click(object sender, EventArgs e)
{
  ExibirMensagem(“alteracao”, “Cliente alterado com sucesso”);
}



                                                                     6
Código CSS - SEM DRY

h1 {
  color: #FF0000;
  font-family: Arial;
}

h2 {
  color: #FF0000;
  font-family: Arial;
}

h3 {
  color: #FF0000;
  font-family: Arial;
}




                        7
Código CSS - COM DRY




h1, h2, h3, h4 {
  color: #FF0000;
  font-family: Arial;
}




                        8
Princípio DRY

Weitere ähnliche Inhalte

Ähnlich wie Princípio DRY

Visual Studio 2010 e C# 4
Visual Studio 2010 e C# 4Visual Studio 2010 e C# 4
Visual Studio 2010 e C# 4
CDS
 

Ähnlich wie Princípio DRY (20)

InterCon 2017 - Engenharia de segurança web: Proteja todas as camadas de seu ...
InterCon 2017 - Engenharia de segurança web: Proteja todas as camadas de seu ...InterCon 2017 - Engenharia de segurança web: Proteja todas as camadas de seu ...
InterCon 2017 - Engenharia de segurança web: Proteja todas as camadas de seu ...
 
TDC2018SP | Trilha Arq PHP - Seguranca de aplicacoes web com o uso de Boas pr...
TDC2018SP | Trilha Arq PHP - Seguranca de aplicacoes web com o uso de Boas pr...TDC2018SP | Trilha Arq PHP - Seguranca de aplicacoes web com o uso de Boas pr...
TDC2018SP | Trilha Arq PHP - Seguranca de aplicacoes web com o uso de Boas pr...
 
Demoiselle Behave - Parte 1
Demoiselle Behave - Parte 1Demoiselle Behave - Parte 1
Demoiselle Behave - Parte 1
 
Programação Orientada a Testes
Programação Orientada a TestesProgramação Orientada a Testes
Programação Orientada a Testes
 
One Language to Rule Them All: TypeScript
One Language to Rule Them All: TypeScriptOne Language to Rule Them All: TypeScript
One Language to Rule Them All: TypeScript
 
Palestra criando aplicações seguras com php (2)
Palestra  criando aplicações seguras com php (2)Palestra  criando aplicações seguras com php (2)
Palestra criando aplicações seguras com php (2)
 
PHP Desenvolvimento Seguro
PHP Desenvolvimento SeguroPHP Desenvolvimento Seguro
PHP Desenvolvimento Seguro
 
Python 08
Python 08Python 08
Python 08
 
Aula javascript
Aula  javascriptAula  javascript
Aula javascript
 
Pentest conisli07
Pentest conisli07Pentest conisli07
Pentest conisli07
 
Vale Security Conference - 2011 - 6 - Thiago Bordini
Vale Security Conference - 2011 - 6 - Thiago BordiniVale Security Conference - 2011 - 6 - Thiago Bordini
Vale Security Conference - 2011 - 6 - Thiago Bordini
 
CJR Apresenta: OWASP TOP10
CJR Apresenta: OWASP TOP10CJR Apresenta: OWASP TOP10
CJR Apresenta: OWASP TOP10
 
Java security
Java securityJava security
Java security
 
Testes de Segurança de Software (tech-ed 2008)
Testes de Segurança de Software (tech-ed 2008)Testes de Segurança de Software (tech-ed 2008)
Testes de Segurança de Software (tech-ed 2008)
 
C#4 - Parte 2 - COM interop e variância
C#4 - Parte 2 - COM interop e variânciaC#4 - Parte 2 - COM interop e variância
C#4 - Parte 2 - COM interop e variância
 
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEE
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEEAppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEE
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEE
 
Negócio Escrito em Código
Negócio Escrito em CódigoNegócio Escrito em Código
Negócio Escrito em Código
 
Visual Studio 2010 e C# 4
Visual Studio 2010 e C# 4Visual Studio 2010 e C# 4
Visual Studio 2010 e C# 4
 
PHP like a super hero
PHP like a super heroPHP like a super hero
PHP like a super hero
 
Robotium_Sikuli
Robotium_SikuliRobotium_Sikuli
Robotium_Sikuli
 

Mehr von Leonardo Lourenço Silva (20)

Introdução a Plataforma .NET
Introdução a Plataforma .NETIntrodução a Plataforma .NET
Introdução a Plataforma .NET
 
Resources no XAML
Resources no XAMLResources no XAML
Resources no XAML
 
Como se tornar um desenvolvedor faixa preta
Como se tornar um desenvolvedor faixa pretaComo se tornar um desenvolvedor faixa preta
Como se tornar um desenvolvedor faixa preta
 
Introdução ao WPF
Introdução ao WPFIntrodução ao WPF
Introdução ao WPF
 
Programação em Camadas - Iniciantes
Programação em Camadas - IniciantesProgramação em Camadas - Iniciantes
Programação em Camadas - Iniciantes
 
Visual F# 3.0 - Constantes, Variáveis e Classes
Visual F# 3.0 - Constantes, Variáveis e ClassesVisual F# 3.0 - Constantes, Variáveis e Classes
Visual F# 3.0 - Constantes, Variáveis e Classes
 
Introdução ao ORM
Introdução ao ORMIntrodução ao ORM
Introdução ao ORM
 
Expression Blend 5.0
Expression Blend 5.0Expression Blend 5.0
Expression Blend 5.0
 
1° Madrugada de Testes
1° Madrugada de Testes1° Madrugada de Testes
1° Madrugada de Testes
 
Mudança de Vida
Mudança de VidaMudança de Vida
Mudança de Vida
 
Evolução ASP.NET
Evolução ASP.NETEvolução ASP.NET
Evolução ASP.NET
 
Conhecendo o Windows 8
Conhecendo o Windows 8Conhecendo o Windows 8
Conhecendo o Windows 8
 
Introdução a Plataforma .NET 4.0
Introdução a Plataforma .NET 4.0Introdução a Plataforma .NET 4.0
Introdução a Plataforma .NET 4.0
 
ASP.NET Profile
ASP.NET ProfileASP.NET Profile
ASP.NET Profile
 
ASP.NET AJAX
ASP.NET AJAXASP.NET AJAX
ASP.NET AJAX
 
WCF
WCFWCF
WCF
 
Visual C# - Parâmetros Opcionais e Nomeados
Visual C# - Parâmetros Opcionais e NomeadosVisual C# - Parâmetros Opcionais e Nomeados
Visual C# - Parâmetros Opcionais e Nomeados
 
.NET - Interfaces
.NET - Interfaces.NET - Interfaces
.NET - Interfaces
 
SilverLight
SilverLightSilverLight
SilverLight
 
WPF | XBAP
WPF | XBAPWPF | XBAP
WPF | XBAP
 

Princípio DRY

  • 1.
  • 2. Princípio DRY 1 Don’t Repeat Yourself (Nunca Repita Você Mesmo) Princípio criado por Andy Hunt e Dave Thomas documentado no livro 2 “The Pragmatic Programmer” de 1.999 Principal finalidade é reduzir a duplicação de informações no sistema 3 (Documentação, Código, Testes, Banco de Dados) Informações duplicadas devem ser refatoradas 4 (Remover todas as linhas de código duplicadas) 5 Deve ser aplicado a medida que colocamos novas linhas de código 2
  • 3. Porque aplicar o DRY ??? 1 Evitar linhas de código duplicadas 2 Software mais limpo e menor (linhas de código, bytes (assembly)) 3 Software flexível e de fácil manutenção Forçar o desenvolvedor a olhar e conhecer melhor o código antes de 4 implementar uma nova funcionalidade 5 Aplicar a técnica de POO (Encapsulamento) 3
  • 4. Como aplicar o DRY ??? Localizar Código Duplicado Encapsular Código Testar Duplicado 4
  • 5. Código .NET - SEM DRY protected void Button1_Click(object sender, EventArgs e) { ClientScript.RegisterStartupScript(typeof(Page), “inclusao”, “alert(„Cliente incluido com sucesso‟);”, true); } protected void Button2_Click(object sender, EventArgs e) { ClientScript.RegisterStartupScript(typeof(Page), “alteracao”, “alert(„Cliente alterado com sucesso‟);”, true); } 5
  • 6. Código .NET - COM DRY private void ExibirMensagem(String identificador, String mensagem) { ClientScript.RegisterStartupScript(typeof(Page), identificador, “alert(„” + mensagem + “‟);”, true); } protected void Button1_Click(object sender, EventArgs e) { ExibirMensagem(“inclusao”, “Cliente inserido com sucesso”); } protected void Button2_Click(object sender, EventArgs e) { ExibirMensagem(“alteracao”, “Cliente alterado com sucesso”); } 6
  • 7. Código CSS - SEM DRY h1 { color: #FF0000; font-family: Arial; } h2 { color: #FF0000; font-family: Arial; } h3 { color: #FF0000; font-family: Arial; } 7
  • 8. Código CSS - COM DRY h1, h2, h3, h4 { color: #FF0000; font-family: Arial; } 8