Zend Framework:Desenvolvimento Padronizado e Produtivo               em PHP      Flávio Gomes da Silva Lisboa             ...
Desenvolvimento de Software     ●    Não é como desenvolver um produto industrial          tangível     ●    Não significa...
Desenvolvimento de Software●   Você não precisa criar algo novo para escrever    seu nome na história.
Replicação de Código●   O mundo não nasceu com você
Replicação de Código ●   Antes de tentar resolver o problema, procure     alguém que já o resolveu ●   Aperfeiçoe a soluçã...
Replicação de Código●   Pratique Engenharia de Software: desenvolva    com componentes
Engenharia de Software?
Como seria maravilhoso se fossepossível construir software como se  faz um produto de engenharia...     mas deve ser um so...
Linha de Produção: um de cada vez       blogs.estadao.com.br
Linha de Produção de Software?
Não dá! Todos ao mesmo tempo!   grupoeditagos.com.br
Pra que serveEngenharia de Software?
Para planejar e acompanhar   a construção do software
Arquitetura de Software?
Código bonito?000000000000000000000000000000000000000000011000000000011000001111000000001111000001100000000001100000000000...
WYAIWII
Não faça isso com software!
Não faça isso com software!
Não faça isso com software!
Não faça isso com software!
Não faça isso com software!
Não faça isso com software!
Não faça isso com software!
Não faça isso com software!
Não faça isso com software!
Não faça isso com software!
Replicação de Código●   O ideal é nem programar...                                  http://tsf.sapo.pt/Storage/ng1046747.jpg
Replicação de Código●   Mas tem que ter uma base...
Replicação de Código●   Você pode construir seus componentes...
Replicação de Código●   Mas compartilhe-os...
Multiplicidade de Soluções●   Estamos falando de PHP especificamente...
PHP roda em quase 1/3 da Internet;PHP é simples, não é preciso doutoradopara utilizá-la;PHP é adaptável;PHP é interoperáve...
PHP foi criada para Web.Mas também é excelente para scripts deautomação de tarefas.Também cria aplicações Desktop (PHP-GTK...
PHP tem suporte completo à orientação aobjetos.Mas também permite uso de programaçãoestruturada, ao mesmo tempo.
Multiplicidade de Soluções●   Muitas opções●   Muitas possibilidades●   Muitas dúvidas: o que usar e como usar?
Complexidade de códigoNinguém tem o cérebrogrande o bastante paraconter um programa decomputador moderno.* Dijkstra, Edsge...
Complexidade de código●   Manutenção gera mais código●   mais código = mais complexo●   Maior complexidade exige maior con...
Complexidade de código
Rede de dependências              A        D     B     CI       G     H     E      F        J     K
Rede de dependências
Rede de dependências
Framework              Projetar software orientado a                     objetos é difícil.              Projetar software...
Framework                                                   “Frameworks                                                   ...
Framework     Frameworks     Padrões de projeto     Bibliotecas de classes e containers
Framework                                                     “Construir um                                               ...
Zend Framework●   Biblioteca de classes PHP 5●   Container para aplicações MVC●   Padrões de projeto implementados
Zend Framework●   Código extensível●   Código bem testado●   Arquitetura flexível●   Sem necessidade de arquivos de config...
Padrões de Codificação                  Felipe II da Macedônia
Padrões de Codificação                   Otto von Bismarck
Arquitetura
Arquitetura
Componentes●   Acoplamento fraco: poucas dependências●   Interface padronizada: melhor comunicação●   Configuráveis: de ac...
Componentes●   MVC    ●   Controlador Frontal    ●   Controlador de Página    ●   Visão em Duas Etapas    ●   Modelo: Banc...
Componentes
Componentes●   Segurança    ●   Autenticação    ●   Autorização    ●   Filtros    ●   Validadores    ●   Tratamento de SQL...
Componentes●   Diagnóstico e Manutenção    ●   Debugger    ●   Logging
Componentes●   Infraestrutura    ●   Configuração por arquivos .INI, .XML ou .YAML    ●   Exceções    ●   Registro Ativo  ...
Componentes●   Performance    ●   Cache    ●   Memória    ●   Configuração    ●   Otimização
Componentes●   Banco de Dados    ●   Abstração da conexão    ●   Consultas armazenadas    ●   SQL Orientada a Objeto    ● ...
Componentes●   Formulários dinâmicos    ●   Composição de elementos    ●   Validação integrada    ●   Filtragem integrada ...
Componentes●   Internacionalização    ●   Localização    ●   Tradução    ●   Data    ●   Moeda    ●   Helpers de visão
Componentes●   E-mail    ●   Envio    ●   Armazenamento
Componentes●   Busca    ●   Indexação    ●   Consulta    ●   Performance
Componentes●   Webservices    ●   XML-RPC    ●   SOAP    ●   REST    ●   Zend_Service
Componentes●   Nuvem    ●   Amazon    ●   Google    ●   Genérico
Componentes●   Et coetera
Comunidade
Comunidade
ComunidadeMais de 10 Milhões de DownloadsMais de 500 ContribudoresMais de 1000 páginas no Guia de Referência On-LineMais d...
Antecipação à evolução do PHP
Informaçõeshttp://framework.zend.comhttp://forum.zfbrasil.comLivros:
Informações      http://www.temporealeventos.com.br/?area=107Mão na Massa Zend Framework
Informações
Projeto FGSL2ZFhttp://sourceforge.net/projects/fgslibraryphp
Obrigadowww.fgsl.eti.br
Próximos SlideShares
Carregando em…5
×

Palestra Zend Framework na Campus Party 2011

965 visualizações

Publicada em

Palestra sobre Zend Framework proferida na Campus Party 2011

Publicada em: Tecnologia
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Palestra Zend Framework na Campus Party 2011

  1. 1. Zend Framework:Desenvolvimento Padronizado e Produtivo em PHP Flávio Gomes da Silva Lisboa www.fgsl.eti.br @fgsl
  2. 2. Desenvolvimento de Software ● Não é como desenvolver um produto industrial tangível ● Não significa criar MAIS código ● A manutenção deve ser o principal foco ● Você só pode melhorar o que existehttp://www.oitopassos.com/wp-content/uploads/Felizdesaniversrio_11183/chapeleirolouco.jpg
  3. 3. Desenvolvimento de Software● Você não precisa criar algo novo para escrever seu nome na história.
  4. 4. Replicação de Código● O mundo não nasceu com você
  5. 5. Replicação de Código ● Antes de tentar resolver o problema, procure alguém que já o resolveu ● Aperfeiçoe a solução existente ● Una esforços, não divida-os Uma flecha sozinha se quebra, por mais que envergue. Mas várias flechas são mais difíceis de quebrar.Melhor é serem dois do que um, porque têmmelhor paga do seu trabalho.Eclesiastes 4:9
  6. 6. Replicação de Código● Pratique Engenharia de Software: desenvolva com componentes
  7. 7. Engenharia de Software?
  8. 8. Como seria maravilhoso se fossepossível construir software como se faz um produto de engenharia... mas deve ser um sonho...
  9. 9. Linha de Produção: um de cada vez blogs.estadao.com.br
  10. 10. Linha de Produção de Software?
  11. 11. Não dá! Todos ao mesmo tempo! grupoeditagos.com.br
  12. 12. Pra que serveEngenharia de Software?
  13. 13. Para planejar e acompanhar a construção do software
  14. 14. Arquitetura de Software?
  15. 15. Código bonito?0000000000000000000000000000000000000000000110000000000110000011110000000011110000011000000000011000000000000000000000000000000000000000000000000010000001000000000000010000100000000100000000000000001000100000000000000100000111111111111110000000111111111111000000000000000000000000
  16. 16. WYAIWII
  17. 17. Não faça isso com software!
  18. 18. Não faça isso com software!
  19. 19. Não faça isso com software!
  20. 20. Não faça isso com software!
  21. 21. Não faça isso com software!
  22. 22. Não faça isso com software!
  23. 23. Não faça isso com software!
  24. 24. Não faça isso com software!
  25. 25. Não faça isso com software!
  26. 26. Não faça isso com software!
  27. 27. Replicação de Código● O ideal é nem programar... http://tsf.sapo.pt/Storage/ng1046747.jpg
  28. 28. Replicação de Código● Mas tem que ter uma base...
  29. 29. Replicação de Código● Você pode construir seus componentes...
  30. 30. Replicação de Código● Mas compartilhe-os...
  31. 31. Multiplicidade de Soluções● Estamos falando de PHP especificamente...
  32. 32. PHP roda em quase 1/3 da Internet;PHP é simples, não é preciso doutoradopara utilizá-la;PHP é adaptável;PHP é interoperável;PHP é portável;PHP tem mais de 4,5 milhões de usuários;A combinação Linux/Apache/PHP tem altaperformance e estabilidade;
  33. 33. PHP foi criada para Web.Mas também é excelente para scripts deautomação de tarefas.Também cria aplicações Desktop (PHP-GTK)E agora também cria aplicações embarcadasem Android.
  34. 34. PHP tem suporte completo à orientação aobjetos.Mas também permite uso de programaçãoestruturada, ao mesmo tempo.
  35. 35. Multiplicidade de Soluções● Muitas opções● Muitas possibilidades● Muitas dúvidas: o que usar e como usar?
  36. 36. Complexidade de códigoNinguém tem o cérebrogrande o bastante paraconter um programa decomputador moderno.* Dijkstra, Edsger, 1972. “The HumbleProgrammer” Communications of theACM 15, nº 10 (Outubro): 859-66. Edsger Wybe Dijkstra
  37. 37. Complexidade de código● Manutenção gera mais código● mais código = mais complexo● Maior complexidade exige maior controle
  38. 38. Complexidade de código
  39. 39. Rede de dependências A D B CI G H E F J K
  40. 40. Rede de dependências
  41. 41. Rede de dependências
  42. 42. Framework Projetar software orientado a objetos é difícil. Projetar software orientado a objetos reusável é mais difícil ainda.Erich Gamma
  43. 43. Framework “Frameworks estão no mais alto nível de reuso” Erich Gammahttp://www.artima.com/lejava/articles/reuse.html
  44. 44. Framework Frameworks Padrões de projeto Bibliotecas de classes e containers
  45. 45. Framework “Construir um framework é um alto risco e um investimento significativo”. Erich Gammahttp://www.artima.com/lejava/articles/reuse.html
  46. 46. Zend Framework● Biblioteca de classes PHP 5● Container para aplicações MVC● Padrões de projeto implementados
  47. 47. Zend Framework● Código extensível● Código bem testado● Arquitetura flexível● Sem necessidade de arquivos de configuração● Licença amigável: livre e aberto● Suporte a AJAX, busca, web services e computação em nuvem.● Comunidade ativa:● Farta documentação e bibliografia
  48. 48. Padrões de Codificação Felipe II da Macedônia
  49. 49. Padrões de Codificação Otto von Bismarck
  50. 50. Arquitetura
  51. 51. Arquitetura
  52. 52. Componentes● Acoplamento fraco: poucas dependências● Interface padronizada: melhor comunicação● Configuráveis: de acordo com seu gosto● Framework provê abstração para componentes de terceiros: para aplicação, fica transparente o que é do Zend Framework e o que não é.
  53. 53. Componentes● MVC ● Controlador Frontal ● Controlador de Página ● Visão em Duas Etapas ● Modelo: Banco de Dados, RSS, Mecanismo de Busca, Webservices... ● Roteadores ● Plugins ● Helpers
  54. 54. Componentes
  55. 55. Componentes● Segurança ● Autenticação ● Autorização ● Filtros ● Validadores ● Tratamento de SQL Injection
  56. 56. Componentes● Diagnóstico e Manutenção ● Debugger ● Logging
  57. 57. Componentes● Infraestrutura ● Configuração por arquivos .INI, .XML ou .YAML ● Exceções ● Registro Ativo ● Controle da versão ● Carregador de classes e arquivos ● Sessão
  58. 58. Componentes● Performance ● Cache ● Memória ● Configuração ● Otimização
  59. 59. Componentes● Banco de Dados ● Abstração da conexão ● Consultas armazenadas ● SQL Orientada a Objeto ● Data Table Gateway e Data Row Gateway ● Data Mapper e Active Record
  60. 60. Componentes● Formulários dinâmicos ● Composição de elementos ● Validação integrada ● Filtragem integrada ● AJAX integrado ● RIA integrada ● Subformulários ● Configuráveis por arquivos .INI ● Internacionalização
  61. 61. Componentes● Internacionalização ● Localização ● Tradução ● Data ● Moeda ● Helpers de visão
  62. 62. Componentes● E-mail ● Envio ● Armazenamento
  63. 63. Componentes● Busca ● Indexação ● Consulta ● Performance
  64. 64. Componentes● Webservices ● XML-RPC ● SOAP ● REST ● Zend_Service
  65. 65. Componentes● Nuvem ● Amazon ● Google ● Genérico
  66. 66. Componentes● Et coetera
  67. 67. Comunidade
  68. 68. Comunidade
  69. 69. ComunidadeMais de 10 Milhões de DownloadsMais de 500 ContribudoresMais de 1000 páginas no Guia de Referência On-LineMais de 500 Exemplos no Guia de Referência On-LineQuase 6 milhões de hits no GoogleMais de 900 hits em TechnoratiMais de 120 projetos que são baseados, estendem ou suportamZend Framework no SourceForgeMais de 280 projetos que são baseados, estendem ou suportamZend Framework no Google CodeMais de 4000 relatos resolvidos no Issue Tracker
  70. 70. Antecipação à evolução do PHP
  71. 71. Informaçõeshttp://framework.zend.comhttp://forum.zfbrasil.comLivros:
  72. 72. Informações http://www.temporealeventos.com.br/?area=107Mão na Massa Zend Framework
  73. 73. Informações
  74. 74. Projeto FGSL2ZFhttp://sourceforge.net/projects/fgslibraryphp
  75. 75. Obrigadowww.fgsl.eti.br

×