[webinar] refatoração em php

41
Webinar - Refactoring Daniel Archer - 2016 Acesse o vídeo em: http://www.kinghost.com.br/eventos-online/webinar-refatoracao-em-php

Upload: kinghost-hospedagem-de-sites

Post on 15-Jan-2017

174 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: [Webinar] Refatoração em PHP

Webinar - RefactoringDaniel Archer - 2016

Acesse o vídeo em:http://www.kinghost.com.br/eventos-online/webinar-refatoracao-em-php

Page 2: [Webinar] Refatoração em PHP

Daniel Archer● Programador PHP na KingHost● Zend Certified Engineer 5.3● Organizador PHPRS● Trabalho com PHP há 6 anos● Palestrante

○ PHP Conference Brasil (SP)○ TDC Porto Alegre○ Faculdade Senac

Webinar Refactoring | 2

Page 3: [Webinar] Refatoração em PHP

ObjetivoEntender o conceito, importância e aplicação de refatoração de sistemas PHP. Utilizaremos ténicas como SOLID e Design Patterns para realizar essa tarefa tão importante.

Webinar Refactoring | 3

Público alvoDesenvolvedores Júniors e Plenos que desejam aperfeiçoar sistemas existentes. Agregando qualidade técnica ao seu código e conhecimento de novas formas de desenvolvimento.

Page 4: [Webinar] Refatoração em PHP

Webinar Refactoring | 4

Conteúdo do Webinar1. O que é Refactoring2. Como tudo começou3. Livros de Apoio4. Quando refatorar5. SOLID6. Design Patterns7. Exemplo Simples8. Refactoring ao Vivo!

Page 5: [Webinar] Refatoração em PHP

1. O que é Refactoring

Webinar Refactoring | 5

Melhorar o código, sem alterar o seu comportamento.

Page 6: [Webinar] Refatoração em PHP

Webinar Refactoring | 6

Melhoria Contínua

LegibilidadeCompreensãoMelhor OrganizaçãoSeparação de ResponsabilidadesFutura ManutençãoOtimização*

Page 7: [Webinar] Refatoração em PHP

Webinar Refactoring | 7

Refactoring changes the programs in small steps. If you make a mistake, it is easy to find a bug.

Kent Beck, American software engineer and the creator of Extreme Programming.

Page 8: [Webinar] Refatoração em PHP

Webinar Refactoring | 8

Como garantir essas mudanças?

Page 9: [Webinar] Refatoração em PHP

Webinar Refactoring | 9

TESTS

TESTS EVERYWHERE

Page 10: [Webinar] Refatoração em PHP

Webinar Refactoring | 10

Não devemos fazer a mesma coisa, todos os dias!

Page 11: [Webinar] Refatoração em PHP

Webinar Refactoring | 11

Page 12: [Webinar] Refatoração em PHP

Webinar Refactoring | 12

Aprendemos a escrever... lendo!

GitHub

Page 13: [Webinar] Refatoração em PHP

2. Como tudo começou

Webinar Refactoring | 13

Page 14: [Webinar] Refatoração em PHP

14

Design Patterns…

Page 15: [Webinar] Refatoração em PHP

15

Design Patterns…

em 77… a idéia de design patterns surgiu em um artigo científico na área de Arquitetura!

Page 16: [Webinar] Refatoração em PHP

16

Design Patterns…

Anos 80, a IBM lançava os primeiros computadores pessoais.

em 87… Kent Beck utilizou essa mesma idéia em programação.

Page 17: [Webinar] Refatoração em PHP

17

Design Patterns…

Anos 90, começa a surgir a UML.

Em 95: GoF (Gang of Four)Design Patterns

Em 99: Martin FowlerRefactoring: Improving the design of existing code

Page 18: [Webinar] Refatoração em PHP

3. Livros de Apoio

Webinar Refactoring | 18

Alguns livros que podem ajudar nos seus estudos...

Page 19: [Webinar] Refatoração em PHP

Webinar Refactoring | 19

Page 20: [Webinar] Refatoração em PHP

4. Quando Refatorar

Webinar Refactoring | 20

Procure por Bad Smells...

Page 21: [Webinar] Refatoração em PHP

Webinar Refactoring | 21

Perguntas...● Meu código antigo funciona, mas será que funciona bem?

Page 22: [Webinar] Refatoração em PHP

Webinar Refactoring | 22

Perguntas...● Meu código antigo funciona, mas será que funciona bem?● Posso reutilizar o meu código em um novo projeto?

Page 23: [Webinar] Refatoração em PHP

Webinar Refactoring | 23

Perguntas...● Meu código antigo funciona, mas será que funciona bem?● Posso reutilizar o meu código em um novo projeto? ● Outra pessoa consegue ler e entender o meu script?

Page 24: [Webinar] Refatoração em PHP

5. S.O.L.I.D

Webinar Refactoring | 24

Page 25: [Webinar] Refatoração em PHP

5. S.O.L.I.D

Webinar Refactoring | 25

Single Responsability

Page 26: [Webinar] Refatoração em PHP

5. S.O.L.I.D

Webinar Refactoring | 26

Single ResponsabilityOpen \ Close Principle

Page 27: [Webinar] Refatoração em PHP

5. S.O.L.I.D

Webinar Refactoring | 27

Single ResponsabilityOpen \ Close PrincipleLiskov Substitution

Page 28: [Webinar] Refatoração em PHP

5. S.O.L.I.D

Webinar Refactoring | 28

Single ResponsabilityOpen \ Close PrincipleLiskov SubstitutionInterface Segregation

Page 29: [Webinar] Refatoração em PHP

5. S.O.L.I.D

Webinar Refactoring | 29

Single ResponsabilityOpen \ Close PrincipleLiskov SubstitutionInterface SegregationDependency Inversion

Page 30: [Webinar] Refatoração em PHP

6. Design Patterns

Webinar Refactoring | 30

São resoluções prontas para problemas conhecidos.

Page 31: [Webinar] Refatoração em PHP

Webinar Refactoring | 31

Patterns não são regras!Devem ser utilizados como guia e não como lei.

Page 32: [Webinar] Refatoração em PHP

Exemplos de D.P. em PHPhttps://github.com/domnikl/DesignPatternsPHP

32Webinar Refactoring |

Page 33: [Webinar] Refatoração em PHP

Procurem!

Object Calisthenics & Clean Code

Webinar Refactoring | 33

Page 34: [Webinar] Refatoração em PHP

Webinar Refactoring | 34

7. Exemplo de refactoring simplesUtilizando inversão de dependência

Page 35: [Webinar] Refatoração em PHP

35

Page 36: [Webinar] Refatoração em PHP

36

Page 37: [Webinar] Refatoração em PHP

37

Page 38: [Webinar] Refatoração em PHP

38

Copy & Paste Detectorhttps://github.com/sebastianbergmann/phpcpd

Page 39: [Webinar] Refatoração em PHP

8. Refactoring ao Vivo!

Webinar Refactoring | 39

Mão na massa!

Page 40: [Webinar] Refatoração em PHP

Obrigado!

Dúvidas e sugestões

Daniel Archer – [email protected]

Page 41: [Webinar] Refatoração em PHP

Estamos contratando!

Webinar Refactoring | 41

Programador PHP Sênior!Equipe de Desenvolvimento [email protected]://www.kinghost.com.br/talentos-oportunidades?jobid=2780069