Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

A Arte do Desenvolvimento PHP

2,000 views

Published on

  • Be the first to comment

A Arte do Desenvolvimento PHP

  1. 1. A Arte do Desenvolvimento PHP PHP Conference '09 duodraco - 2009
  2. 2. Anderson “Duodraco” Casimiro ● Zend Certified Engineer ● Coordenador do PHPSP ● Desenvolvedor Web desde 2002 ● Atuando em diversas áreas ● Team Leader na Intelectas duodraco - 2009
  3. 3. Agenda Objetivos ● Ferramentas built-in ● Fontes Externas ● PEAR / PECL, Frameworks, Recursos externos ● Aplicação ● Conclusão duodraco - 2009
  4. 4. Objetivos duodraco - 2009
  5. 5. Somos Artesãos duodraco - 2009
  6. 6. precisamos de ferramentas duodraco - 2009
  7. 7. O que temos à mão? duodraco - 2009
  8. 8. PHP ● Por si só já é uma toolbox ● Nativamente suporta a maioria dos SGDBs ● Via correta compilação/instalação ● SQLite ● Suporte a Orientação a Objetos ● Design Patterns ● Streams ● Controle sobre o HTTP ● XML, JSON, WSDL … ● PHAR duodraco - 2009
  9. 9. Namespaces duodraco - 2009
  10. 10. Namespaces ● PHP5.3+ ● Organização ● Pacotes ● Evita conflitos de nome ● namespace Framework DB; ● use Framework DB; ● Instance :: conn( $dsn , $user , $secret ); ● Framework DB Instance :: conn(...); duodraco - 2009
  11. 11. SPL: Standard PHP Library duodraco - 2009
  12. 12. SPL ● Classes, Interfaces e funções ● Funções para Autoload e outras ● Iterators ● Estruturas de Dados ● Observer ● Array Object ● ... duodraco - 2009
  13. 13. PDO: PHP Data Objects duodraco - 2009
  14. 14. PDO ● Interface padrão para acesso a BD ● $pdo->query ao invés de mysql_query ou pg_query ● Drivers ● MSSql, MySQL, PostgreSQL, Firebird, Oracle, etc ● PDO 4D (experimental) ● ODBC ● Utiliza-se da SPL ● Iterators reduzem a carga ● Processamento ● Transporte de dados duodraco - 2009
  15. 15. Datetime duodraco - 2009
  16. 16. Datetime ● PHP 5.2+ ● Conjunto de classes para manipulação de tempo. ● Timezone ● Interval / Period duodraco - 2009
  17. 17. Command Line Interface duodraco - 2009
  18. 18. Buscando recursos externos duodraco - 2009
  19. 19. Google Code duodraco - 2009
  20. 20. Source Forge duodraco - 2009
  21. 21. PEAR e PECL duodraco - 2009
  22. 22. PEAR e PECL ● PEAR – Classes e bibliotecas (PHP) ● PECL – Extensões compiladas ● pear channel-discover pear.phpunit.de ● pear install –all-deps phpunit/PHPUnit ● pecl install xdebug duodraco - 2009
  23. 23. Fazendo Arte duodraco - 2009
  24. 24. Integração Contínua duodraco - 2009
  25. 25. Integração Contínua ● “..., Condição de constituir um todo pela adição ou combinação de partes ou elementos.” (Michaelis) ● Integração de uma mudança ● Sem que quebre seu projeto ● Regularmente ● Prática de engenharia de software ● Metodologias ágeis ● Produzir um sistema funcional quantas vezes forem possíveis duodraco - 2009
  26. 26. Integração Contínua ● CruiseControl + PHP Under Control ● Hudson + Phing ● XINC – Xinc Is Not Cruise Control ● Sismo duodraco - 2009
  27. 27. Deployment com Phing duodraco - 2009
  28. 28. Phing ● Phing Is Not Gnumake ● Ferramenta de building, realiza tarefas que auxiliam a aplicação ● Configurar ● Empacotar ● Transferir entre servidores ● Testar – Testes unitários, padrões de código, documentação ● etc duodraco - 2009
  29. 29. Testes Unitários duodraco - 2009
  30. 30. Testes Unitários ● Testes de Entrada e Saída para cada unidade do projeto ● PHPUnit ● Lime ● SimpleTest duodraco - 2009
  31. 31. Padrão de Codificação duodraco - 2009
  32. 32. Padrão de Codificação ● Organização ● Consistência, todos programam do mesmo jeito ● Zend, PEAR, PHPCS, Squiz e MySource ● PHP_Codesniffer ● CodeBeautifier / PHP_Beautifier duodraco - 2009
  33. 33. Documentação duodraco - 2009
  34. 34. Documentação ● PHPDocumentor ● Doxygen ● PHP2UML / UML2PHP ● Dia2PHP ● PHP2XMI duodraco - 2009
  35. 35. Replicação duodraco - 2009
  36. 36. Replicação ● Duplicação: ● Textualmente ● Marcação ● Funcionalidade ● Replicação != Reutilização ● Código replicado “evolui” em separado ● PHPCPD – Copy & Paste Detector ● Varre os arquivos PHP em busca de trechos duplicados duodraco - 2009
  37. 37. Métricas de Software duodraco - 2009
  38. 38. Métricas de Software ● PHP_Depend ● Identifica porções de código candidatas a refatoração. ● CCN: Cyclomatic Complexity ● LoC - > Linhas de Código – Totais – Comentadas (CLoC) ou não (NCLoC) – Executáveis (EloC) ● etc.. duodraco - 2009
  39. 39. Acabando com os Bugs! duodraco - 2009
  40. 40. Acabando com os Bugs! ● NÃO “DEBUGUE” COM ECHO!!! ● Utilize ferramentas que: ● Param a execução ● Permitem o avanço passo-a-passo da execução ● Mostram todas as variáveis ativas em qualquer ponto ● Avaliam performance ● Possibilitem que você faça tudo isso da sua IDE duodraco - 2009
  41. 41. E o nosso Rodasol é ... duodraco - 2009
  42. 42. XDebug ● PECL, Binários, código fonte ● Debugging ● Tracing ● Profilling ● Cachegrind ● Integração com as principais IDEs duodraco - 2009
  43. 43. Além do Rodasol ● Webgrind ● PHP_Debug ● Dbug ● FirePHP ● *DBG* duodraco - 2009
  44. 44. Frameworks duodraco - 2009
  45. 45. Frameworks ● Vai te poupar tempo ● e evitar cabelos brancos precoces ● O básico já está pronto ● Estrutura ● Conexão com o BD ● Segurança ● Comuncação (API / Email / WS / etc) ● Na maioria adotam o MVC duodraco - 2009
  46. 46. Frameworks ● Zend Framework ● Prado ● Symfony ● EzComponents ● CakePHP ● FuseBox ● CodeIgniter ● QCodo ● Kohana ● Seagull ● Yii duodraco - 2009
  47. 47. Banco de Dados duodraco - 2009
  48. 48. Camada de Abstração ● Permite-nos usar o BD, sem usá-lo diretamente, seja qual for. ● MDB2 ● ADODB ● DbFacile ● PDO duodraco - 2009
  49. 49. ORM ● Mapeamento Objeto-Relacional ● Objetos como entidades ● Creole ● Propel ● Doctrine ● Outlet , RedBean duodraco - 2009
  50. 50. Gerenciando duodraco - 2009
  51. 51. Gerenciando ● Projetos ● Tarefas ● Bugs ● Equipe ● Workflow ● Versões ● Integração duodraco - 2009
  52. 52. Gerenciando Projetos ● PHProjekt ● PHP-Collab ● Achievo ● Arbit ● Mantis duodraco - 2009
  53. 53. Objetivo e Criatividade duodraco - 2009
  54. 54. Perguntas??? duodraco - 2009
  55. 55. Obrigado!!! duodraco - 2009
  56. 56. http://joind.in/1203 ● duodraco@phpsp.org.br ● anderson@duodraco.com ● facebook.com/duodraco ● twitter.com/duodraco ● duodraco.com ● phpsp.org.br duodraco - 2009

×