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

Princípio DRY

  • 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 oDRY ??? 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 oDRY ??? 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