SlideShare una empresa de Scribd logo
1 de 41
REFATORANDO
CÓDIGOS PHP
LEVI FERREIRA / @leviferreira

PHP CONFERENCE BRASIL 2013
SOBRE O PALESTRANTE
-

Desenvolvedor PHP há 4 anos

-

Zend Certified Engineer PHP 5.3 desde jun/2013

-

Apaixonado por música

-

Amante da tecnologia

-

Atualmente desenvolvedor na ClickBus venture da Rocket
Internet!.

ESTAMOS CONTRATANDO!
MAS A FINAL

O QUE É
REFATORAÇÃO ?
“Refatoração consiste em uma reelaboração
de todo o projeto devido a alta quantidade de
erros e falta de aderência a requisitos do
cliente (que alias, estao aonde mesmo?)”
Desciclopedia

NÃO!! NÃO É ISSO…
“A refatoração é um processo de alteração de
código-fonte de um sistema de software de modo
que o comportamento observável não mude, mas
que sua estrutura interna seja aperfeiçoada. Em
essência, quando se usa esse processo, tende-se a
melhorar o código-fonte, mesmo após este já ter
sido escrito.” Martin Fowler

AGORA SIM!!!
POR QUE SE FAZ NECESSÁRIO
A REFATORAÇÃO ?
TODO SOFTWARE ESTÁ
MUITOS PROGRAMADORES PHP

NÃO SABEM
NÃO SABEM
NÃO SABEM
NÃO SABEM
ORIENTAÇÃO A OBJETOS
RACIOCÍNIO ESTÁTICO
LINGUAGEM NOVA, MAS
HÁBITOS ANTIGOS
O QUE

MAS
A REFATORAÇÃO TRAZ DE
BOM ?
DIMINUI A COMPLEXIDADE DO CÓDIGO
MINIMIZA O RISCO DE FALHAS
ORGANIZAÇÃO
MODULARIZAÇÃO
FACILITAR

A MANUTENÇÃO
Por onde
começar?

par où
commen
cer ?

por dónde
empezar?

por onde
comezar?

wo ich anfangen?
COMECE PELAS CAMADAS MAIS
EXTERNAS DA APLICAÇÃO
TESTES
LIMPANDO COISAS QUE
CHEIRAM MAL
ELIMINE O CÓDIGO DUPLICADO
ELIMINE O CÓDIGO DUPLICADO
MANTENHA SEUS
METODOS E CLASSES

PEQUENOS
DÊ NOMES CERTOS
AOS PARAMÊTROS, VARIÁVEIS
E MÉTODOS
SUBSTITUA
NÚMEROS

MÁGICOS
POR CONSTANTES
DIVIDA
RESPONSABILIDADES
SIMPLIFIQUE
AS CONDIÇÕES
NÃO TENHA

MEDO

DIGA PARA A CLASSE:
FAÇA OS OBJETOS SE
COMPORTAREM COMO COLEÇÕES
COMENTE SEU CÓDIGO! NÃO CUSTA NADISS
SENÃO SEU CODIGO PODE SER VISTO ASSIM:
FAÇA PAIR PROGRAMMING
AO FINAL, VOCÊ DEVE FICAR ASSIM

MAS COM CERTEZA TERÁ VALIDO A PENA
OBRIGADO!

Más contenido relacionado

La actualidad más candente

Jenkins integrando e estendendo.
Jenkins integrando e estendendo.Jenkins integrando e estendendo.
Jenkins integrando e estendendo.Leonardo Kobus
 
