tdd com clean code: chega de amadorismo!

Download TDD com Clean Code: Chega de amadorismo!

Post on 18-Nov-2014

203 views

Category:

Software

0 download

Embed Size (px)

DESCRIPTION

Tdd com clean code: chega de amadorismo!

TRANSCRIPT

  • 1. TDD com Clean Code Chega de amadorismo!
  • 2. Alison Rodrigues de Souza Motociclista Programador JAVA Agilista Certificado Scrum Master
  • 3. Andr Dias Lima Programador JAVA Agilista Ps-graduando em Metodos geis
  • 4. O mundo est cheio de gambiarras...
  • 5. WTF?
  • 6. Amadorismo Significado de Amador segundo Aurlio: (...) Que pratica qualquer arte ou esporte, sem ser um profissional.(...)
  • 7. Desenvolvedor Profissional Qualquer tolo pode escrever cdigo que um computador consiga entender. Bons programadores escrevem cdigo que HUMANOS consigam entender.
  • 8. Martin Fowler martinfowler.com
  • 9. Ento como podemos criar cdigo que humanos possam entender?
  • 10. Robert Martin = Uncle Bob
  • 11. ...Um cdigo limpo simples e direto... Grady Booch
  • 12. Big Dave Thomas Alm do seu criador, um desenvolvedor pode ler e melhorar um cdigo limpo...
  • 13. Ron jeffries Expressa todas as ideias do projeto que esto no sistema.
  • 14. Ward Cunningham Voc sabe que est criando um cdigo limpo quando cada rotina que voc le se mostra como voc esperava...
  • 15. Clean Code Simples e direto, um desenvolvedor pode ler. Cada rotina que voc le mostra como voc expressa todas as ideias.
  • 16. Nomes significativos Faa distines significativas, use nomes diferentes dentro de um mesmo escopo. Nomes como a1, a2, a3 so o oposto de nomes que demonstram inteno - so confusos e no informam nada.
  • 17. Nomes significativos Evite tambm usar abreviaes ou trocadilhos, escreva exatamente o que voc quer dizer, o nome deve ser auto-explicativo.
  • 18. Nomes significativos comprovado que um desenvolvedor passa muito mais tempo lendo cdigo do que escrevendo, por isso no se preocupe em economizar caracteres ao escolher um nome.
  • 19. Comentrios Comentrios podem ser teis se colocados nos lugares certos, mas tambm podem ser mentirosos e trazer desinformao.
  • 20. Comentrios Na verdade, o melhor comentrio aquele que no precisa ser escrito. Um dos principais motivos para voc escrever um comentrio porque o cdigo est difcil de ser entendido.
  • 21. Comentrios Voc acha que o cdigo ficou meio confuso e acha melhor adicionar um comentrio? No, voc precisa refatorar!
  • 22. Mtodo Mtodos devem conter no mximo 20 linhas e seu nvel de identao no pode ser maior que dois.
  • 23. Mtodo Quanto ao contedo, um mtodo deve ter somente UMA responsabilidade.
  • 24. Classes e Formatao A legibilidade do cdigo ter profundo efeito sobre todas as mudanas que sero feitas, seu estilo e disciplina sobrevive sobre estas mudanas. Procure escrever classes com no mximo 500 linhas, classes menores so mais fceis de se entender. J para as linhas de cdigo, tente estabelecer um limite de caracteres por linha.
  • 25. Classes e Formatao Uma boa identao ajuda a visualizar melhor todo o escopo e facilita a identificao de situaes e regras relevantes.
  • 26. Classes e Formatao Tente manter conceitos relacionados mais prximos verticalmente, para criar um fluxo na leitura do cdigo.
  • 27. Classes e Formatao Use espaos entre operadores, parmetros e vrgulas.
  • 28. Classes e Formatao Evite deixar o cdigo todo grudado.
  • 29. Tratamentos de erros Prefira lanar uma exception ao invs de retornar um cdigo de erro, estes retornos desorganizam a chamada do mtodo.
  • 30. Tipos de testes
  • 31. Kent Beck
  • 32. No existe desenvolvedor profissional que no faa testes unitrios no seu cdigo! Klaus Wuestefeld
  • 33. Unit Test (2 a 7 linhas)
  • 34. Service (Mximo 20 linhas)
  • 35. Por que usar TDD?
  • 36. Bateria de testes cresce
  • 37. O cdigo j nasce testado
  • 38. Me faz pensar no requisito
  • 39. Simplicidade
  • 40. Me ajuda no design
  • 41. Maior segurana para mudanas
  • 42. Exemplos de testes
  • 43. TDD em Cdigo legado
  • 44. TDD em Cdigo legado
  • 45. #SomosTodosProgramadores
  • 46. Obrigado!
  • 47. Contatos Site/Blog: alisonsouza.com.br Twitter: @AlisonRSouza GitHub: AlisonSouza E-mail: contato@alisonsouza.com.br