Your SlideShare is downloading. ×
0
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP

2,660

Published on

Palestra proferida na 1 Semana de Integração Tecnológica do IFRR em Boa Vista, Roraima em 27/08/2009

Palestra proferida na 1 Semana de Integração Tecnológica do IFRR em Boa Vista, Roraima em 27/08/2009

Published in: Technology
0 Comments
6 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,660
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
55
Comments
0
Likes
6
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • Transcript

    • 1. POG Nunca Mais! Técnicas e macetes para o desenvolvimento em PHP
    • 2. POG Nunca Mais! Técnicas e macetes para o tam b ém desenvolvimento em PHP MyS para QL
    • 3. Agenda
    • 4. Agenda O que é POG
    • 5. Agenda O que é POG Exemplos de POG
    • 6. Agenda O que é POG Exemplos de POG Causas e causadores de POG’s
    • 7. Agenda O que é POG Exemplos de POG Causas e causadores de POG’s Mantendo a POG longe de seus sistemas
    • 8. Agenda O que é POG Exemplos de POG Causas e causadores de POG’s Mantendo a POG longe de seus sistemas Programando em PHP sem POG
    • 9. Agenda 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
    • 10. Agenda 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)
    • 11. Palestrante
    • 12. Palestrante Paulino 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 paulino@fabricalivre.com.br
    • 13. O que é POG?
    • 14. Programação Orientada a Gambiarras
    • 15. 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
    • 16. 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
    • 17. Exemplos de POG’s
    • 18. disco -99???
    • 19. F1 sem teclado?
    • 20. ????
    • 21. erro com sucesso!
    • 22. equipe eu, mim e nós dois!
    • 23. Causas e Causadores da POG
    • 24. Algumas causas
    • 25. Algumas causas Tempos escassos do jeito que está, vai...
    • 26. Algumas causas Tempos escassos do jeito que está, vai... Falta de documentação levantamentos, processos
    • 27. Algumas causas Tempos escassos do jeito que está, vai... Falta de documentação levantamentos, processos Erros de projetos Prazos, mão de obra, ferramentas
    • 28. Algumas causas Tempos 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....
    • 29. Alguns causadores
    • 30. Alguns causadores Clientes não sabem o que querem e como querem
    • 31. Alguns causadores Clientes não sabem o que querem e como querem Gerentes de Projetos pouca sinergia com o cliente (retorne ao 1)
    • 32. 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...
    • 33. Mantendo a POG longe de seu sistema
    • 34. Programando em PHP sem POG
    • 35. Programando em PHP sem POG Não use “short tag's” <?=$var?> <?php echo $var?>
    • 36. Programando em PHP sem POG Não use “short tag's” Facilite a leitura de código <?=$var?> <?if($var==1): ... endif?> <?php echo $var?> <?php if($var == 1){ .... }?>
    • 37. Programando em PHP sem POG Use variáveis “humanas” $xyz = 1; $fdp = 2; $pqp = 3; $ValorEntrada = 1; $ValorRetorno = 2; $ValorSaida = 3;
    • 38. 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; } } ?>
    • 39. Programando em PHP sem POG
    • 40. Programando em PHP sem POG Comente seu código define('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);
    • 41. Programando em PHP sem POG Comente seu código define('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); ????
    • 42. 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);
    • 43. Programando em PHP sem POG
    • 44. Programando em PHP sem POG Veja todos os erros E_ALL & ~E_NOTICE @mysql_conn($conn); E_ALL
    • 45. Programando em PHP sem POG Veja todos os erros Não acredite em usuários E_ALL & ~E_NOTICE <?php @mysql_conn($conn); system("ls $dir"); E_ALL ?>
    • 46. Programando em PHP sem POG Loopingsloopingsloopingsloopingsloopings if($x==1){...} if($x==2){...} if($x==3){...} if($x==4){...} switch($x){ case 1: case 2: case 3: case 4: }
    • 47. Programando em PHP sem POG Tipos de dados e colunas nome = varchar(255) data-nascimento = varchar(255) sexo = varchar(255) valor-trabalho = varchar(255) nome = varchar(150) data-nascimento = date sexo = enum('m','f') valor-trabalho = decimal(5,2)
    • 48. Programando em PHP sem POG
    • 49. Programando em PHP sem POG Limpe a memória da máquina unset($var1, $var2...); mysql_close($conn);
    • 50. Programando em PHP sem POG Limpe a memória Limpe a SUA memória da máquina Cascão, Cebolinha, unset($var1, $var2...); Doritos, Heroes, JotaQuest, Playboy, mysql_close($conn); Rio Branco, Santa Helena, Tacacá, Wii...
    • 51. Ferramentas contra POG
    • 52. xDebug
    • 53. xDebug Extensão para “debugging” de scripts PHP
    • 54. xDebug Extensão para “debugging” de scripts PHP Análise de código
    • 55. xDebug Extensão para “debugging” de scripts PHP Análise de código Trace de funções e pilhas em mensagens de erro
    • 56. 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
    • 57. 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
    • 58. Firebug & FirePHP
    • 59. Firebug & FirePHP Extensões para Firefox
    • 60. Firebug & FirePHP Extensões para Firefox Depuração de código HTML, CSS, DOM, JS
    • 61. Firebug & FirePHP Extensões para Firefox Depuração de código HTML, CSS, DOM, JS Depuração de código PHP
    • 62. Firebug & FirePHP Extensões para Firefox Depuração de código HTML, CSS, DOM, JS Depuração de código PHP On-the-fly
    • 63. 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
    • 64. PHP Debug
    • 65. PHP Debug Debug de código com geração de trace
    • 66. PHP Debug Debug de código com geração de trace Tempo de processamento (inclusive queries)
    • 67. PHP Debug Debug de código com geração de trace Tempo de processamento (inclusive queries) Verificação de performance
    • 68. 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
    • 69. Sem POG no MySQL
    • 70. Sem POG no MySQL MySQL Workbench modelagem de DB correta
    • 71. Sem POG no MySQL MySQL Workbench modelagem de DB correta innotop quem é a fominha do sistema?
    • 72. Sem POG no MySQL MySQL Workbench modelagem de DB correta innotop quem é a fominha do sistema? MySQL Report status do banco em diversos formatos
    • 73. Sem POG no MySQL MySQL Workbench modelagem de DB correta innotop quem é a fominha do sistema? MySQL Report status do banco em diversos formatos phpMyAdmin precisa dizer algo?
    • 74. Dicas contra POG
    • 75. Projetos
    • 76. Projetos Seja realista com os prazos propostos
    • 77. Projetos Seja realista com os prazos propostos pode-se ficar doente
    • 78. Projetos Seja realista com os prazos propostos pode-se ficar doente pode-se ter diarréia
    • 79. Projetos Seja realista com os prazos propostos pode-se ficar doente pode-se ter diarréia pode-se perder o backup e o backup do backup
    • 80. Projetos Seja 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
    • 81. Projetos Seja 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
    • 82. Projetos
    • 83. Projetos Utilize uma metodologia (qualquer uma!)
    • 84. Projetos Utilize uma metodologia (qualquer uma!) SCRUM
    • 85. Projetos Utilize uma metodologia (qualquer uma!) SCRUM Waterfall
    • 86. Projetos Utilize uma metodologia (qualquer uma!) SCRUM Waterfall eXtreme Programming
    • 87. Projetos Utilize uma metodologia (qualquer uma!) SCRUM Waterfall eXtreme Programming whateaver
    • 88. Clientes, clientes...
    • 89. Clientes, clientes... Não se sente bem com o cliente, pule fora
    • 90. Clientes, clientes... Não se sente bem com o cliente, pule fora chato é diferente de ser correto
    • 91. Clientes, clientes... Não se sente bem com o cliente, pule fora chato é diferente de ser correto pede desconto em tudo
    • 92. 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...”
    • 93. 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”
    • 94. 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...” Sempre existem “preciso para ontem” bons clientes para bons desenvolvedores
    • 95. Codificação
    • 96. Codificação Pare 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
    • 97. Codificação Pare 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!)
    • 98. Documentação
    • 99. Documentação Documente tudo! Processos, códigos, database, etc
    • 100. Documentação Documente tudo! Processos, códigos, database, etc Manuais, um mal necessário manual para usuário e administração manual de disaster recovery
    • 101. Técnicas de programação Chuck Norris (just for fun)
    • 102. O backup mais rápido do mundo, powered by Chuck Norris cp -R > /dev/null
    • 103. O backup mais rápido do mundo, powered by Chuck Norris cp -R > /dev/null Debugger Chuck Norris if($x==1){ echo 'passou aqui, é 1'; }else{ echo 'passou aqui, não é 1'; }
    • 104. Chuck nunca erra... E_ALL display_errors = off display_startup_errors = off log_errors = off
    • 105. Chuck nunca erra... E_ALL display_errors = off display_startup_errors = off log_errors = off E sempre conecta... GRANT ALL PRIVILEGES ON *.* TO '%'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES;
    • 106. Obrigado Paulino Michelazzo Fábrica Livre Soluções para Internet www.fabricalivre.com.br Twitter’s: @pmichelazzo - @fabricalivre

    ×