tdd e clean code
TRANSCRIPT
![Page 1: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/1.jpg)
TDDe
Clean Code
![Page 2: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/2.jpg)
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
![Page 3: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/3.jpg)
TDDTest Driven Development
![Page 4: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/4.jpg)
Criador
![Page 5: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/5.jpg)
“Comece pelos testes...”
![Page 6: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/6.jpg)
Todo palestrante fala isso!
![Page 7: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/7.jpg)
Mas como assim pelos testes?
![Page 8: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/8.jpg)
Critérios e User story são seus aliados
![Page 9: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/9.jpg)
Mapa do Tesouro
![Page 10: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/10.jpg)
Lembre-se
![Page 11: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/11.jpg)
Entenda o critério
![Page 12: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/12.jpg)
Faça falhar !
![Page 13: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/13.jpg)
Resolva de forma simples !
![Page 14: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/14.jpg)
Escute seu teste
![Page 15: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/15.jpg)
Refatore
![Page 16: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/16.jpg)
Reinicie o ciclo
![Page 17: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/17.jpg)
• Acabou ! Acabou !• Foto do galvão
Acabou, acabou !
![Page 18: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/18.jpg)
Evolua seu design
![Page 19: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/19.jpg)
E sem medo
![Page 20: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/20.jpg)
Pois você está protegido
![Page 21: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/21.jpg)
Tenha seu cinto de ferramentas
![Page 22: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/22.jpg)
Meu cinto de ferramentas
![Page 23: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/23.jpg)
Atinja o objetivo
![Page 24: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/24.jpg)
Clean Code
![Page 25: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/25.jpg)
O cara
![Page 26: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/26.jpg)
Por que Clean Code
![Page 27: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/27.jpg)
Lendo Código
![Page 28: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/28.jpg)
![Page 29: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/29.jpg)
Bagunça
![Page 30: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/30.jpg)
Insatisfação com a bagunça
![Page 31: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/31.jpg)
Insatisfação com o teu código
![Page 32: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/32.jpg)
Medo
![Page 33: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/33.jpg)
Impotência
![Page 34: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/34.jpg)
O que ou Como fazer?
![Page 35: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/35.jpg)
Nada, que se foda não foi eu quem fez
hahahahahahahahhahahaha
![Page 36: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/36.jpg)
![Page 37: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/37.jpg)
Profissional
![Page 38: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/38.jpg)
O que ou Como fazer?
![Page 39: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/39.jpg)
Iniciar certo
![Page 40: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/40.jpg)
Baby Step
![Page 41: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/41.jpg)
Como fazer?
![Page 42: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/42.jpg)
Com clean code? Mas o que é Clean code?
![Page 43: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/43.jpg)
Fazer com cuidado
![Page 44: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/44.jpg)
Revelar intenção
![Page 45: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/45.jpg)
Fácil de entender
![Page 46: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/46.jpg)
Satisfação
![Page 47: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/47.jpg)
![Page 48: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/48.jpg)
Simplicidade
![Page 49: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/49.jpg)
Simplicidade
![Page 50: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/50.jpg)
"Qualquer idiota é capaz de escrever código que um computador possa entender. Bons programadores
escrevem código que seres humanos podem entender”(Martin Fowler)
![Page 51: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/51.jpg)
Benefícios
![Page 52: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/52.jpg)
Refatoração
![Page 53: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/53.jpg)
Manutenção
![Page 54: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/54.jpg)
Custo
![Page 55: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/55.jpg)
Mito
![Page 56: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/56.jpg)
Diminuir BUGs
![Page 57: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/57.jpg)
![Page 58: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/58.jpg)
Exemplos
![Page 59: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/59.jpg)
// valor salarioprivate BigDecimal vl;
// total da comprapublic BigDecimal s1;
// descricao do produtopublic void desc;
![Page 60: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/60.jpg)
private BigDecimal valorSalario;
public BigDecimal totalCompra;
public void descricaoProduto;
![Page 61: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/61.jpg)
private BigDecimal valorSalario;public BigDecimal totalCompra;public void descricaoProduto;
![Page 62: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/62.jpg)
// calcular imposto de rendapublic void calcular();
// total a pagar para funcionáriospublic BigDecimal total();
// gerar relatório dos beneficiospublic void gerar();
![Page 63: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/63.jpg)
public void calcularImpostoDeRenda();
public BigDecimal totalPagarFuncionarios();
public void gerarRelatoriosBeneficios();
![Page 64: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/64.jpg)
public void calcularImpostoDeRenda();public BigDecimal totalPagarFuncionarios();public void gerarRelatoriosBeneficios();
![Page 65: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/65.jpg)
//calcular frete da entregapublic 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; }}
![Page 66: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/66.jpg)
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; }}
![Page 67: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/67.jpg)
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;}
![Page 68: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/68.jpg)
public void calcularFreteDaEntrega(){ if(naoTemFrete()){
this.taxa = this.valorCompra * 0; } else{
this.taxa = this. valorCompra * 0.03; }}
private boolean naoTemFrete(){ return this.distancia < 2100;}
![Page 69: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/69.jpg)
public void calcularFreteDaEntrega(){ this.taxa = 0; if(temFrete()) this.taxa = this. valorCompra * PERCENTUAL_CALCULO;}
private boolean temFrete(){ return this.distancia > DISTANCIA_MINIMA;}
![Page 70: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/70.jpg)
![Page 71: TDD e Clean Code](https://reader038.vdocuments.net/reader038/viewer/2022110121/558fc7c51a28ab804e8b47a3/html5/thumbnails/71.jpg)
@m_andreazza
/mauricio.webdev
/mauricioweb
@jorgeoleques
/joleques
/joleques
Maurício Andreazza Sganderla
Jorge Oleques