Top Banner
PHP Anti-patterns O que NÃO fazer com PHP
33

PHP Anti Patterns

May 19, 2015

Download

Technology

Theoziran Lima
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: PHP Anti Patterns

PHP Anti-patternsO que NÃO fazer com PHP

Page 2: PHP Anti Patterns

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...

Page 3: PHP Anti Patterns

O que são anti-

patterns?

Page 4: PHP Anti Patterns

Significa fora do padrão, ou simplesmente ter maus hábitos, no

nosso caso de codificação.

Page 5: PHP Anti Patterns

Porque devemos saber o que não fazer (anti-patterns)?

Page 6: PHP Anti Patterns

Geralmente iniciantes tendem a criar códigos utilizando “anti-

patterns”

Page 7: PHP Anti Patterns

Porque vamos conhecer os problemas/erros que foram

enfrentados por desenvolvedores mais experientes, assim não cometeremos

os mesmos erros.

Page 8: PHP Anti Patterns

Então qual padrão de projeto devo usar?

Page 9: PHP Anti Patterns

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

Page 10: PHP Anti Patterns

... outro “problema” ...

Page 11: PHP Anti Patterns

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.

Page 12: PHP Anti Patterns

PHP é fácil, também é mais fácil cometer erros

• Invasão de camadas, quando se está utilizando um MVC, ou pelo menos tentando.

Page 13: PHP Anti Patterns

“Nenhuma linguagem, framework, impede do desenvolvedor fazer gambiarra” Felipe Ribeiro, “PHP não é coisa de moleque”

Esqueceram que somos os mestres das soluções?

Page 14: PHP Anti Patterns

Spaghetti é o padrão mais

utilizado

Page 15: PHP Anti Patterns

No anti-pattern spaghetti, o “V” de MVC faz tudo.

Page 16: PHP Anti Patterns

É importante ter estilo ...

Page 17: PHP Anti Patterns

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.

Page 18: PHP Anti Patterns

Use com cuidado

• $_REQUEST

• __get, __set, __isset, __unset

• __call, __callStatic

• __autoload

• @

• <?=

Page 19: PHP Anti Patterns

“Evite” fazer gambiarras ...“Evite” fazer gambiarras ...

Page 20: PHP Anti Patterns

... uma dia ela vai

explodir ...

Page 21: PHP Anti Patterns

Não conte com a sorte para seu sistema funcionar

Não conte com a sorte para seu sistema funcionar

Page 22: PHP Anti Patterns

Framework, você tá brincando?Framework, você tá brincando?

Page 23: PHP Anti Patterns

DIY – Do it yourself

• Desperdício de tempo

– Desenvolvimento

– Testes

– Documentação

– Manutenção

• Criar bus desnecessários

Page 24: PHP Anti Patterns

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.

Page 25: PHP Anti Patterns

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.

Page 26: PHP Anti Patterns

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;

}

}

Page 27: PHP Anti Patterns

... KISS, ainda funciona ...

Page 28: PHP Anti Patterns
Page 29: PHP Anti Patterns

Pense em segurança em todas as fases do projeto

Influenciará no design e no desenvolvimento

Page 30: PHP Anti Patterns

Dica

Aproveitem pra estudar os patterns e os anti-patterns que vai nos poupar tempo de

passar experiências desagradáveis.

Page 31: PHP Anti Patterns

Alguma dúvida ?

Page 32: PHP Anti Patterns

Referências

• PHP Quebec Conference

– http://conf.phpquebec.com/

• Wikipédia

– Anti-patterns

– Design Pattern

Page 33: PHP Anti Patterns

Sigam-me os bons...

@theoziranwww.theoziran.com.br