• Like

Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

A Arte do Desenvolvimento PHP v.1.5

  • 1,442 views
Uploaded on

Esta palestra visa realizar um paralelo entre o desenvolvimento de aplicações e o trabalho de artistas.

Esta palestra visa realizar um paralelo entre o desenvolvimento de aplicações e o trabalho de artistas.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,442
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
49
Comments
0
Likes
13

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. A Arte do Desenvolvimento PHP PHP Conference 2010
  • 2. Duodraco...● Desenvolvimento web desde 2002 ● Análise, desenvolvimento, arquitetura● Zend Certified Engineer 07● Certified Scrum Master● Analista no TiqueImóveis● Evangelista PHP PHPConference Brasil 2010 - Duodraco
  • 3. Falaremos hoje sobre● PHP● Técnicas de Desenvolvimento● Boas Práticas● Ferramentas● Coisas para ter em mente● Entre outras coisas PHPConference Brasil 2010 - Duodraco
  • 4. ObjetivosPHPConference Brasil 2010 - Duodraco
  • 5. Somos Artesãos
  • 6. precisamos de ferramentas
  • 7. O que temos à mão? PHPConference Brasil 2010 - Duodraco
  • 8. PHP● Por si só já é uma toolbox● Suporta a maioria dos SGBDs● SQLite● Suporte a Orientação a Objetos ● Design Patterns● Streams● Controle sobre o HTTP● XML, JSON, WSDL ... PHPConference Brasil 2010 - Duodraco
  • 9. NamespacesPHPConference Brasil 2010 - Duodraco
  • 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(...); PHPConference Brasil 2010 - Duodraco
  • 11. SPL: Standard PHP Library PHPConference Brasil 2010 - Duodraco
  • 12. SPL● Classes, Interfaces e funções● Funções para Autoload e outras● Iterators● Estruturas de Dados● Observer● Array Object● SPLTypes PHPConference Brasil 2010 - Duodraco
  • 13. PDO: PHP Data Objects
  • 14. PDO● Interface padrão para acesso a BD ● $pdo->query ao invés de xpto_query● Drivers ● MSSql, MySQL, PostgreSQL, Firebird, Oracle*, PDO 4D (experimental), ODBC● Utiliza-se da SPL● Iterators reduzem a carga ● Processamento e Transporte de dados *instável PHPConference Brasil 2010 - Duodraco
  • 15. Datetime PHPConference Brasil 2010 - Duodraco
  • 16. Datetime● PHP 5.2+● Conjunto de classes para manipulação de tempo.● Timezone● Interval / Period PHPConference Brasil 2010 - Duodraco
  • 17. Command Line InterfacePHPConference Brasil 2010 - Duodraco
  • 18. Buscando recursos externos PHPConference Brasil 2010 - Duodraco
  • 19. Google Code
  • 20. Source Forge PHPConference Brasil 2010 - Duodraco
  • 21. GitHub
  • 22. PEAR e PECL PHPConference Brasil 2010 - Duodraco
  • 23. 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● Em breve PEAR2 PHPConference Brasil 2010 - Duodraco
  • 24. Mãos à obra
  • 25. IDE● Integrated Development Enviroment ● Ambiente integrado: Código, Debug, Profilling...● Eclipse ● ZendStudio | PDT | Aptana● Netbeans● Komodo● Kdevelop● Geany PHPConference Brasil 2010 - Duodraco
  • 26. Editores● Windows ● VIM ● Notepad++● Mac ● Textmate ● Coda● Linux ● Kate ● Gedit PHPConference Brasil 2010 - Duodraco
  • 27. Frameworks PHPConference Brasil 2010 - Duodraco
  • 28. 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 PHPConference Brasil 2010 - Duodraco
  • 29. Frameworks● Zend Framework ● Prado● Symfony ● EzComponents● CakePHP ● FuseBox● CodeIgniter ● QCodo● Kohana● Seagull● Yii PHPConference Brasil 2010 - Duodraco
  • 30. Manipulação de Dados
  • 31. Camada de Abstração● Provê uma interface unificada de comunicação entre a aplicação e o Banco de Dados, seja qual for. ● PDO ● MDB2 ● ADODB ● DbFacile ● Doctrine PHPConference Brasil 2010 - Duodraco
  • 32. ORM● Mapeamento Objeto-Relacional● Objetos como entidades● Creole● Propel● Doctrine● Outlet , RedBean PHPConference Brasil 2010 - Duodraco
  • 33. NoSQL● Memcached [PECL]● MongoDB | CouchDB ● JSON ● Extensão ● Doctrine PHPConference Brasil 2010 - Duodraco
  • 34. Acabando com os Bugs!PHPConference Brasil 2010 - Duodraco
  • 35. 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 PHPConference Brasil 2010 - Duodraco
  • 36. E o nosso repelente é …
  • 37. XDebug● PECL, Binários, código fonte● Debugging● Tracing● Profilling ● Cachegrind● Integração com as principais IDEs PHPConference Brasil 2010 - Duodraco
  • 38. Além do XDebug● Webgrind● PHP_Debug● Dbug● FirePHP● *DBG* PHPConference Brasil 2010 - Duodraco
  • 39. Fazendo ArtePHPConference Brasil 2010 - Duodraco
  • 40. Integração Contínua PHPConference Brasil 2010 - Duodraco
  • 41. 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 PHPConference Brasil 2010 - Duodraco
  • 42. Integração Contínua● Hudson + Phing● PHP Under Control [CruiseControl]● Arbit● Sismo● XINC – Xinc Is Not Cruise Control PHPConference Brasil 2010 - Duodraco
  • 43. Deployment com PhingPHPConference Brasil 2010 - Duodraco
  • 44. 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 PHPConference Brasil 2010 - Duodraco
  • 45. Testes Unitários
  • 46. Testes Unitários● Testes de Entrada e Saída para cada unidade do projeto● PHPUnit● Lime● SimpleTest PHPConference Brasil 2010 - Duodraco
  • 47. Padrão de CodificaçãoPHPConference Brasil 2010 - Duodraco
  • 48. 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 PHPConference Brasil 2010 - Duodraco
  • 49. Documentação
  • 50. Documentação● PHPDocumentor● Doxygen● Annotations● PHP2UML / UML2PHP● Dia2PHP● PHP2XMI PHPConference Brasil 2010 - Duodraco
  • 51. Replicação
  • 52. 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 PHPConference Brasil 2010 - Duodraco
  • 53. Bagunça???
  • 54. Bagunça???● Pouca experiência● Código Legado● Pressa● Pressão● Sobrinhos... PHPConference Brasil 2010 - Duodraco
  • 55. PHP Mess Detector● Procura por trechos que possam ● Ter possíveis bugs ● Código não otimizado ● Expressões exageradamente complexas ● Parâmetros, métodos e atributos não usados● Indica código a ser refatorado PHPConference Brasil 2010 - Duodraco
  • 56. Métricas de Software
  • 57. Métricas de Software● PHP_Depend ● Indetifica porções de código candidatas a refatoração. ● CCN: Cyclomatic Complexity ● LoC - > Lines of Code – Totais – Comentadas (CLoC) ou não (NCLoC) – Executáveis (EloC) ● etc.. PHPConference Brasil 2010 - Duodraco
  • 58. Gerenciando PHPConference Brasil 2010 - Duodraco
  • 59. Gerenciando● Projetos● Tarefas● Bugs● Equipe● Workflow● Versões● Integração PHPConference Brasil 2010 - Duodraco
  • 60. Gerenciando Projetos● PHProjekt● PHP-Collab● Achievo● Arbit● Mantis PHPConference Brasil 2010 - Duodraco
  • 61. Objetivo e Criatividade
  • 62. Dúvidas???
  • 63. Contato● http://duodra.co● o@duodra.co● @duodraco [twitter e identi.ca]● facebook.com/duodraco● linkedin.com/in/andersoncasimiro● slideshare.net/duodraco PHPConference Brasil 2010 - Duodraco