Zend Framework:
Reuso e extensão de componentes
para fácil manutenção
Flávio Gomes da Silva Lisboa
@fgsl
www.fgsl.eti.br
A reprodução desta apresentação é livre,
desde que a fonte seja citada.
http://wqtransito.vilabol.uol.com.br/referencias.j...
Agenda
● Desenvolvimento de software
● Replicação de código
● Multiplicidade de soluções
● Complexidade de código
● Rede d...
Desenvolvimento de Software
● Não é como desenvolver um produto industrial
tangível
● Não significa criar MAIS código
● A ...
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ê
http://coreauemrede.blogspot.com/2010/05/parto-normal-e-melhor-que-cesa...
Replicação de Código
● Antes de tentar resolver o problema, procure
alguém que já o resolveu
● Aperfeiçoe a solução existe...
Replicação de Código
● Pratique Engenharia de Software: desenvolva
com componentes
http://www.jornaldiariodonorte.com.br/s...
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...
http://img11.imageshack.us/i/casinha.jpg/
Replicação de Código
● Você pode construir seus componentes...
http://3.bp.blogspot.com/_ZOpddlzvEqQ/SyDSw5dR1oI/AAAAAAAAC...
Replicação de Código
● Mas compartilhe-os...
http://ladybugbrazil.com/wp-content/uploads/2008/08/share.jpg
Multiplicidade de Soluções
● Estamos falando de PHP especificamente...
Multiplicidade de Soluções
● O que é PHP?
Rasmus Lerdorf
Multiplicidade de Soluções
Fonte: Zend PHP Whitepaper
Multiplicidade de Soluções
Fonte: Zend PHP Whitepaper
Multiplicidade de Soluções
Andi GutmansZeev Suraski
Multiplicidade de Soluções
● PHP é simples (faca de dois gumes)
● Adaptável: procedural e orientada a objeto
● Interoperáv...
Multiplicidade de Soluções
● MITO: PHP não serve para fazer não sei o quê.
● PHP é escrito em C. Se C pode fazer alguma
co...
Multiplicidade de Soluções
● PHP possui repositórios de classes e
extensões:
Multiplicidade de Soluções
● PHP possui vários frameworks...
Multiplicidade de Soluções
● Muitas opções
● Muitas possibilidades
● Muitas dúvidas: o que usar e como usar?
http://www.ac...
Complexidade de código
Ninguém tem o cérebro
grande o bastante para
conter um programa de
computador moderno.
Edsger Wybe ...
Complexidade de código
● Manutenção gera mais código
● mais código = mais complexo
● Maior complexidade exige maior contro...
Complexidade de código
andre_said.blog.uol.com.br
Rede de dependências
A
B CD
E FG HI
J K
biologeologiando.blogspot.com
Rede de dependências
susana-coninck.blogspot.com
Rede de dependências
exit256.com
Framework
Projetar software orientado a
objetos é difícil.
Projetar software orientado a
objetos reusável é mais
difícil a...
Framework
“Frameworks
estão no mais
alto nível de
reuso”
Erich Gamma
http://www.artima.com/lejava/articles/reuse.html
Framework
Bibliotecas de classes e containers
Padrões de projeto
Bibliotecas de classes e containers
Frameworks
Framework
“Construir um
framework é um
alto risco e um
investimento
significativo”.
Erich Gamma
http://www.artima.com/leja...
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 configuraç...
Padrões de Codificação
Felipe II da Macedônia
portalsaofrancisco.com.br
Padrões de Codificação
Otto von Bismarck
fichasmarra.wordpress.com
Arquitetura
alenquer.olx.pt
Arquitetura
cidademarketing.com.br
Componentes
● Acoplamento fraco: poucas dependências
● Interface padronizada: melhor comunicação
● Configuráveis: de acord...
Componentes
● MVC
● Controlador Frontal
● Controlador de Página
● Visão em Duas Etapas
● Modelo: Banco de Dados, RSS, Meca...
Componentes
Componentes
● Segurança
● Autenticação
● Autorização
● Filtros
● Validadores
● Tratamento de SQL Injection
Componentes
● Diagnóstico e Manutenção
● Debugger
● Logging
Componentes
● Infraestrutura
● Configuração por arquivos .INI, .XML ou .YAML
● Exceções
● Registro Ativo
● Controle da ver...
Componentes
● Performance
● Cache
● Memória
● Configuração
● Otimização
Componentes
● Banco de Dados
● Abstração da conexão
● Consultas armazenadas
● SQL Orientada a Objeto
● Data Table Gateway ...
Componentes
● Formulários dinâmicos
● Composição de elementos
● Validação integrada
● Filtragem integrada
● AJAX integrado...
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
● Nuvem
● Amazon
● Google
● Genérico
Componentes
● Et coetera
Comunidade
Comunidade
Comunidade
Mais de 10 Milhões de Downloads
Mais de 500 Contribudores
Mais de 1000 páginas no Guia de Referência On-Line
Ma...
Informações
http://framework.zend.com
http://forum.zfbrasil.com
Livros:
Informações
http://www.temporealeventos.com.br/?area=199
Mão na Massa Zend Framework
Informações
www.phpconf.com.br
Informações
www.fgsl.eti.br
Próximos SlideShares
Carregando em…5
×