Zabbix - Sou Dev, o que eu tenho a ver com isso? - André Déo (Comunidade Zabb...
Zabbix - Sou Dev, o que eu tenho a ver com isso? - André Déo (Comunidade Zabb...Zabbix - Sou Dev, o que eu tenho a ver com isso? - André Déo (Comunidade Zabb...
Zabbix - Sou Dev, o que eu tenho a ver com isso? - André Déo (Comunidade Zabb...Zabbix BR
 
Xamarin + TDD - Reagindo rápido à mudanças no mundo mobile
Xamarin + TDD - Reagindo rápido à mudanças no mundo mobileXamarin + TDD - Reagindo rápido à mudanças no mundo mobile
Xamarin + TDD - Reagindo rápido à mudanças no mundo mobileakamud
 
Python Brasil[9] - Entrega Contínua
Python Brasil[9] - Entrega Contínua Python Brasil[9] - Entrega Contínua
Python Brasil[9] - Entrega Contínua Renzo Nuccitelli
 
Jenkins, o CI ao seu dispor
Jenkins, o CI ao seu disporJenkins, o CI ao seu dispor
Jenkins, o CI ao seu dispors4nx
 
Laravel 5
Laravel 5Laravel 5
Laravel 5DevMT
 
Testes com xUnit + Coding Dojo
Testes com xUnit + Coding DojoTestes com xUnit + Coding Dojo
Testes com xUnit + Coding DojoLetticia Nicoli
 
Uaijug ADF - spring boot - microservice - Introdução
Uaijug ADF - spring boot - microservice - IntroduçãoUaijug ADF - spring boot - microservice - Introdução
Uaijug ADF - spring boot - microservice - IntroduçãoRogerio Fontes
 
.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?Letticia Nicoli
 
TDC2016POA | Trilha Infraestrutura - Produção nove vezes ao dia - Como um tim...
TDC2016POA | Trilha Infraestrutura - Produção nove vezes ao dia - Como um tim...TDC2016POA | Trilha Infraestrutura - Produção nove vezes ao dia - Como um tim...
TDC2016POA | Trilha Infraestrutura - Produção nove vezes ao dia - Como um tim...tdc-globalcode
 
MTC 2019 - Precisamos falar sobre teste de infra
MTC 2019 - Precisamos falar sobre teste de infraMTC 2019 - Precisamos falar sobre teste de infra
MTC 2019 - Precisamos falar sobre teste de inframinastestingconference
 
7Masters - Devops - Do legado ao ci cd em 7 minutos
7Masters - Devops - Do legado ao ci cd em 7 minutos7Masters - Devops - Do legado ao ci cd em 7 minutos
7Masters - Devops - Do legado ao ci cd em 7 minutosiMasters
 
Novidades das Bibliotecas Jetpack do Android (2021)
Novidades das Bibliotecas Jetpack do Android (2021)Novidades das Bibliotecas Jetpack do Android (2021)
Novidades das Bibliotecas Jetpack do Android (2021)Nelson Glauber Leal
 
Continuous Integration, Automated Builds e Continuous Deploy, desenvolvimento...
Continuous Integration, Automated Builds e Continuous Deploy, desenvolvimento...Continuous Integration, Automated Builds e Continuous Deploy, desenvolvimento...
Continuous Integration, Automated Builds e Continuous Deploy, desenvolvimento...Robson Agapito Correa
 

La actualidad más candente (20)

Jenkins integrando e estendendo.
Jenkins integrando e estendendo.Jenkins integrando e estendendo.
Jenkins integrando e estendendo.
 
Zabbix - Sou Dev, o que eu tenho a ver com isso? - André Déo (Comunidade Zabb...
Zabbix - Sou Dev, o que eu tenho a ver com isso? - André Déo (Comunidade Zabb...Zabbix - Sou Dev, o que eu tenho a ver com isso? - André Déo (Comunidade Zabb...
Zabbix - Sou Dev, o que eu tenho a ver com isso? - André Déo (Comunidade Zabb...
 
Xamarin + TDD - Reagindo rápido à mudanças no mundo mobile
Xamarin + TDD - Reagindo rápido à mudanças no mundo mobileXamarin + TDD - Reagindo rápido à mudanças no mundo mobile
Xamarin + TDD - Reagindo rápido à mudanças no mundo mobile
 
Python Brasil[9] - Entrega Contínua
Python Brasil[9] - Entrega Contínua Python Brasil[9] - Entrega Contínua
Python Brasil[9] - Entrega Contínua
 
Jenkins, o CI ao seu dispor
Jenkins, o CI ao seu disporJenkins, o CI ao seu dispor
Jenkins, o CI ao seu dispor
 
Laravel 5
Laravel 5Laravel 5
Laravel 5
 
Testes com xUnit + Coding Dojo
Testes com xUnit + Coding DojoTestes com xUnit + Coding Dojo
Testes com xUnit + Coding Dojo
 
Uaijug ADF - spring boot - microservice - Introdução
Uaijug ADF - spring boot - microservice - IntroduçãoUaijug ADF - spring boot - microservice - Introdução
Uaijug ADF - spring boot - microservice - Introdução
 
Introducao git fisl
Introducao git fislIntroducao git fisl
Introducao git fisl
 
Jenkins
JenkinsJenkins
Jenkins
 
.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?
 
Palestra Zabbix, EveryZ e Além - FGSL 2017
Palestra Zabbix, EveryZ e Além - FGSL 2017Palestra Zabbix, EveryZ e Além - FGSL 2017
Palestra Zabbix, EveryZ e Além - FGSL 2017
 
TDC2016POA | Trilha Infraestrutura - Produção nove vezes ao dia - Como um tim...
TDC2016POA | Trilha Infraestrutura - Produção nove vezes ao dia - Como um tim...TDC2016POA | Trilha Infraestrutura - Produção nove vezes ao dia - Como um tim...
TDC2016POA | Trilha Infraestrutura - Produção nove vezes ao dia - Como um tim...
 
MTC 2019 - Precisamos falar sobre teste de infra
MTC 2019 - Precisamos falar sobre teste de infraMTC 2019 - Precisamos falar sobre teste de infra
MTC 2019 - Precisamos falar sobre teste de infra
 
Criando sua stack de deploy php com git, jenkins e ansible
Criando sua stack de deploy php com git, jenkins e ansibleCriando sua stack de deploy php com git, jenkins e ansible
Criando sua stack de deploy php com git, jenkins e ansible
 
7Masters - Devops - Do legado ao ci cd em 7 minutos
7Masters - Devops - Do legado ao ci cd em 7 minutos7Masters - Devops - Do legado ao ci cd em 7 minutos
7Masters - Devops - Do legado ao ci cd em 7 minutos
 
Novidades das Bibliotecas Jetpack do Android (2021)
Novidades das Bibliotecas Jetpack do Android (2021)Novidades das Bibliotecas Jetpack do Android (2021)
Novidades das Bibliotecas Jetpack do Android (2021)
 
Onde posso ir como “dev”
Onde posso ir como “dev”Onde posso ir como “dev”
Onde posso ir como “dev”
 
Android fest
Android festAndroid fest
Android fest
 
Continuous Integration, Automated Builds e Continuous Deploy, desenvolvimento...
Continuous Integration, Automated Builds e Continuous Deploy, desenvolvimento...Continuous Integration, Automated Builds e Continuous Deploy, desenvolvimento...
Continuous Integration, Automated Builds e Continuous Deploy, desenvolvimento...
 

Similar a Refatorando Códigos PHP - PHP Conference 2013

Desenvolvimento Web com Php e jQuery
Desenvolvimento Web com Php e jQueryDesenvolvimento Web com Php e jQuery
Desenvolvimento Web com Php e jQueryFabricio Nogueira
 
A Evolução do PHP - 4º Dev In Santos
A Evolução do PHP - 4º Dev In SantosA Evolução do PHP - 4º Dev In Santos
A Evolução do PHP - 4º Dev In SantosEvaldo Junior
 
TDC2016POA | Trilha PHP - Por que utilizar o Laravel?
TDC2016POA | Trilha PHP - Por que utilizar o Laravel?TDC2016POA | Trilha PHP - Por que utilizar o Laravel?
TDC2016POA | Trilha PHP - Por que utilizar o Laravel?tdc-globalcode
 
AspNet 5 & Redis - Escalando sua performance
AspNet 5 & Redis - Escalando sua performanceAspNet 5 & Redis - Escalando sua performance
AspNet 5 & Redis - Escalando sua performanceJosé Roberto Araújo
 
Artigo de php
Artigo de phpArtigo de php
Artigo de phprobson
 
PHP para aplicações Web de grande porte
PHP para aplicações Web  de grande portePHP para aplicações Web  de grande porte
PHP para aplicações Web de grande porteFelipe Ribeiro
 
WebVibe Barueri 2011 - "PHP por quê ?"
WebVibe Barueri 2011 - "PHP por quê ?"WebVibe Barueri 2011 - "PHP por quê ?"
WebVibe Barueri 2011 - "PHP por quê ?"Hélio Costa e Silva
 
TDC2018SP | Trilha Arq PHP - PHP Middlewares, o que sao? Onde vivem? O que fa...
TDC2018SP | Trilha Arq PHP - PHP Middlewares, o que sao? Onde vivem? O que fa...TDC2018SP | Trilha Arq PHP - PHP Middlewares, o que sao? Onde vivem? O que fa...
TDC2018SP | Trilha Arq PHP - PHP Middlewares, o que sao? Onde vivem? O que fa...tdc-globalcode
 
Php 7 do início ao profissional
Php 7  do início ao profissionalPhp 7  do início ao profissional
Php 7 do início ao profissionalLeonardo Tumadjian
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...tdc-globalcode
 
PHP 5 de Forma Correta e Segura
PHP 5 de Forma Correta e SeguraPHP 5 de Forma Correta e Segura
PHP 5 de Forma Correta e SeguraKleber Silva
 
Iniciando com PHP
Iniciando com PHPIniciando com PHP
Iniciando com PHPMichel Lima
 

Similar a Refatorando Códigos PHP - PHP Conference 2013 (20)

Desenvolvimento Web com Php e jQuery
Desenvolvimento Web com Php e jQueryDesenvolvimento Web com Php e jQuery
Desenvolvimento Web com Php e jQuery
 
Webinar php extreme 5.3
Webinar php extreme 5.3Webinar php extreme 5.3
Webinar php extreme 5.3
 
A Evolução do PHP - 4º Dev In Santos
A Evolução do PHP - 4º Dev In SantosA Evolução do PHP - 4º Dev In Santos
A Evolução do PHP - 4º Dev In Santos
 
TDC2016POA | Trilha PHP - Por que utilizar o Laravel?
TDC2016POA | Trilha PHP - Por que utilizar o Laravel?TDC2016POA | Trilha PHP - Por que utilizar o Laravel?
TDC2016POA | Trilha PHP - Por que utilizar o Laravel?
 
AspNet 5 & Redis - Escalando sua performance
AspNet 5 & Redis - Escalando sua performanceAspNet 5 & Redis - Escalando sua performance
AspNet 5 & Redis - Escalando sua performance
 
Artigo de php
Artigo de phpArtigo de php
Artigo de php
 
PHP para aplicações Web de grande porte
PHP para aplicações Web  de grande portePHP para aplicações Web  de grande porte
PHP para aplicações Web de grande porte
 
WebVibe Barueri 2011 - "PHP por quê ?"
WebVibe Barueri 2011 - "PHP por quê ?"WebVibe Barueri 2011 - "PHP por quê ?"
WebVibe Barueri 2011 - "PHP por quê ?"
 
#tbt do PHP, a evolução da linguagem nos últimos 10 anos
#tbt do PHP, a evolução da linguagem nos últimos 10 anos#tbt do PHP, a evolução da linguagem nos últimos 10 anos
#tbt do PHP, a evolução da linguagem nos últimos 10 anos
 
PHP 7 - A Maioridade do PHP
PHP 7 - A Maioridade do PHPPHP 7 - A Maioridade do PHP
PHP 7 - A Maioridade do PHP
 
PHP Moderno
PHP ModernoPHP Moderno
PHP Moderno
 
Começando errado com php
Começando errado com phpComeçando errado com php
Começando errado com php
 
TDC2018SP | Trilha Arq PHP - PHP Middlewares, o que sao? Onde vivem? O que fa...
TDC2018SP | Trilha Arq PHP - PHP Middlewares, o que sao? Onde vivem? O que fa...TDC2018SP | Trilha Arq PHP - PHP Middlewares, o que sao? Onde vivem? O que fa...
TDC2018SP | Trilha Arq PHP - PHP Middlewares, o que sao? Onde vivem? O que fa...
 
File3
File3File3
File3
 
File3
File3File3
File3
 
Php 7 do início ao profissional
Php 7  do início ao profissionalPhp 7  do início ao profissional
Php 7 do início ao profissional
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 
Frameworks PHP
Frameworks PHPFrameworks PHP
Frameworks PHP
 
PHP 5 de Forma Correta e Segura
PHP 5 de Forma Correta e SeguraPHP 5 de Forma Correta e Segura
PHP 5 de Forma Correta e Segura
 
Iniciando com PHP
Iniciando com PHPIniciando com PHP
Iniciando com PHP
 

Refatorando Códigos PHP - PHP Conference 2013