POG nunca mais - SOLISC
-
Upload
paulino-michelazzo -
Category
Technology
-
view
2.257 -
download
3
description
Transcript of POG nunca mais - SOLISC
![Page 1: POG nunca mais - SOLISC](https://reader033.fdocument.pub/reader033/viewer/2022061210/54916eabb47959672b8b47a1/html5/thumbnails/1.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022061210/54916eabb47959672b8b47a1/html5/thumbnails/2.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022061210/54916eabb47959672b8b47a1/html5/thumbnails/3.jpg)
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
![Page 4: POG nunca mais - SOLISC](https://reader033.fdocument.pub/reader033/viewer/2022061210/54916eabb47959672b8b47a1/html5/thumbnails/4.jpg)
O que é POG?
![Page 5: POG nunca mais - SOLISC](https://reader033.fdocument.pub/reader033/viewer/2022061210/54916eabb47959672b8b47a1/html5/thumbnails/5.jpg)
Programação Orientada a Gambiarras
![Page 6: POG nunca mais - SOLISC](https://reader033.fdocument.pub/reader033/viewer/2022061210/54916eabb47959672b8b47a1/html5/thumbnails/6.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022061210/54916eabb47959672b8b47a1/html5/thumbnails/7.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022061210/54916eabb47959672b8b47a1/html5/thumbnails/8.jpg)
ATP
Adaptação Técnica Profissional
![Page 9: POG nunca mais - SOLISC](https://reader033.fdocument.pub/reader033/viewer/2022061210/54916eabb47959672b8b47a1/html5/thumbnails/9.jpg)
Exemplos de POG’s
![Page 10: POG nunca mais - SOLISC](https://reader033.fdocument.pub/reader033/viewer/2022061210/54916eabb47959672b8b47a1/html5/thumbnails/10.jpg)
disco -99???
![Page 11: POG nunca mais - SOLISC](https://reader033.fdocument.pub/reader033/viewer/2022061210/54916eabb47959672b8b47a1/html5/thumbnails/11.jpg)
F1 sem teclado?
![Page 12: POG nunca mais - SOLISC](https://reader033.fdocument.pub/reader033/viewer/2022061210/54916eabb47959672b8b47a1/html5/thumbnails/12.jpg)
????
![Page 13: POG nunca mais - SOLISC](https://reader033.fdocument.pub/reader033/viewer/2022061210/54916eabb47959672b8b47a1/html5/thumbnails/13.jpg)
erro com sucesso!
![Page 14: POG nunca mais - SOLISC](https://reader033.fdocument.pub/reader033/viewer/2022061210/54916eabb47959672b8b47a1/html5/thumbnails/14.jpg)
equipe eu, mim e nós dois!
![Page 15: POG nunca mais - SOLISC](https://reader033.fdocument.pub/reader033/viewer/2022061210/54916eabb47959672b8b47a1/html5/thumbnails/15.jpg)
![Page 16: POG nunca mais - SOLISC](https://reader033.fdocument.pub/reader033/viewer/2022061210/54916eabb47959672b8b47a1/html5/thumbnails/16.jpg)
Causas e Causadores da POG
![Page 17: POG nunca mais - SOLISC](https://reader033.fdocument.pub/reader033/viewer/2022061210/54916eabb47959672b8b47a1/html5/thumbnails/17.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022061210/54916eabb47959672b8b47a1/html5/thumbnails/18.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022061210/54916eabb47959672b8b47a1/html5/thumbnails/19.jpg)
Mantendo a POG longe de seu sistema
![Page 20: POG nunca mais - SOLISC](https://reader033.fdocument.pub/reader033/viewer/2022061210/54916eabb47959672b8b47a1/html5/thumbnails/20.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022061210/54916eabb47959672b8b47a1/html5/thumbnails/21.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022061210/54916eabb47959672b8b47a1/html5/thumbnails/22.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022061210/54916eabb47959672b8b47a1/html5/thumbnails/23.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022061210/54916eabb47959672b8b47a1/html5/thumbnails/24.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022061210/54916eabb47959672b8b47a1/html5/thumbnails/25.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022061210/54916eabb47959672b8b47a1/html5/thumbnails/26.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022061210/54916eabb47959672b8b47a1/html5/thumbnails/27.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022061210/54916eabb47959672b8b47a1/html5/thumbnails/28.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022061210/54916eabb47959672b8b47a1/html5/thumbnails/29.jpg)
Ferramentas contra POG
![Page 30: POG nunca mais - SOLISC](https://reader033.fdocument.pub/reader033/viewer/2022061210/54916eabb47959672b8b47a1/html5/thumbnails/30.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022061210/54916eabb47959672b8b47a1/html5/thumbnails/31.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022061210/54916eabb47959672b8b47a1/html5/thumbnails/32.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022061210/54916eabb47959672b8b47a1/html5/thumbnails/33.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022061210/54916eabb47959672b8b47a1/html5/thumbnails/34.jpg)
Dicas contra POG
![Page 35: POG nunca mais - SOLISC](https://reader033.fdocument.pub/reader033/viewer/2022061210/54916eabb47959672b8b47a1/html5/thumbnails/35.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022061210/54916eabb47959672b8b47a1/html5/thumbnails/36.jpg)
Projetos
Utilize uma metodologia (qualquer uma!)
SCRUM
Waterfall
eXtreme Programming
whateaver
![Page 37: POG nunca mais - SOLISC](https://reader033.fdocument.pub/reader033/viewer/2022061210/54916eabb47959672b8b47a1/html5/thumbnails/37.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022061210/54916eabb47959672b8b47a1/html5/thumbnails/38.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022061210/54916eabb47959672b8b47a1/html5/thumbnails/39.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022061210/54916eabb47959672b8b47a1/html5/thumbnails/40.jpg)
Técnicas de programação Chuck Norris(just for fun)
![Page 41: POG nunca mais - SOLISC](https://reader033.fdocument.pub/reader033/viewer/2022061210/54916eabb47959672b8b47a1/html5/thumbnails/41.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022061210/54916eabb47959672b8b47a1/html5/thumbnails/42.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022061210/54916eabb47959672b8b47a1/html5/thumbnails/43.jpg)
Obrigado
Paulino MichelazzoFábrica Livre Soluções para Internet
www.fabricalivre.com.brTwitter’s: @pmichelazzo - @fabricalivre