PHP Anti Patterns

2,158 views
1,938 views

Published on

1 Comment
2 Likes
Statistics
Notes
No Downloads
Views
Total views
2,158
On SlideShare
0
From Embeds
0
Number of Embeds
23
Actions
Shares
0
Downloads
46
Comments
1
Likes
2
Embeds 0
No embeds

No notes for slide

PHP Anti Patterns

  1. 1. PHP Anti-patterns O que NÃO fazer com PHP
  2. 2. Sobre mim • Theoziran Lima – Análise e Desenvolvimento de Sistemas (Faculdade iDEZ) – Analista de sistemas (Acade) – Desenvolvedor PHP (Shoprizer) – Colunista iMasters ... e eu não sou o carinha da capa...
  3. 3. O que são anti- patterns?
  4. 4. Significa fora do padrão, ou simplesmente ter maus hábitos, no nosso caso de codificação.
  5. 5. Porque devemos saber o que não fazer (anti-patterns)?
  6. 6. Geralmente iniciantes tendem a criar códigos utilizando “anti- patterns”
  7. 7. Porque vamos conhecer os problemas/erros que foram enfrentados por desenvolvedores mais experientes, assim não cometeremos os mesmos erros.
  8. 8. Então qual padrão de projeto devo usar?
  9. 9. Não existe isso, temos os padrões para resolver problemas específicos sendo tratados de forma genérica. • Padrões de criação – Factory – Singleton • Padrões estruturais – Adapter – Bridge ... vamos voltar aos anti-patterns
  10. 10. ... outro “problema” ...
  11. 11. PHP é fácil, também é mais fácil cometer erros • Quanto mais fácil a linguagem, mais fácil fazer gambiarras; • Por ser fácil, muitas pessoas desenvolvem sem ter nenhuma base (conceitos) de desenvolvimento de software; • O desenvolvedor se sente tentado a resolver o problema de forma mais rápida.
  12. 12. PHP é fácil, também é mais fácil cometer erros • Invasão de camadas, quando se está utilizando um MVC, ou pelo menos tentando.
  13. 13. “Nenhuma linguagem, framework, impede do desenvolvedor fazer gambiarra” Felipe Ribeiro, “PHP não é coisa de moleque” Esqueceram que somos os mestres das soluções?
  14. 14. Spaghetti é o padrão mais utilizado
  15. 15. No anti-pattern spaghetti, o “V” de MVC faz tudo.
  16. 16. É importante ter estilo ...
  17. 17. Estilos de codificação • Seu código não deve ser percebido dentro do sistema; • Sempre desenvolva com E_STRICT e E_NOTICE ativos; • Filtre suas entradas e escape suas saídas; • Quando possível utilize type-casts em suas funções ou métodos.
  18. 18. Use com cuidado • $_REQUEST • __get, __set, __isset, __unset • __call, __callStatic • __autoload • @ • <?=
  19. 19. “Evite” fazer gambiarras ... gambiarras ...
  20. 20. ... uma dia ela vai explodir ...
  21. 21. Não conte com a sorte para seu sistema funcionar
  22. 22. Framework, você tá brincando?
  23. 23. DIY – Do it yourself • Desperdício de tempo – Desenvolvimento – Testes – Documentação – Manutenção • Criar bus desnecessários
  24. 24. Overdesign • Limite-se a fazer o que o cliente deseja, ou ao que foi requisitado. • Não fique refazendo o sistema do zero todas vez que cometer um erro.
  25. 25. Overdesign • Quanto mais complexo for sua arquitetura: – O código será mais complexo; – Mais bugs você vai ter; – Mais tempo de desenvolvimento irá custar; – A probalidade o projeto falhar é alta.
  26. 26. PHP não é Java, C++, Python, Ruby on Rails <?php class String{ private $str; public function __construct($str){ $this->str = $str; } public function __toString(){ return $this->str; } }
  27. 27. ... KISS, ainda funciona ...
  28. 28. Pense em segurança em todas as fases do projeto Influenciará no design e no desenvolvimento
  29. 29. Dica Aproveitem pra estudar os patterns e os anti-patterns que vai nos poupar tempo de passar experiências desagradáveis.
  30. 30. Alguma dúvida ?
  31. 31. Referências • PHP Quebec Conference – http://conf.phpquebec.com/ • Wikipédia – Anti-patterns – Design Pattern
  32. 32. Sigam-me os bons... @theoziran www.theoziran.com.br

×