POG nunca mais - SOLISC

43
POG Nunca Mais! Técnicas e macetes para o desenvolvimento em PHP também para MySQL 4º SOLISC - Florianópolis/SC Novembro - 2009

description

Apresentação da palestra "POG nunca mais - técnicas e macetes no desenvolvimento de PHP (e MySQL) proferida no 4º SOLISC em Florianóplis/SC

Transcript of POG nunca mais - SOLISC

Page 1: POG nunca mais - SOLISC

POG Nunca Mais!Técnicas e macetes para o desenvolvimento em PHP

também para MySQL

4º SOLISC - Florianópolis/SCNovembro - 2009

Page 2: POG nunca mais - SOLISC

veremos...O que é POG

Exemplos de POG

Causas e causadores de POG’s

Mantendo a POG longe de seus sistemas

Programando em PHP sem POG

Ferramentas contra POG

Dicas contra POG (inclui técnicas Chuck Norris)

Page 3: POG nunca mais - SOLISC

PalestrantePaulino Michelazzo

Diretor da Fábrica Livre, empresa especializada no desenvolvimento não-POG com ferramentas de gestão livres (Drupal, Joomla e Magento) e PHP

[email protected]

Page 4: POG nunca mais - SOLISC

O que é POG?

Page 5: POG nunca mais - SOLISC

Programação Orientada a Gambiarras

Page 6: POG nunca mais - SOLISC

Definição de Gambiarra

lâmpada instalada na extremidade dum comprido cabo elétrico para poder ser utilizada numa área

relativamente grande*

*Novo Dicionário Aurélio da Língua Portuguesa, p. 961

Page 7: POG nunca mais - SOLISC

Definição de gambiarra(coloquial)

aquilo que é de difícil concepção, de inesperada execução para tornar fácil o uso de algo que sequer

deveria existir*

* http://desciclopedia.org/wiki/Pog

Page 8: POG nunca mais - SOLISC

ATP

Adaptação Técnica Profissional

Page 9: POG nunca mais - SOLISC

Exemplos de POG’s

Page 10: POG nunca mais - SOLISC

disco -99???

Page 11: POG nunca mais - SOLISC

F1 sem teclado?

Page 12: POG nunca mais - SOLISC

????

Page 13: POG nunca mais - SOLISC

erro com sucesso!

Page 14: POG nunca mais - SOLISC

equipe eu, mim e nós dois!

Page 15: POG nunca mais - SOLISC
Page 16: POG nunca mais - SOLISC

Causas e Causadores da POG

Page 17: POG nunca mais - SOLISC

Algumas causasTempos escassos

do jeito que está, vai...

Falta de documentação

levantamentos, processos

Erros de projetos

Prazos, mão de obra, ferramentas

Mudanças de última hora

esquecemos uma feature....

Page 18: POG nunca mais - SOLISC

Alguns causadores

Clientes

não sabem o que querem e como querem

Gerentes de Projetos

pouca sinergia com o cliente (retorne ao 1)

“Sofinhos”

acham que sabem, dizem que sabem mas...

Page 19: POG nunca mais - SOLISC

Mantendo a POG longe de seu sistema

Page 20: POG nunca mais - SOLISC

Programando em PHP sem POG

Não use “short tag's”<?=$var?><?php echo $var?>

Facilite a leitura de código<?if($var==1): ... endif?><?phpif($var == 1){

....}?>

Page 21: POG nunca mais - SOLISC

Programando em PHP sem POG

use variáveis “humanas”

$ValorEntrada = 1;$ValorRetorno = 2;$ValorSaida = 3;

$xyz = 1;$fdp = 2;$pqp = 3;

Page 22: POG nunca mais - SOLISC

Programando em PHP sem POG

Indente seu código e salve vidas

<?php $var = 1;if($var==1){

for($x=0;$x<100;$x++){echo $x;

}}

?>

<?php $var = 1;if($var==1){for($x=0;$x<100;$x++){echo $x;}}?>

Page 23: POG nunca mais - SOLISC

Programando em PHP sem POG

Comente seu códigodefine('SIMPLEPIE_TYPE_RSS_092', 8);define('SIMPLEPIE_TYPE_RSS_093', 16);define('SIMPLEPIE_TYPE_RSS_094', 32);define('SIMPLEPIE_TYPE_RSS_10', 64);define('SIMPLEPIE_TYPE_RSS_20', 128);

????

Page 24: POG nunca mais - SOLISC

Programando em PHP sem POG

Comente seu código

// RSS 0.92

define('SIMPLEPIE_TYPE_RSS_092', 8);

// RSS 0.93

define('SIMPLEPIE_TYPE_RSS_093', 16);

// RSS 0.94

