[webinar] refatoração em php
TRANSCRIPT
Webinar - RefactoringDaniel Archer - 2016
Acesse o vídeo em:http://www.kinghost.com.br/eventos-online/webinar-refatoracao-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
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.
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!
1. O que é Refactoring
Webinar Refactoring | 5
Melhorar o código, sem alterar o seu comportamento.
Webinar Refactoring | 6
Melhoria Contínua
LegibilidadeCompreensãoMelhor OrganizaçãoSeparação de ResponsabilidadesFutura ManutençãoOtimização*
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.
Webinar Refactoring | 8
Como garantir essas mudanças?
Webinar Refactoring | 9
TESTS
TESTS EVERYWHERE
Webinar Refactoring | 10
Não devemos fazer a mesma coisa, todos os dias!
Webinar Refactoring | 11
Webinar Refactoring | 12
Aprendemos a escrever... lendo!
GitHub
2. Como tudo começou
Webinar Refactoring | 13
14
Design Patterns…
15
Design Patterns…
em 77… a idéia de design patterns surgiu em um artigo científico na área de Arquitetura!
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.
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
3. Livros de Apoio
Webinar Refactoring | 18
Alguns livros que podem ajudar nos seus estudos...
Webinar Refactoring | 19
4. Quando Refatorar
Webinar Refactoring | 20
Procure por Bad Smells...
Webinar Refactoring | 21
Perguntas...● Meu código antigo funciona, mas será que funciona bem?
Webinar Refactoring | 22
Perguntas...● Meu código antigo funciona, mas será que funciona bem?● Posso reutilizar o meu código em um novo projeto?
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?
5. S.O.L.I.D
Webinar Refactoring | 24
5. S.O.L.I.D
Webinar Refactoring | 25
Single Responsability
5. S.O.L.I.D
Webinar Refactoring | 26
Single ResponsabilityOpen \ Close Principle
5. S.O.L.I.D
Webinar Refactoring | 27
Single ResponsabilityOpen \ Close PrincipleLiskov Substitution
5. S.O.L.I.D
Webinar Refactoring | 28
Single ResponsabilityOpen \ Close PrincipleLiskov SubstitutionInterface Segregation
5. S.O.L.I.D
Webinar Refactoring | 29
Single ResponsabilityOpen \ Close PrincipleLiskov SubstitutionInterface SegregationDependency Inversion
6. Design Patterns
Webinar Refactoring | 30
São resoluções prontas para problemas conhecidos.
Webinar Refactoring | 31
Patterns não são regras!Devem ser utilizados como guia e não como lei.
Exemplos de D.P. em PHPhttps://github.com/domnikl/DesignPatternsPHP
32Webinar Refactoring |
Procurem!
Object Calisthenics & Clean Code
Webinar Refactoring | 33
Webinar Refactoring | 34
7. Exemplo de refactoring simplesUtilizando inversão de dependência
35
36
37
38
Copy & Paste Detectorhttps://github.com/sebastianbergmann/phpcpd
8. Refactoring ao Vivo!
Webinar Refactoring | 39
Mão na massa!
Estamos contratando!
Webinar Refactoring | 41
Programador PHP Sênior!Equipe de Desenvolvimento [email protected]://www.kinghost.com.br/talentos-oportunidades?jobid=2780069