Princípios Básicos para Desenvolvedores

download

of 60

  • date post

    11-Jun-2015
  • Category

    Technology
  • view

    415
  • download

    3

Embed Size (px)

description

Introduo aos temas "Clean Code" e "Princpios de Design S.O.L.I.D"

transcript

  • 1. Princpios Bsicos para Desenvolvedores while(!(succeed=try())) Guilherme Reis

2. Agenda Dicas para iniciantes; Mau cheiro; Porque se importar com o cdigo; Cdigo limpo; Princpios bsicos de design; 3. Programao... 4. Programao lgica, no magia negra Eu gosto de programar, s no gosto de lgica (Ex- aluno de Computao) 5. Antes de codificar, pense no que quer/precisa fazer 6. No funcionar na primeira vez! Provavelmente nem na segunda ou terceira; 7. Mas quando funciona... 8. Trabalho em equipe 9. Maus cheiros Primeiramente usado por Kent Beck e citado por Martin Fowler; Indicao superficial de alerta problemas mais profundos no sistema; No so bugs, mas falhas no design: Atraso no desenvolvimento Risco de bugs e falhas no futuro Qualquer nariz consegue identificar; 10. Exemplos Classes e mtodos/funes enormes; Cdigo ilegvel; Cdigos repetidos; Cdigos redundantes; Mtodos/Funes com vrios parmetros; Baixa coeso*; Alto acoplamento*; 11. Baixa Coeso 12. Alto Acoplamento Forte dependncia entre componentes; Dificulta mudanas; Dificulta reaproveitamento de cdigo; 13. Alto Acoplamento 14. Fases de um projeto 15. Tudo muito bonito, limpo, elegante e convincente; Tudo funciona e as atividades so cumpridas como se esperava; Tudo flui conforme o cronograma... No comeo... 16. O importante funcionar... O cdigo comea a ter um cheiro desagradvel No comeo nem parece to ruim; Uma verruga aqui, uma gambiarra ali, mais tudo ainda parece bonito e funcional; No h tempo para organizao e melhorias; Em time que est ganhando no se meche; 17. A culpa no minha... 18. Tudo muda, tudo sempre mudar... Bugs comeam a aparecer; Mudanas nos requisitos comeam a surgir; Puxadinhos (Extenses) se tornam necessrios; Novos campos e botes so adicionados; Ento o cdigo comea a apodrecer e consequentemente, o cheiro fica insuportvel; 19. Como prevenir? Mnimo: Se importe com o cdigo gerado; Escrevendo um cdigo limpo; Preocupando-se com o design do software; Melhor ainda: Fazer revises de cdigos com a equipe; Escrevendo testes automatizados; Realizando refactors ao identificar maus cheiros no software; 20. Por que devo me importar? 21. Por que devo me importar? 22. Ciclo de um projeto 23. Preveno 24. Por que devo me importar? No s pelaos 20 centavos esttica: pelo TEMPO gasto! 25. Como assim tempo? O que fazemos em nosso tempo? Sim, os 20% que sobram aps o coffe break, pipi break, tea break, brief break, etc. Planejamos mudanas; Lemos (e muito) cdigo; Atuamos nos planos; Codificao de verdade? No muito... 26. Mais e o cdigo? Similar aos bancos de dados: Taxa de leitura:escrita de 10:1; No fazemos UPDATE e sim vrias sequncias de GET e PUT; Nosso crebro no um bom cache; 27. Tempo dinheiro! Como reduzir custos atravs do cdigo? Enchendo o projeto de estagirios? Tempo de leitura/entendimento; Seus colegas lero seus cdigos inmeras vezes Entender um mdulo leva 2 horas ou 5 minutos? Tempo de escrita/adaptao/manuteno; O software ir mudar: fato; Quo fcil ser esta mudana? Quanto do cdigo ser reaproveitado em outro projeto? 28. Pensando bem... 29. Cdigo limpo 30. Humanos