Maurício Andreazza Sganderla
•   Desenvolvedor na uMov.me
•   Aficionado por Agile
•   No mercado de T.I. há 8 anos
•   Formado em Sistemas de Informação

Jorge Oleques
•   Desenvolvedor na GetNet
•   Entusiasta XP
•   No mercado de T.I. há 6 anos
•   Formado Analise e Desenvolvimento
•   Pós-Graduando em Eng Software na FGV
TDD
Test Driven Development
Criador
“Comece pelos testes...”
Todo palestrante fala isso!
Mas como assim pelos testes?
Critérios e User story são seus aliados
Mapa do Tesouro
Lembre-se
Entenda o critério
Faça falhar !
Resolva de forma simples !
Escute seu teste
Refatore
Reinicie o ciclo
• Acabou ! Acabou !
• Foto do galvão




Acabou, acabou !
Evolua seu design
E sem medo
Pois você está protegido
Tenha seu cinto de ferramentas
Meu cinto de ferramentas
Atinja o objetivo
Clean Code
O cara
Por que Clean Code
Lendo Código
Bagunça
Insatisfação com a bagunça
Insatisfação com o teu código
Medo
Impotência
O que ou Como fazer?
Nada, que se foda não foi eu
         quem fez

hahahahahahahahhahahaha
Profissional
O que ou Como fazer?
Iniciar certo
Baby Step
Como fazer?
Com clean code? Mas o que é Clean code?
Fazer com cuidado
Revelar intenção
Fácil de entender
Satisfação
Simplicidade
Simplicidade
"Qualquer idiota é capaz de escrever código que um
 computador possa entender. Bons programadores
   escrevem código que seres humanos podem
             entender”(Martin Fowler)
Benefícios
Refatoração
Manutenção
Custo
Mito
Diminuir BUGs
Exemplos
// valor salario
private BigDecimal vl;

// total da compra
public BigDecimal s1;

// descricao do produto
public void desc;
private BigDecimal valorSalario;


public BigDecimal totalCompra;


public void descricaoProduto;
private BigDecimal valorSalario;
public BigDecimal totalCompra;
public void descricaoProduto;
// calcular imposto de renda
public void calcular();

// total a pagar para funcionários
public BigDecimal total();

// gerar relatório dos beneficios
public void gerar();
public void calcularImpostoDeRenda();


public BigDecimal totalPagarFuncionarios();


public void gerarRelatoriosBeneficios();
public void calcularImpostoDeRenda();
public BigDecimal totalPagarFuncionarios();
public void gerarRelatoriosBeneficios();
//calcular frete da entrega
public void calcular(){
    // menor que 2100 km não possui frete
    if(this.distancia < 2100 ){
          this.taxa = this.valorCompra * 0;
   } else{
          this.taxa = this. valorCompra * 0.03;
    }
}
public void calcularFreteDaEntrega(){
    // menor que 2100 km não possui frete
    if(this.distancia < 2100 ){
          this.taxa = this.valorCompra * 0;
   } else{
          this.taxa = this. valorCompra * 0.03;
    }
}
public void calcularFreteDaEntrega(){
    // menor que 2100 km não possui frete
    if(this.distancia < 2100 ){
          this.taxa = this.valorCompra * 0;
   } else{
          this.taxa = this. valorCompra * 0.03;
    }
}

private boolean naoTemFrete(){
  return this.distancia < 2100;
}
public void calcularFreteDaEntrega(){

     if(naoTemFrete()){
          this.taxa = this.valorCompra * 0;
    } else{
          this.taxa = this. valorCompra * 0.03;
     }
}

private boolean naoTemFrete(){
  return this.distancia < 2100;
}
public void calcularFreteDaEntrega(){
   this.taxa = 0;
   if(temFrete())
       this.taxa = this. valorCompra * PERCENTUAL_CALCULO;
}

private boolean temFrete(){
  return this.distancia > DISTANCIA_MINIMA;
}
Maurício Andreazza Sganderla
                @m_andreazza

                /mauricio.webdev

               /mauricioweb




     Jorge Oleques

               @jorgeoleques

               /joleques

               /joleques

TDD e Clean Code