A Arte do Desenvolvimento PHPA Arte do Desenvolvimento PHP
PHP Conference 2010PHP Conference 2010
PHPConference Brasil 2010 - Duodraco
Duodraco...Duodraco...
● Desenvolvimento web desde 2002
● Análise, desenvolvimento, a...
PHPConference Brasil 2010 - Duodraco
Falaremos hoje sobreFalaremos hoje sobre
● PHP
● Técnicas de Desenvolvimento
● Boas P...
PHPConference Brasil 2010 - Duodraco
ObjetivosObjetivos
Somos ArtesãosSomos Artesãos
precisamos de ferramentasprecisamos de ferramentas
PHPConference Brasil 2010 - Duodraco
O que temos à mão?O que temos à mão?
PHPConference Brasil 2010 - Duodraco
PHPPHP
● Por si só já é uma toolbox
● Suporta a maioria dos SGBDs
● SQLite
● Suporte ...
PHPConference Brasil 2010 - Duodraco
NamespacesNamespaces
PHPConference Brasil 2010 - Duodraco
● PHP5.3+
● Organização
● Pacotes
● Evita conflitos de nome
namespace Framework  DB;
...
PHPConference Brasil 2010 - Duodraco
SPL: Standard PHP LibrarySPL: Standard PHP Library
PHPConference Brasil 2010 - Duodraco
SPLSPL
● Classes, Interfaces e funções
● Funções para Autoload e outras
● Iterators
●...
PDO: PHP Data ObjectsPDO: PHP Data Objects
PHPConference Brasil 2010 - Duodraco
PDOPDO
● Interface padrão para acesso a BD
● $pdo->query ao invés de xpto_query
● Dri...
PHPConference Brasil 2010 - Duodraco
DatetimeDatetime
PHPConference Brasil 2010 - Duodraco
DatetimeDatetime
● PHP 5.2+
● Conjunto de classes para manipulação de
tempo.
● Timezo...
PHPConference Brasil 2010 - Duodraco
Command Line InterfaceCommand Line Interface
PHPConference Brasil 2010 - Duodraco
Buscando recursos externosBuscando recursos externos
Google CodeGoogle Code
PHPConference Brasil 2010 - Duodraco
Source ForgeSource Forge
GitHubGitHub
PHPConference Brasil 2010 - Duodraco
PEAR e PECLPEAR e PECL
PHPConference Brasil 2010 - Duodraco
PEAR e PECLPEAR e PECL
● PEAR – Classes e bibliotecas (PHP)
● PECL – Extensões compil...
Mãos à obraMãos à obra
PHPConference Brasil 2010 - Duodraco
IDEIDE
● Integrated Development Enviroment
● Ambiente integrado: Código, Debug, Profi...
PHPConference Brasil 2010 - Duodraco
EditoresEditores
● Windows
● Notepad++
● Mac
● Textmate
● Coda
● Linux
● Kate
● Gedit...
PHPConference Brasil 2010 - Duodraco
FrameworksFrameworks
PHPConference Brasil 2010 - Duodraco
FrameworksFrameworks
● Vai te poupar tempo
● e evitar cabelos brancos precoces
● O bá...
PHPConference Brasil 2010 - Duodraco
FrameworksFrameworks
● Zend Framework
● Symfony
● CakePHP
● CodeIgniter
● Kohana
● Se...
Manipulação de DadosManipulação de Dados
PHPConference Brasil 2010 - Duodraco
Camada de AbstraçãoCamada de Abstração
● Provê uma interface unificada de comunicação...
PHPConference Brasil 2010 - Duodraco
ORMORM
● Mapeamento Objeto-Relacional
● Objetos como entidades
● Creole
● Propel
● Do...
PHPConference Brasil 2010 - Duodraco
NoSQLNoSQL
● Memcached [PECL]
● MongoDB | CouchDB
● JSON
● Extensão
● Doctrine
PHPConference Brasil 2010 - Duodraco
Acabando com os Bugs!Acabando com os Bugs!
PHPConference Brasil 2010 - Duodraco
Acabando com os Bugs!Acabando com os Bugs!
● NÃO “DEBUGUE” COM ECHO!!!
● Utilize ferr...
E o nosso repelente é …E o nosso repelente é …
PHPConference Brasil 2010 - Duodraco
XDebugXDebug
● PECL, Binários, código fonte
● Debugging
● Tracing
● Profilling
● Cach...
PHPConference Brasil 2010 - Duodraco
Além do XDebugAlém do XDebug
● Webgrind
● PHP_Debug
● Dbug
● FirePHP
● *DBG*
PHPConference Brasil 2010 - Duodraco
Fazendo ArteFazendo Arte
PHPConference Brasil 2010 - Duodraco
Integração ContínuaIntegração Contínua
PHPConference Brasil 2010 - Duodraco
Integração ContínuaIntegração Contínua
● “² Condição de constituir um todo pela adiçã...
PHPConference Brasil 2010 - Duodraco
Integração ContínuaIntegração Contínua
● Hudson + Phing
● PHP Under Control [CruiseCo...
PHPConference Brasil 2010 - Duodraco
Deployment com PhingDeployment com Phing
PHPConference Brasil 2010 - Duodraco
PhingPhing
● Phing Is Not Gnumake
● Ferramenta de building, realiza tarefas que
auxil...
Testes UnitáriosTestes Unitários
PHPConference Brasil 2010 - Duodraco
Testes UnitáriosTestes Unitários
● Testes de Entrada e Saída para cada unidade
do pro...
PHPConference Brasil 2010 - Duodraco
Padrão de CodificaçãoPadrão de Codificação
PHPConference Brasil 2010 - Duodraco
Padrão de CodificaçãoPadrão de Codificação
● Organização
● Consistência, todos progra...
DocumentaçãoDocumentação
PHPConference Brasil 2010 - Duodraco
DocumentaçãoDocumentação
● PHPDocumentor
● Doxygen
● Annotations
● PHP2UML / UML2PHP
...
ReplicaçãoReplicação
PHPConference Brasil 2010 - Duodraco
ReplicaçãoReplicação
● Duplicação:
● Textualmente
● Marcação
● Funcionalidade
● Repli...
Bagunça???Bagunça???
PHPConference Brasil 2010 - Duodraco
Bagunça???Bagunça???
● Pouca experiência
● Código Legado
● Pressa
● Pressão
● Sobrinh...
PHPConference Brasil 2010 - Duodraco
PHP Mess DetectorPHP Mess Detector
● Procura por trechos que possam
● Ter possíveis b...
Métricas de SoftwareMétricas de Software
PHPConference Brasil 2010 - Duodraco
Métricas de SoftwareMétricas de Software
● PHP_Depend
● Indetifica porções de código ...
PHPConference Brasil 2010 - Duodraco
GerenciandoGerenciando
PHPConference Brasil 2010 - Duodraco
GerenciandoGerenciando
● Projetos
● Tarefas
● Bugs
● Equipe
● Workflow
● Versões
● In...
PHPConference Brasil 2010 - Duodraco
Gerenciando ProjetosGerenciando Projetos
● PHProjekt
● PHP-Collab
● Achievo
● Arbit
●...
Objetivo e CriatividadeObjetivo e Criatividade
Dúvidas???Dúvidas???
PHPConference Brasil 2010 - Duodraco
● http://duodra.co
● o@duodra.co
● @duodraco [twitter e identi.ca]
● facebook.com/duo...
Próximos SlideShares
Carregando em…5
×

A Arte do Desenvolvimento PHP v.1.5

1.788 visualizações

Publicada em

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

Publicada em: Tecnologia
0 comentários
13 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.788
No SlideShare
0
A partir de incorporações
0
Número de incorporações
7
Ações
Compartilhamentos
0
Downloads
57
Comentários
0
Gostaram
13
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

A Arte do Desenvolvimento PHP v.1.5

  1. 1. A Arte do Desenvolvimento PHPA Arte do Desenvolvimento PHP PHP Conference 2010PHP Conference 2010
  2. 2. PHPConference Brasil 2010 - Duodraco Duodraco...Duodraco... ● Desenvolvimento web desde 2002 ● Análise, desenvolvimento, arquitetura ● Zend Certified Engineer '07 ● Certified Scrum Master ● Analista no TiqueImóveis ● Evangelista PHP
  3. 3. PHPConference Brasil 2010 - Duodraco Falaremos hoje sobreFalaremos hoje sobre ● PHP ● Técnicas de Desenvolvimento ● Boas Práticas ● Ferramentas ● Coisas para ter em mente ● Entre outras coisas
  4. 4. PHPConference Brasil 2010 - Duodraco ObjetivosObjetivos
  5. 5. Somos ArtesãosSomos Artesãos
  6. 6. precisamos de ferramentasprecisamos de ferramentas
  7. 7. PHPConference Brasil 2010 - Duodraco O que temos à mão?O que temos à mão?
  8. 8. PHPConference Brasil 2010 - Duodraco PHPPHP ● 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 ...
  9. 9. PHPConference Brasil 2010 - Duodraco NamespacesNamespaces
  10. 10. PHPConference Brasil 2010 - Duodraco ● PHP5.3+ ● Organização ● Pacotes ● Evita conflitos de nome namespace Framework DB; use Framework DB; Instance::conn($dsn,$user,$secret); Framework DB Instance::conn(...); NamespacesNamespaces
  11. 11. PHPConference Brasil 2010 - Duodraco SPL: Standard PHP LibrarySPL: Standard PHP Library
  12. 12. PHPConference Brasil 2010 - Duodraco SPLSPL ● Classes, Interfaces e funções ● Funções para Autoload e outras ● Iterators ● Estruturas de Dados ● Observer ● Array Object ● SPLTypes
  13. 13. PDO: PHP Data ObjectsPDO: PHP Data Objects
  14. 14. PHPConference Brasil 2010 - Duodraco PDOPDO ● 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
  15. 15. PHPConference Brasil 2010 - Duodraco DatetimeDatetime
  16. 16. PHPConference Brasil 2010 - Duodraco DatetimeDatetime ● PHP 5.2+ ● Conjunto de classes para manipulação de tempo. ● Timezone ● Interval / Period
  17. 17. PHPConference Brasil 2010 - Duodraco Command Line InterfaceCommand Line Interface
  18. 18. PHPConference Brasil 2010 - Duodraco Buscando recursos externosBuscando recursos externos
  19. 19. Google CodeGoogle Code
  20. 20. PHPConference Brasil 2010 - Duodraco Source ForgeSource Forge
  21. 21. GitHubGitHub
  22. 22. PHPConference Brasil 2010 - Duodraco PEAR e PECLPEAR e PECL
  23. 23. PHPConference Brasil 2010 - Duodraco PEAR e PECLPEAR 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
  24. 24. Mãos à obraMãos à obra
  25. 25. PHPConference Brasil 2010 - Duodraco IDEIDE ● Integrated Development Enviroment ● Ambiente integrado: Código, Debug, Profilling... ● Eclipse ● ZendStudio | PDT | Aptana ● Netbeans ● Komodo ● Kdevelop ● Geany
  26. 26. PHPConference Brasil 2010 - Duodraco EditoresEditores ● Windows ● Notepad++ ● Mac ● Textmate ● Coda ● Linux ● Kate ● Gedit ● VIM
  27. 27. PHPConference Brasil 2010 - Duodraco FrameworksFrameworks
  28. 28. PHPConference Brasil 2010 - Duodraco FrameworksFrameworks ● 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
  29. 29. PHPConference Brasil 2010 - Duodraco FrameworksFrameworks ● Zend Framework ● Symfony ● CakePHP ● CodeIgniter ● Kohana ● Seagull ● Yii ● Prado ● EzComponents ● FuseBox ● QCodo
  30. 30. Manipulação de DadosManipulação de Dados
  31. 31. PHPConference Brasil 2010 - Duodraco Camada de AbstraçãoCamada 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
  32. 32. PHPConference Brasil 2010 - Duodraco ORMORM ● Mapeamento Objeto-Relacional ● Objetos como entidades ● Creole ● Propel ● Doctrine ● Outlet , RedBean
  33. 33. PHPConference Brasil 2010 - Duodraco NoSQLNoSQL ● Memcached [PECL] ● MongoDB | CouchDB ● JSON ● Extensão ● Doctrine
  34. 34. PHPConference Brasil 2010 - Duodraco Acabando com os Bugs!Acabando com os Bugs!
  35. 35. PHPConference Brasil 2010 - Duodraco Acabando com os Bugs!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
  36. 36. E o nosso repelente é …E o nosso repelente é …
  37. 37. PHPConference Brasil 2010 - Duodraco XDebugXDebug ● PECL, Binários, código fonte ● Debugging ● Tracing ● Profilling ● Cachegrind ● Integração com as principais IDEs
  38. 38. PHPConference Brasil 2010 - Duodraco Além do XDebugAlém do XDebug ● Webgrind ● PHP_Debug ● Dbug ● FirePHP ● *DBG*
  39. 39. PHPConference Brasil 2010 - Duodraco Fazendo ArteFazendo Arte
  40. 40. PHPConference Brasil 2010 - Duodraco Integração ContínuaIntegração Contínua
  41. 41. PHPConference Brasil 2010 - Duodraco Integração ContínuaIntegraçã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
  42. 42. PHPConference Brasil 2010 - Duodraco Integração ContínuaIntegração Contínua ● Hudson + Phing ● PHP Under Control [CruiseControl] ● Arbit ● Sismo ● XINC – Xinc Is Not Cruise Control
  43. 43. PHPConference Brasil 2010 - Duodraco Deployment com PhingDeployment com Phing
  44. 44. PHPConference Brasil 2010 - Duodraco PhingPhing ● 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
  45. 45. Testes UnitáriosTestes Unitários
  46. 46. PHPConference Brasil 2010 - Duodraco Testes UnitáriosTestes Unitários ● Testes de Entrada e Saída para cada unidade do projeto ● PHPUnit ● Lime ● SimpleTest
  47. 47. PHPConference Brasil 2010 - Duodraco Padrão de CodificaçãoPadrão de Codificação
  48. 48. PHPConference Brasil 2010 - Duodraco Padrão de CodificaçãoPadrão de Codificação ● Organização ● Consistência, todos programam do mesmo jeito ● Zend, PEAR, PHPCS, Squiz e MySource ● PHP_Codesniffer ● CodeBeautifier / PHP_Beautifier
  49. 49. DocumentaçãoDocumentação
  50. 50. PHPConference Brasil 2010 - Duodraco DocumentaçãoDocumentação ● PHPDocumentor ● Doxygen ● Annotations ● PHP2UML / UML2PHP ● Dia2PHP ● PHP2XMI
  51. 51. ReplicaçãoReplicação
  52. 52. PHPConference Brasil 2010 - Duodraco ReplicaçãoReplicaçã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
  53. 53. Bagunça???Bagunça???
  54. 54. PHPConference Brasil 2010 - Duodraco Bagunça???Bagunça??? ● Pouca experiência ● Código Legado ● Pressa ● Pressão ● Sobrinhos...
  55. 55. PHPConference Brasil 2010 - Duodraco PHP Mess DetectorPHP 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
  56. 56. Métricas de SoftwareMétricas de Software
  57. 57. PHPConference Brasil 2010 - Duodraco Métricas de SoftwareMé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..
  58. 58. PHPConference Brasil 2010 - Duodraco GerenciandoGerenciando
  59. 59. PHPConference Brasil 2010 - Duodraco GerenciandoGerenciando ● Projetos ● Tarefas ● Bugs ● Equipe ● Workflow ● Versões ● Integração
  60. 60. PHPConference Brasil 2010 - Duodraco Gerenciando ProjetosGerenciando Projetos ● PHProjekt ● PHP-Collab ● Achievo ● Arbit ● Mantis
  61. 61. Objetivo e CriatividadeObjetivo e Criatividade
  62. 62. Dúvidas???Dúvidas???
  63. 63. PHPConference Brasil 2010 - Duodraco ● http://duodra.co ● o@duodra.co ● @duodraco [twitter e identi.ca] ● facebook.com/duodraco ● linkedin.com/in/andersoncasimiro ● slideshare.net/duodraco ContatoContato

×