Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

A demanda da santa entrega Batman: bugs e gargalos em aplicações PHP

91 views

Published on

Esta palestra aborda: a necessidade e vantagens de utilização de um ambiente integrado de desenvolvimento e de como integrá-lo com ferramentas de linha de comando relacionadas à rotina de construção de software; e a questão da depuração de código, as técnicas para descoberta de causas de bugs e ferramentas para localizar gargalos no desempenho de aplicações PHP.

Published in: Software
  • Be the first to comment

  • Be the first to like this

A demanda da santa entrega Batman: bugs e gargalos em aplicações PHP

  1. 1. A Demanda da Santa Entrega, Batman FLÁVIO GOMES DA SILVA LISBOA www.fgsl.eti.br bugs e gargalos em aplicações PHP
  2. 2. Quem sou eu?
  3. 3. http://romocavaleirodoespaco.blogspot.com/
  4. 4. Necessidade e vantagens de utilização de um ambiente integrado de desenvolvimento
  5. 5. Fato “Apesar dos avanços alcançados até o presente momento em termos de reusabilidade, tem havido um crescimento continuado tanto em termos do tamanho quanto da complexidade dos sistemas de software”. (MENDES, 2002, p. 4)
  6. 6. Fato “Projeto de software é um problema perverso Horst Rittel e Melvin Webber definiram um ‘problema perverso’ como aquele que poderia ser claramente definido apenas por intermédio de sua solução ou pela solução de parte dele (1973). Esse paradoxo sugere, basicamente, que você precisa ‘resolver’ o problema uma vez pra defini-lo claramente e depois resolvê-lo mais uma vez, para criar uma solução que funcione”. (MCCONNELL, 2005, p. 106)
  7. 7. Fato “O projeto de software é um processo desordenado (mesmo que produza um resultado ordenado) […] O projeto de software é desordenado porque você dá muitos passos em falso e passa por muitos corredores escuros – você comete vários erros. Na verdade, cometer erros é o objetivo da atividade de projeto de software – é mais barato cometer erros e corrigir os projetos do que cometer os mesmo erros, reconhecê-los após a codificação e ter de corrigir o código completo”. (MCCONNELL, 2005, p. 107-108)
  8. 8. Fato “O projeto de software não é determinístico […] Pode até haver mais de uma maneira de escalpelar um gato, mas normalmente existem dezenas de maneiras de fazer o projeto de um programa de computador”. (MCCONNELL, 2005, p. 108)
  9. 9. Fato “O projeto de software é heurístico […] O projeto de software envolve ‘tentativa e erro’. Uma ferramenta ou técnica de projeto de software que tenha funcionado bem para uma tarefa ou para um aspecto de uma tarefa, pode não funcionar bem no projeto seguinte”. (MCCONNELL, 2005, p. 108)
  10. 10. Desafio “O principal desafio da computação é não bagunçar”. (DJIKSTRA, 1996, tradução nossa)
  11. 11. Desafio “Desenvolver software de qualidade assegurada, com elevada produtividade, dentro do prazo estabelecido e sem necessitar de mais recursos do que os alocados, tem sido o grande desafio da Engenharia de Software”. (FIORINI, VON STAA e BAPTISTA, 1998, p. 1)
  12. 12. Necessidade de um ambiente integrado de desenvolvimento
  13. 13. Emocionante, mas...
  14. 14. Não dá pra resolver tudo com uma ferramenta só
  15. 15. Uma sugestão de IDE
  16. 16. Por quê?
  17. 17. Eclipse PHP Development Tools
  18. 18. E não é só isso! Não é um ambiente é integrado? Integrado com o quê?
  19. 19. Integração com banco de dados
  20. 20. Integração com banco de dados
  21. 21. Integração com ferramentas PHP
  22. 22. Integração com controle de versão
  23. 23. E muito mais!
  24. 24. E as vantagens?
  25. 25. Controle centralizado
  26. 26. Produtividade Assim como ocorre com um padrão de projeto, uma IDE comum para uma equipe estabelece um vocabulário comum, facilitando comunicação, documentação e aprendizado.
  27. 27. Como integrar um IDE com ferramentas de linha de comando relacionadas à rotina de construção de software
  28. 28. External Tools Configuration
  29. 29. External Tools Configuration
  30. 30. A questão da depuração de código Derick Rethans
  31. 31. A questão da depuração de código zend_extension=xdebug.[so | dll] xdebug.remote_enable=1 xdebug.ini https://xdebug.org/docs/
  32. 32. A questão da depuração de código
  33. 33. A questão da depuração de código
  34. 34. Técnicas para descoberta de causas de bugs
  35. 35. Técnicas para descoberta de causas de bugs Coisas óbvias (ou não): ● Ler a mensagem de erro; ● Verificar a pilha de chamadas; Essa é a postura REATIVA.
  36. 36. Técnicas para descoberta de causas de bugs Coisas não tão óbvias: ● Usar exceções (e tratá-las sempre que possível); ● Usar níveis de log (Classe LogLevel – PSR); ● Usar TDD; ● Usar programação orientada a objetos. Essa é a postura PREVENTIVA.
  37. 37. Ferramentas para localizar gargalos no desempenho de aplicações PHP
  38. 38. Ferramentas para localizar gargalos no desempenho de aplicações PHP kcachegrind arquivo.out.algumacoisa
  39. 39. xdebug.ini xdebug.profiler_enable = 1 xdebug.profiler_output_dir = /var/log/php
  40. 40. Referências ● DJIKSTRA, Edsger. The next fifty years. 1996. <https://www.cs.utexas.edu/users/EWD/transcriptions/EWD12x x/EWD1243a.html> ● FIORINI, Soeli. VON STAA, Arndt. BAPTISTA, Renan M. Engenharia de software com CMM. Rio de Janeiro: Brasport, 1998. ● MCCONNELL, Steve. Code complete: um guia prático para a construção de software. 2.ed. Tradução: João Tortello. Porto Alegre: Bookman, 2005. ● MENDES, Antonio. Arquitetura de software: desenvolvimento orientado para arquitetura. Rio de Janeiro: Campus, 2002.
  41. 41. Obrigado www.fgsl.eti.br

×