refatorar é preciso! 2.0
TRANSCRIPT
Refatorar é Preciso!Uma visão Técnica e Filosófica
Daniel ArcherPHP 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ônomo Amador
● Estudo PHP há 3 anos
Trabalhar !== Estudar
Você escreve bem?
Aprendemos a escrever, lendo...
Mudança === EvoluçãoPrevalece 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 pessoa consegue ler e entender o meu script?
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.DSingle Responsability
S.O.L.I.DOpen/Close Principle
Open for extensions, close for modification.
S.O.L.I.DLiskov Substitution
S.O.L.I.DInterface Segregation
S.O.L.I.DDependency Invertion
...tem mais
Object Calisthenics
...sim, enorme desse jeito.
PHP-FIGPSRs 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 adaptar
ao seu time
Quanto menor,Melhor!
● Sempre diminua o
acoplamento
● Defina
responsabilidades
● Nomes longos é um
possível excesso de
responsabilidade
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.com/danielmarquescramer
PHPRS
php-rs.org
PHPRS - Facebook
facebook.com/groups/rselephants