Refatorar é preciso! 2.0

Post on 15-Apr-2017

341 views 1 download

Transcript of Refatorar é preciso! 2.0

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

facebook.com/danielmarquescramer

PHPRS

php-rs.org

PHPRS - Facebook

facebook.com/groups/rselephants