define('SIMPLEPIE_TYPE_RSS_094', 32);

// RSS 1.0

define('SIMPLEPIE_TYPE_RSS_10', 64);

// RSS 2.0

define('SIMPLEPIE_TYPE_RSS_20', 128);

Page 25: POG nunca mais - SOLISC

Programando em PHP sem POG

Veja todos os errosE_ALL & ~E_NOTICE@mysql_conn($conn);E_ALL

Não acredite em usuários<?php

system("ls $dir");?>

Page 26: POG nunca mais - SOLISC

Programando em PHP sem POG

Loopingsloopingsloopingsloopingsloopingsif($x==1){...}if($x==2){...}if($x==3){...}if($x==4){...}switch($x){

case 1:case 2:case 3:case 4:

}

Page 27: POG nunca mais - SOLISC

Programando em PHP sem POG

Tipos de dados e colunasnome = varchar(255)data-nascimento = varchar(255)sexo = varchar(255)valor-trabalho = varchar(255)

nome = varchar(150)data-nascimento = datesexo = enum('m','f')valor-trabalho = decimal(5,2)

Page 28: POG nunca mais - SOLISC

Programando em PHP sem POG

Limpe a memóriada máquina

unset($var1, $var2...);mysql_close($conn);

Limpe a SUA memóriaCascão, Cebolinha,

Doritos, Heroes, JotaQuest, Playboy, Rio Branco, Santa Helena, Tacacá, Wii...

Page 29: POG nunca mais - SOLISC

Ferramentas contra POG

Page 30: POG nunca mais - SOLISC

xDebug

Extensão para “debugging” de scripts PHP

Análise de código

Trace de funções e pilhas em mensagens de erro

Indicadores de nomes de funções e arquivos

http://xdebug.org

Page 31: POG nunca mais - SOLISC

Firebug & FirePHP

Extensões para Firefox

Depuração de código HTML, CSS, DOM, JS

Depuração de código PHP

On-the-fly

www.firephp.org

Page 32: POG nunca mais - SOLISC

PHP Debug

Debug de código com geração de trace

Tempo de processamento (inclusive queries)

Verificação de performance

http://sourceforge.net/projects/phpdebug

Page 33: POG nunca mais - SOLISC

Sem POG no MySQLMySQL Workbench

modelagem de DB correta

innotop

quem é a fominha do sistema?

MySQL Report

status do banco em diversos formatos

phpMyAdmin

precisa dizer algo?

Page 34: POG nunca mais - SOLISC

Dicas contra POG

Page 35: POG nunca mais - SOLISC

ProjetosSeja realista com os prazos propostos

pode-se ficar doente

pode-se ter diarréia

pode-se perder o backup e o backup do backup

pode-se ficar sem conexão Internet

pode-se queimar a fonte

Page 36: POG nunca mais - SOLISC

Projetos

Utilize uma metodologia (qualquer uma!)

SCRUM

Waterfall

eXtreme Programming

whateaver

Page 37: POG nunca mais - SOLISC

Clientes, clientes...Não se sente bem com o cliente, pule fora

chato é diferente de ser correto

pede desconto em tudo

“é só uma funçãozinha...”

“preciso para ontem”Sempre existem bons clientes para bons

desenvolvedores

Page 38: POG nunca mais - SOLISC

CodificaçãoPare e pense no que vai fazer

existem 1001 maneiras de fazer código ruim

código bom = funcional, rápido, legível, documentado e com o mínimo de bug’s

O usuário é seu inimigo!

feche as portas

acredite na estupidez humana (ela existe!)

Page 39: POG nunca mais - SOLISC

DocumentaçãoDocumente tudo!

Processos, códigos, database, etc

Manuais, um mal necessário

manual para usuário e administração

manual de disaster recovery

Page 40: POG nunca mais - SOLISC

Técnicas de programação Chuck Norris(just for fun)

Page 41: POG nunca mais - SOLISC

O backup mais rápido do mundo,

powered by Chuck Norriscp -R > /dev/null

Debugger Chuck Norrisif($x==1){

echo 'passou aqui, é 1';}else{

echo 'passou aqui, não é 1';}

Page 42: POG nunca mais - SOLISC

Chuck nunca erra...E_ALLdisplay_errors = offdisplay_startup_errors = offlog_errors = off

E sempre conecta...GRANT ALL PRIVILEGES ON *.* TO '%'@'%'

WITH GRANT OPTION;FLUSH PRIVILEGES;

Page 43: POG nunca mais - SOLISC

Obrigado

Paulino MichelazzoFábrica Livre Soluções para Internet

www.fabricalivre.com.brTwitter’s: @pmichelazzo - @fabricalivre