Zend Framework: Reuso e extensão de componentes para fácil manutenção

1.545 visualizações

Publicada em

Apresentação feita no encerramento do 1º Fórum de Tecnologia da Informação Campus Gerais, em Ponta Grossa, PR.

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

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
1.545
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
21
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Zend Framework: Reuso e extensão de componentes para fácil manutenção

  1. 1. Zend Framework: Reuso e extensão de componentes para fácil manutenção Flávio Gomes da Silva Lisboa @fgsl www.fgsl.eti.br
  2. 2. A reprodução desta apresentação é livre, desde que a fonte seja citada. http://wqtransito.vilabol.uol.com.br/referencias.jpg
  3. 3. Agenda ● Desenvolvimento de software ● Replicação de código ● Multiplicidade de soluções ● Complexidade de código ● Rede de dependências ● Framework ● Arquitetura do Zend Framework ● Componentes ● Comunidade agenda.regionais.org.br
  4. 4. 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 existe http://www.oitopassos.com/wp-content/uploads/Felizdesaniversrio_11183/chapeleirolouco.jpg
  5. 5. Desenvolvimento de Software ● Você não precisa criar algo novo para escrever seu nome na história.
  6. 6. Replicação de Código ● O mundo não nasceu com você http://coreauemrede.blogspot.com/2010/05/parto-normal-e-melhor-que-cesariana-diz.html http://imagens.kboing.com.br/papeldeparede/7001criacao.jpg
  7. 7. 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êm melhor paga do seu trabalho. Eclesiastes 4:9
  8. 8. Replicação de Código ● Pratique Engenharia de Software: desenvolva com componentes http://www.jornaldiariodonorte.com.br/site/edicoes/4159.jpg
  9. 9. Replicação de Código ● O ideal é nem programar... http://tsf.sapo.pt/Storage/ng1046747.jpg
  10. 10. Replicação de Código ● Mas tem que ter uma base... http://img11.imageshack.us/i/casinha.jpg/
  11. 11. Replicação de Código ● Você pode construir seus componentes... http://3.bp.blogspot.com/_ZOpddlzvEqQ/SyDSw5dR1oI/AAAAAAAACzs/XO86D_GQCBo/s320/114-r.jpg
  12. 12. Replicação de Código ● Mas compartilhe-os... http://ladybugbrazil.com/wp-content/uploads/2008/08/share.jpg
  13. 13. Multiplicidade de Soluções ● Estamos falando de PHP especificamente...
  14. 14. Multiplicidade de Soluções ● O que é PHP? Rasmus Lerdorf
  15. 15. Multiplicidade de Soluções Fonte: Zend PHP Whitepaper
  16. 16. Multiplicidade de Soluções Fonte: Zend PHP Whitepaper
  17. 17. Multiplicidade de Soluções Andi GutmansZeev Suraski
  18. 18. Multiplicidade de Soluções ● PHP é simples (faca de dois gumes) ● Adaptável: procedural e orientada a objeto ● Interoperável ● Portável ● Grande comunidade ● Grandes empresas e projetos investem: Zend, IBM, Oracle, Yahoo, Facebook, Flicker, Sourceforge, Drupal, Joomla, Moodle, Fox, Magento, etc...
  19. 19. Multiplicidade de Soluções ● MITO: PHP não serve para fazer não sei o quê. ● PHP é escrito em C. Se C pode fazer alguma coisa, PHP também pode. ● PHP cria aplicações para Web, Desktop, Android e até redes neurais. ● PHP é extensível. Acople a extensão que você precisa. ● Se não existe uma extensão para algum propósito específico, escreva-a.
  20. 20. Multiplicidade de Soluções ● PHP possui repositórios de classes e extensões:
  21. 21. Multiplicidade de Soluções ● PHP possui vários frameworks...
  22. 22. Multiplicidade de Soluções ● Muitas opções ● Muitas possibilidades ● Muitas dúvidas: o que usar e como usar? http://www.acsalagoas.org.br/portal/wp-content/uploads/2010/07/e-agora-jose.jpg
  23. 23. Complexidade de código Ninguém tem o cérebro grande o bastante para conter um programa de computador moderno. Edsger Wybe Dijkstra * Dijkstra, Edsger, 1972. “The Humble Programmer” Communications of the ACM 15, nº 10 (Outubro): 859-66.
  24. 24. Complexidade de código ● Manutenção gera mais código ● mais código = mais complexo ● Maior complexidade exige maior controle topicos.estadao.com.br
  25. 25. Complexidade de código andre_said.blog.uol.com.br
  26. 26. Rede de dependências A B CD E FG HI J K biologeologiando.blogspot.com
  27. 27. Rede de dependências susana-coninck.blogspot.com
  28. 28. Rede de dependências exit256.com
  29. 29. Framework Projetar software orientado a objetos é difícil. Projetar software orientado a objetos reusável é mais difícil ainda. Erich Gamma
  30. 30. Framework “Frameworks estão no mais alto nível de reuso” Erich Gamma http://www.artima.com/lejava/articles/reuse.html
  31. 31. Framework Bibliotecas de classes e containers Padrões de projeto Bibliotecas de classes e containers Frameworks
  32. 32. Framework “Construir um framework é um alto risco e um investimento significativo”. Erich Gamma http://www.artima.com/lejava/articles/reuse.html
  33. 33. Zend Framework ● Biblioteca de classes PHP 5 ● Container para aplicações MVC ● Padrões de projeto implementados
  34. 34. 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
  35. 35. Padrões de Codificação Felipe II da Macedônia portalsaofrancisco.com.br
  36. 36. Padrões de Codificação Otto von Bismarck fichasmarra.wordpress.com
  37. 37. Arquitetura alenquer.olx.pt
  38. 38. Arquitetura cidademarketing.com.br
  39. 39. 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 é.
  40. 40. 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
  41. 41. Componentes
  42. 42. Componentes ● Segurança ● Autenticação ● Autorização ● Filtros ● Validadores ● Tratamento de SQL Injection
  43. 43. Componentes ● Diagnóstico e Manutenção ● Debugger ● Logging
  44. 44. 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
  45. 45. Componentes ● Performance ● Cache ● Memória ● Configuração ● Otimização
  46. 46. 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
  47. 47. 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
  48. 48. Componentes ● Internacionalização ● Localização ● Tradução ● Data ● Moeda ● Helpers de visão
  49. 49. Componentes ● E-mail ● Envio ● Armazenamento
  50. 50. Componentes ● Busca ● Indexação ● Consulta ● Performance
  51. 51. Componentes ● Webservices ● XML-RPC ● SOAP ● REST ● Zend_Service
  52. 52. Componentes ● Nuvem ● Amazon ● Google ● Genérico
  53. 53. Componentes ● Nuvem ● Amazon ● Google ● Genérico
  54. 54. Componentes ● Et coetera
  55. 55. Comunidade
  56. 56. Comunidade
  57. 57. Comunidade Mais de 10 Milhões de Downloads Mais de 500 Contribudores Mais de 1000 páginas no Guia de Referência On-Line Mais de 500 Exemplos no Guia de Referência On-Line Quase 6 milhões de hits no Google Mais de 900 hits em Technorati Mais de 120 projetos que são baseados, estendem ou suportam Zend Framework no SourceForge Mais de 280 projetos que são baseados, estendem ou suportam Zend Framework no Google Code Mais de 4000 relatos resolvidos no Issue Tracker
  58. 58. Informações http://framework.zend.com http://forum.zfbrasil.com Livros:
  59. 59. Informações http://www.temporealeventos.com.br/?area=199 Mão na Massa Zend Framework
  60. 60. Informações www.phpconf.com.br
  61. 61. Informações www.fgsl.eti.br

×