Refatorar é Preciso!
Uma visão Técnica e Filosófica
Daniel Archer
PHP Conference 2015 - SP
Eu sou eu
Não sou vocês...
Eu sou eu
Daniel Archer
● Programador PHP at KingHost
● Zend Certified PHP
● Palestrante
● Grupo de Usuários PHPRS
● Astrô...
Trabalhar !== Estudar
Você escreve bem?
Aprendemos a escrever, lendo...
Mudança === Evolução
Prevalece o mais adaptado
Parar no tempo === Extinção
Antes do refactoring...
77
87
Agora vai!
...onde Estamos
● 1972 - C
● 1983 - C++
● 1987 - Pearl
● 1991 - Java
● 1991 - Python
● 1995 - PHP
● 2000 - C#
● 2004 - PHP5
Ok… chega de teoria
Refactoring
Código antigo funciona, mas será que funciona bem?
Refactoring
Código antigo funciona, mas será que funciona bem?
Posso reutilizar o meu código neste novo projeto?
Refactoring
Código antigo funciona, mas será que funciona bem?
Posso reutilizar o meu código neste novo projeto?
Outra pes...
O que eu posso usar?
O que eu posso usar?
A melhor ferramenta do mercado…
Bom senso!
O que eu posso usar?
Obrigado!
O que eu posso usar?
… ok vamos continuar.
S.O.L.I.D
S.O.L.I.D
Single Responsability
S.O.L.I.D
Open/Close Principle
Open for extensions, close for modification.
S.O.L.I.D
Liskov Substitution
S.O.L.I.D
Interface Segregation
S.O.L.I.D
Dependency Invertion
...tem mais
Object
Calisthenics
...sim, enorme desse jeito.
PHP-FIG
PSRs para uma vida melhor… standards
Exemplos ...muitos exemplos!
“Refactoring changes the programs in
small steps. If you make a mistake, it is
easy to find the bug.”
- Kent Beck
[exemplo 1 - Primeiros passos]
Refactoring de Código Estruturado
https://github.com/sebastianbergmann/phpcpd
Copy / Paste Detector
Refactoring de Arquitetura
Refactoring de Objetos
https://github.com/domnikl/DesignPatternsPHP
Exemplos de Design Patterns em PHP
Factory
Strategy
Observer
O que aprendemos até aqui?
Siga Padrões
Não tenha medo
de reorganizar
● Define um padrão
com a sua equipe
● Siga esses padrões
● Altere o padrão se
ele não se ada...
Quanto menor,
Melhor!
● Sempre diminua o
acoplamento
● Defina
responsabilidades
● Nomes longos é um
possível excesso de
re...
Eu sou eu
Não sou vocês…
Eu não programo como vocês.
Por isso seguimos padrões.
Obrigado!
[palmas]
Contato - Daniel Archer
SlideShare
slideshare.net/danielmarquescramer
Facebook
facebook.com/danielmarquescramer
PHPRS
php-...
Refatorar é preciso! 2.0
Refatorar é preciso! 2.0
Refatorar é preciso! 2.0
Refatorar é preciso! 2.0
Refatorar é preciso! 2.0
Refatorar é preciso! 2.0
Refatorar é preciso! 2.0
Refatorar é preciso! 2.0
Refatorar é preciso! 2.0
Refatorar é preciso! 2.0
Refatorar é preciso! 2.0
Refatorar é preciso! 2.0
Refatorar é preciso! 2.0
Refatorar é preciso! 2.0
Refatorar é preciso! 2.0
Refatorar é preciso! 2.0
Refatorar é preciso! 2.0
Próximos SlideShares
Carregando em…5
×

Refatorar é preciso! 2.0

374 visualizações

Publicada em

Essa palestra aborda a necessidade e os desafios na hora de refatorar uma aplicação em PHP, vemos um pouco dos conhecimentos necessários para iniciar esse processo e como devemos arquitetar cada etapa do desenvolvimento. Cada aplicação possui uma realidade diferente por isso será passado um de forma breve os conceitos de SOLID, Design Petterns e Object Calisthenic para poder aplica-los na arquitetura de cada projeto. Além de exemplos de refatoração em pontos específicos da aplicação.

