PHP Anti Patterns
-
Upload
theoziran-lima -
Category
Technology
-
view
1.621 -
download
3
Transcript of PHP Anti Patterns
PHP Anti-patternsO que NÃO fazer com PHP
Sobre mim
• Theoziran Lima
– Análise e Desenvolvimento de Sistemas (Faculdade iDEZ)
– Analista de sistemas (Acade)
– Desenvolvedor PHP (Shoprizer)
– Colunista iMasters
... e eu não sou o carinha da capa...
O que são anti-
patterns?
Significa fora do padrão, ou simplesmente ter maus hábitos, no
nosso caso de codificação.
Porque devemos saber o que não fazer (anti-patterns)?
Geralmente iniciantes tendem a criar códigos utilizando “anti-
patterns”
Porque vamos conhecer os problemas/erros que foram
enfrentados por desenvolvedores mais experientes, assim não cometeremos
os mesmos erros.
Então qual padrão de projeto devo usar?
Não existe isso, temos os padrões para resolver problemas específicos sendo tratados de forma
genérica.
• Padrões de criação
– Factory
– Singleton
• Padrões estruturais
– Adapter
– Bridge
... vamos voltar aos anti-patterns
... outro “problema” ...
PHP é fácil, também é mais fácil cometer erros
• Quanto mais fácil a linguagem, mais fácil fazer gambiarras;
• Por ser fácil, muitas pessoas desenvolvem sem ter nenhuma base (conceitos) de desenvolvimento de software;
• O desenvolvedor se sente tentado a resolver o problema de forma mais rápida.
PHP é fácil, também é mais fácil cometer erros
• Invasão de camadas, quando se está utilizando um MVC, ou pelo menos tentando.
“Nenhuma linguagem, framework, impede do desenvolvedor fazer gambiarra” Felipe Ribeiro, “PHP não é coisa de moleque”
Esqueceram que somos os mestres das soluções?
Spaghetti é o padrão mais
utilizado
No anti-pattern spaghetti, o “V” de MVC faz tudo.
É importante ter estilo ...
Estilos de codificação
• Seu código não deve ser percebido dentro do sistema;
• Sempre desenvolva com E_STRICT e E_NOTICE ativos;
• Filtre suas entradas e escape suas saídas;
• Quando possível utilize type-casts em suas funções ou métodos.
Use com cuidado
• $_REQUEST
• __get, __set, __isset, __unset
• __call, __callStatic
• __autoload
• @
• <?=
“Evite” fazer gambiarras ...“Evite” fazer gambiarras ...
... uma dia ela vai
explodir ...
Não conte com a sorte para seu sistema funcionar
Não conte com a sorte para seu sistema funcionar
Framework, você tá brincando?Framework, você tá brincando?
DIY – Do it yourself
• Desperdício de tempo
– Desenvolvimento
– Testes
– Documentação
– Manutenção
• Criar bus desnecessários
Overdesign
• Limite-se a fazer o que o cliente deseja, ou ao que foi requisitado.
• Não fique refazendo o sistema do zero todas vez que cometer um erro.
Overdesign
• Quanto mais complexo for sua arquitetura:
– O código será mais complexo;
– Mais bugs você vai ter;
– Mais tempo de desenvolvimento irá custar;
– A probalidade o projeto falhar é alta.
PHP não é Java, C++, Python, Ruby on Rails
<?php
class String{
private $str;
public function __construct($str){
$this->str = $str;
}
public function __toString(){
return $this->str;
}
}
... KISS, ainda funciona ...
Pense em segurança em todas as fases do projeto
Influenciará no design e no desenvolvimento
Dica
Aproveitem pra estudar os patterns e os anti-patterns que vai nos poupar tempo de
passar experiências desagradáveis.
Alguma dúvida ?
Referências
• PHP Quebec Conference
– http://conf.phpquebec.com/
• Wikipédia
– Anti-patterns
– Design Pattern
Sigam-me os bons...
@theoziranwww.theoziran.com.br