75
Zend Framework: Desenvolvimento Padronizado e Produtivo em PHP Flávio Gomes da Silva Lisboa www.fgsl.eti.br @fgsl

Palestra Zend Framework na Campus Party 2011

Embed Size (px)

DESCRIPTION

Palestra sobre Zend Framework proferida na Campus Party 2011

Citation preview

Page 1: Palestra Zend Framework na Campus Party 2011

Zend Framework: Desenvolvimento Padronizado e Produtivo

em PHP

Flávio Gomes da Silva Lisboawww.fgsl.eti.br

@fgsl

Page 2: Palestra Zend Framework na Campus Party 2011

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

Page 3: Palestra Zend Framework na Campus Party 2011

Desenvolvimento de Software

● Você não precisa criar algo novo para escrever seu nome na história.

Page 4: Palestra Zend Framework na Campus Party 2011

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

Page 5: Palestra Zend Framework na Campus Party 2011

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

Page 6: Palestra Zend Framework na Campus Party 2011

Replicação de Código

● Pratique Engenharia de Software: desenvolva com componentes

Page 7: Palestra Zend Framework na Campus Party 2011

Engenharia de Software?

Page 8: Palestra Zend Framework na Campus Party 2011

Como seria maravilhoso se fosse possível construir software como se

faz um produto de engenharia... mas deve ser um sonho...

Page 9: Palestra Zend Framework na Campus Party 2011

blogs.estadao.com.br

Linha de Produção: um de cada vez

Page 10: Palestra Zend Framework na Campus Party 2011

Linha de Produção de Software?

Page 11: Palestra Zend Framework na Campus Party 2011

Não dá! Todos ao mesmo tempo!

grupoeditagos.com.br

Page 12: Palestra Zend Framework na Campus Party 2011

Pra que serve Engenharia de Software?

Page 13: Palestra Zend Framework na Campus Party 2011

Para planejar e acompanhar a construção do software

Page 14: Palestra Zend Framework na Campus Party 2011

Arquitetura de Software?

Page 15: Palestra Zend Framework na Campus Party 2011

Código bonito?

0000000000000000000000000000000000000000000110000000000110000011110000000011110000011000000000011000000000000000000000000000000000000000000000000010000001000000000000010000100000000100000000000000001000100000000000000100000111111111111110000000111111111111000000000000000000000000

Page 16: Palestra Zend Framework na Campus Party 2011

Não! Código funcional, reusável, fácil de manter

e que atende os requisitos do cliente

WYAIWII

Page 17: Palestra Zend Framework na Campus Party 2011

Não faça isso com software!

Page 18: Palestra Zend Framework na Campus Party 2011

Não faça isso com software!

Page 19: Palestra Zend Framework na Campus Party 2011

Não faça isso com software!

Page 20: Palestra Zend Framework na Campus Party 2011

Não faça isso com software!

Page 21: Palestra Zend Framework na Campus Party 2011

Não faça isso com software!

Page 22: Palestra Zend Framework na Campus Party 2011

Não faça isso com software!

Page 23: Palestra Zend Framework na Campus Party 2011

Não faça isso com software!

Page 24: Palestra Zend Framework na Campus Party 2011

Não faça isso com software!

Page 25: Palestra Zend Framework na Campus Party 2011

Não faça isso com software!

Page 26: Palestra Zend Framework na Campus Party 2011

Não faça isso com software!

Page 27: Palestra Zend Framework na Campus Party 2011

Replicação de Código

● O ideal é nem programar...

http

://ts

f.sap

o.pt

/Sto

rage

/ng1

046

747

.jpg

Page 28: Palestra Zend Framework na Campus Party 2011

Replicação de Código

● Mas tem que ter uma base...

Page 29: Palestra Zend Framework na Campus Party 2011

Replicação de Código

● Você pode construir seus componentes...

Page 30: Palestra Zend Framework na Campus Party 2011

Replicação de Código

● Mas compartilhe-os...

Page 31: Palestra Zend Framework na Campus Party 2011

Multiplicidade de Soluções

● Estamos falando de PHP especificamente...

Page 32: Palestra Zend Framework na Campus Party 2011

PHP roda em quase 1/3 da Internet;PHP é simples, não é preciso doutorado para 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 alta performance e estabilidade;

Page 33: Palestra Zend Framework na Campus Party 2011

PHP foi criada para Web.

Mas também é excelente para scripts de automação de tarefas.

Também cria aplicações Desktop (PHP-GTK)

E agora também cria aplicações embarcadas em Android.

Page 34: Palestra Zend Framework na Campus Party 2011

PHP tem suporte completo à orientação a objetos.

Mas também permite uso de programação estruturada, ao mesmo tempo.

Page 35: Palestra Zend Framework na Campus Party 2011

Multiplicidade de Soluções