Publicada em: Software
  • Seja o primeiro a comentar

Refatorar é preciso! 2.0

  1. 1. Refatorar é Preciso! Uma visão Técnica e Filosófica Daniel Archer PHP Conference 2015 - SP
  2. 2. Eu sou eu Não sou vocês...
  3. 3. Eu sou eu Daniel Archer ● Programador PHP at KingHost ● Zend Certified PHP ● Palestrante ● Grupo de Usuários PHPRS ● Astrônomo Amador ● Estudo PHP há 3 anos
  4. 4. Trabalhar !== Estudar
  5. 5. Você escreve bem?
  6. 6. Aprendemos a escrever, lendo...
  7. 7. Mudança === Evolução Prevalece o mais adaptado
  8. 8. Parar no tempo === Extinção
  9. 9. Antes do refactoring...
  10. 10. 77
  11. 11. 87
  12. 12. Agora vai!
  13. 13. ...onde Estamos ● 1972 - C ● 1983 - C++ ● 1987 - Pearl ● 1991 - Java ● 1991 - Python ● 1995 - PHP ● 2000 - C# ● 2004 - PHP5
  14. 14. Ok… chega de teoria
  15. 15. Refactoring Código antigo funciona, mas será que funciona bem?
  16. 16. Refactoring Código antigo funciona, mas será que funciona bem? Posso reutilizar o meu código neste novo projeto?
  17. 17. Refactoring Código antigo funciona, mas será que funciona bem? Posso reutilizar o meu código neste novo projeto? Outra pessoa consegue ler e entender o meu script?
  18. 18. O que eu posso usar?
  19. 19. O que eu posso usar? A melhor ferramenta do mercado…
  20. 20. Bom senso! O que eu posso usar?
  21. 21. Obrigado! O que eu posso usar? … ok vamos continuar.
  22. 22. S.O.L.I.D
  23. 23. S.O.L.I.D Single Responsability
  24. 24. S.O.L.I.D Open/Close Principle Open for extensions, close for modification.
  25. 25. S.O.L.I.D Liskov Substitution
  26. 26. S.O.L.I.D Interface Segregation
  27. 27. S.O.L.I.D Dependency Invertion
  28. 28. ...tem mais
  29. 29. Object Calisthenics ...sim, enorme desse jeito.
  30. 30. PHP-FIG PSRs para uma vida melhor… standards
  31. 31. Exemplos ...muitos exemplos!
  32. 32. “Refactoring changes the programs in small steps. If you make a mistake, it is easy to find the bug.” - Kent Beck
  33. 33. [exemplo 1 - Primeiros passos]
  34. 34. Refactoring de Código Estruturado
  35. 35. https://github.com/sebastianbergmann/phpcpd Copy / Paste Detector
  36. 36. Refactoring de Arquitetura
  37. 37. Refactoring de Objetos
  38. 38. https://github.com/domnikl/DesignPatternsPHP Exemplos de Design Patterns em PHP
  39. 39. Factory
  40. 40. Strategy
  41. 41. Observer
  42. 42. O que aprendemos até aqui?
  43. 43. Siga Padrões
  44. 44. Não tenha medo de reorganizar ● Define um padrão com a sua equipe ● Siga esses padrões ● Altere o padrão se ele não se adaptar ao seu time
  45. 45. Quanto menor, Melhor! ● Sempre diminua o acoplamento ● Defina responsabilidades ● Nomes longos é um possível excesso de responsabilidade
  46. 46. Eu sou eu Não sou vocês… Eu não programo como vocês. Por isso seguimos padrões.
  47. 47. Obrigado! [palmas]
  48. 48. Contato - Daniel Archer SlideShare slideshare.net/danielmarquescramer Facebook facebook.com/danielmarquescramer PHPRS php-rs.org PHPRS - Facebook facebook.com/groups/rselephants

×