● Muitas opções● Muitas possibilidades● Muitas dúvidas: o que usar e como usar?

Page 36: Palestra Zend Framework na Campus Party 2011

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.

Page 37: Palestra Zend Framework na Campus Party 2011

Complexidade de código

● Manutenção gera mais código● mais código = mais complexo● Maior complexidade exige maior controle

Page 38: Palestra Zend Framework na Campus Party 2011

Complexidade de código

Page 39: Palestra Zend Framework na Campus Party 2011

Rede de dependências

A

B CD

E FG HI

J K

Page 40: Palestra Zend Framework na Campus Party 2011

Rede de dependências

Page 41: Palestra Zend Framework na Campus Party 2011

Rede de dependências

Page 42: Palestra Zend Framework na Campus Party 2011

Framework

Projetar software orientado a objetos é difícil.

Projetar software orientado a objetos reusável é mais

difícil ainda.

Erich Gamma

Page 43: Palestra Zend Framework na Campus Party 2011

Framework

“Frameworks estão no mais alto nível de

reuso”

Erich Gamma

http://www.artima.com/lejava/articles/reuse.html

Page 44: Palestra Zend Framework na Campus Party 2011

Framework

Bibliotecas de classes e containers

Padrões de projeto

Bibliotecas de classes e containers

Frameworks

Page 45: Palestra Zend Framework na Campus Party 2011

Framework

“Construir um framework é um alto risco e um investimento significativo”.

Erich Gamma

http://www.artima.com/lejava/articles/reuse.html

Page 46: Palestra Zend Framework na Campus Party 2011

Zend Framework

● Biblioteca de classes PHP 5● Container para aplicações MVC ● Padrões de projeto implementados

Page 47: Palestra Zend Framework na Campus Party 2011

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

Page 48: Palestra Zend Framework na Campus Party 2011

Padrões de Codificação

Felipe II da Macedônia

Page 49: Palestra Zend Framework na Campus Party 2011

Padrões de Codificação

Otto von Bismarck

Page 50: Palestra Zend Framework na Campus Party 2011

Arquitetura

Page 51: Palestra Zend Framework na Campus Party 2011

Arquitetura

Page 52: Palestra Zend Framework na Campus Party 2011

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 é.

Page 53: Palestra Zend Framework na Campus Party 2011

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

Page 54: Palestra Zend Framework na Campus Party 2011

Componentes

Page 55: Palestra Zend Framework na Campus Party 2011

Componentes

● Segurança● Autenticação● Autorização● Filtros● Validadores● Tratamento de SQL Injection

Page 56: Palestra Zend Framework na Campus Party 2011

Componentes

● Diagnóstico e Manutenção● Debugger● Logging

Page 57: Palestra Zend Framework na Campus Party 2011

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

Page 58: Palestra Zend Framework na Campus Party 2011

Componentes

● Performance● Cache● Memória● Configuração● Otimização

Page 59: Palestra Zend Framework na Campus Party 2011

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

Page 60: Palestra Zend Framework na Campus Party 2011

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

Page 61: Palestra Zend Framework na Campus Party 2011

Componentes

● Internacionalização● Localização● Tradução● Data● Moeda● Helpers de visão

Page 62: Palestra Zend Framework na Campus Party 2011

Componentes

● E-mail● Envio● Armazenamento

Page 63: Palestra Zend Framework na Campus Party 2011

Componentes

● Busca● Indexação● Consulta● Performance

Page 64: Palestra Zend Framework na Campus Party 2011

Componentes

● Webservices● XML-RPC● SOAP● REST● Zend_Service

Page 65: Palestra Zend Framework na Campus Party 2011

Componentes

● Nuvem● Amazon● Google● Genérico

Page 66: Palestra Zend Framework na Campus Party 2011

Componentes

● Et coetera

Page 67: Palestra Zend Framework na Campus Party 2011

Comunidade

Page 68: Palestra Zend Framework na Campus Party 2011

Comunidade

Page 69: Palestra Zend Framework na Campus Party 2011

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

Page 70: Palestra Zend Framework na Campus Party 2011

Antecipação à evolução do PHP

Page 71: Palestra Zend Framework na Campus Party 2011

Informações

http://framework.zend.com

http://forum.zfbrasil.com

Livros:

Page 72: Palestra Zend Framework na Campus Party 2011

Informações

http://www.temporealeventos.com.br/?area=199

Mão na Massa Zend Framework

http://www.temporealeventos.com.br/?area=107

Page 73: Palestra Zend Framework na Campus Party 2011

Informações

www.phpconf.com.br

Page 74: Palestra Zend Framework na Campus Party 2011

Projeto FGSL2ZF

http://sourceforge.net/projects/fgslibraryphp

Page 75: Palestra Zend Framework na Campus Party 2011

Obrigado

www.fgsl.eti.br