PHP Classes - Desenvolvimento de sites de Web 2 0 em PHP para grandes audiências
-
Upload
manuel-lemos -
Category
Technology
-
view
1.312 -
download
0
description
Transcript of PHP Classes - Desenvolvimento de sites de Web 2 0 em PHP para grandes audiências
![Page 1: PHP Classes - Desenvolvimento de sites de Web 2 0 em PHP para grandes audiências](https://reader031.fdocuments.net/reader031/viewer/2022020207/55610653d8b42a0e408b5b16/html5/thumbnails/1.jpg)
PHP ClassesPHP ClassesDesenvolvimento de sites de Web 2.0 em
PHP para grandes audiênciasManuel [email protected]
http://www.ManuelLemos.net/
webdevcamp 2007
São Paulo, 2 de Dezembro de 2007
![Page 2: PHP Classes - Desenvolvimento de sites de Web 2 0 em PHP para grandes audiências](https://reader031.fdocuments.net/reader031/viewer/2022020207/55610653d8b42a0e408b5b16/html5/thumbnails/2.jpg)
Origem
● 1997 – Participação em listas de discussão
● 1998 – PHP 3 lançado com suporte a OOP
● Componentes prontos resolviam problemas frequentes de outros usuários
● Divulgação de classes prontas nas listas de discussão aumentaram muito a procura
● 1999 – Lançamento do site PHP ClassesPHP Classes →
![Page 3: PHP Classes - Desenvolvimento de sites de Web 2 0 em PHP para grandes audiências](https://reader031.fdocuments.net/reader031/viewer/2022020207/55610653d8b42a0e408b5b16/html5/thumbnails/3.jpg)
Objetivos
● Meio de distribuição automática de classes
Minimizar esforço dos autores na divulgação
● Aumentar a base de usuários das classes
Alertar usuários por e-mail sobre novas classes e suas atualizações
● Estimular a partilha de conhecimento
Contribuição de novas classes e mais conteúdo →
![Page 4: PHP Classes - Desenvolvimento de sites de Web 2 0 em PHP para grandes audiências](https://reader031.fdocuments.net/reader031/viewer/2022020207/55610653d8b42a0e408b5b16/html5/thumbnails/4.jpg)
Crescimento interminável
Web 2.0: Regra do 1%
● Site de conteúdo contribuído pelos usuários
● Por cada 100 novos usuários, 1 contribui
● Mais contribuições atraem mais usuários
● Quanto mais usuários, mais contribuidores →
![Page 5: PHP Classes - Desenvolvimento de sites de Web 2 0 em PHP para grandes audiências](https://reader031.fdocuments.net/reader031/viewer/2022020207/55610653d8b42a0e408b5b16/html5/thumbnails/5.jpg)
Propaganda viral
Divulgação que traz mais divulgação
● Troca de anúncios com sites parceiros
● Top de autores
● Iniciativa amigos do site
● Espelhos do site
● Lista de grupos regionais de usuários de PHP
● Divulgação de novidades através de RSS →
![Page 6: PHP Classes - Desenvolvimento de sites de Web 2 0 em PHP para grandes audiências](https://reader031.fdocuments.net/reader031/viewer/2022020207/55610653d8b42a0e408b5b16/html5/thumbnails/6.jpg)
As dores do crescimento
Problemas do crescimento interminável
1. Qualidade das contribuições
2. Custos de operação →
![Page 7: PHP Classes - Desenvolvimento de sites de Web 2 0 em PHP para grandes audiências](https://reader031.fdocuments.net/reader031/viewer/2022020207/55610653d8b42a0e408b5b16/html5/thumbnails/7.jpg)
Qualidade das contribuições
O problema de ter muito do mesmo
● Sistema de votação
– Utilidade, consistência, exemplos, documentação, tutoriais em vídeo, e testes de unidade
– Top das classes mais votadas
● Prêmio de inovação
– Nomeação de classes inovadoras em cada mês
– Prêmios patrocinados para todos nomeados →
![Page 8: PHP Classes - Desenvolvimento de sites de Web 2 0 em PHP para grandes audiências](https://reader031.fdocuments.net/reader031/viewer/2022020207/55610653d8b42a0e408b5b16/html5/thumbnails/8.jpg)
Custos de operação
Nada é de graça
● Custos de hospedagem– Capacidade de processamento
– Largura de banda
– Espaço em disco
● Custos de pessoal– Atendimento aos usuários
– Desenvolvimento de novas capacidades →
![Page 9: PHP Classes - Desenvolvimento de sites de Web 2 0 em PHP para grandes audiências](https://reader031.fdocuments.net/reader031/viewer/2022020207/55610653d8b42a0e408b5b16/html5/thumbnails/9.jpg)
Redução de custos
Melhor software consome menos recursos
● Cache e mais cache– Turck MMCache para cache de PHP compilado
– Classe File Cache em PHP para cache de conteúdo
– Lighttpd: cache de acessos a conteúdo estático
● Compressão de conteúdo– mod_gzip reduz tamanho de páginas até 5 vezes
– Todos os navegadores modernos suportam
– Páginas carregam mais rapidamente →
![Page 10: PHP Classes - Desenvolvimento de sites de Web 2 0 em PHP para grandes audiências](https://reader031.fdocuments.net/reader031/viewer/2022020207/55610653d8b42a0e408b5b16/html5/thumbnails/10.jpg)
Mais redução de custos
Aceleração com software automático
● Atendimento self-service– Robôs de resposta a e-mail de descadastramento
– Páginas com respostas a perguntas frequentes
● Ferramentas de geração de código– Metastorage gera código de acesso a objetos em
banco de dados definidos a partir de modelo
– Redução do tempo de escrita, teste e correção →
![Page 11: PHP Classes - Desenvolvimento de sites de Web 2 0 em PHP para grandes audiências](https://reader031.fdocuments.net/reader031/viewer/2022020207/55610653d8b42a0e408b5b16/html5/thumbnails/11.jpg)
Cobertura de custos
Alternativas consideradas
1. Doações
2. Publicidade paga
3. Serviços pagos exclusivos para assinantes →
![Page 12: PHP Classes - Desenvolvimento de sites de Web 2 0 em PHP para grandes audiências](https://reader031.fdocuments.net/reader031/viewer/2022020207/55610653d8b42a0e408b5b16/html5/thumbnails/12.jpg)
Doações
● Doação de hospedagem– Troca de hospedagem por publicidade
– Sites espelhos
● Doação de dinheiro– Não é garantido
– Não é recorrente →
![Page 13: PHP Classes - Desenvolvimento de sites de Web 2 0 em PHP para grandes audiências](https://reader031.fdocuments.net/reader031/viewer/2022020207/55610653d8b42a0e408b5b16/html5/thumbnails/13.jpg)
Publicidade paga
● Pagamento por: exibição, clique ou tempo
● Receita cresce com a audiência
● Negociação direta é difícil à distância
● Intermediação por agências– Google AdSense, Tribalfusion, Fastclick, etc.
– Facilidade de alcance a grandes anunciantes
– Agências ficam com comissão elevada
– Pagamento por cheque, Paypal ou transferência →
![Page 14: PHP Classes - Desenvolvimento de sites de Web 2 0 em PHP para grandes audiências](https://reader031.fdocuments.net/reader031/viewer/2022020207/55610653d8b42a0e408b5b16/html5/thumbnails/14.jpg)
Assinaturas pagas● Serviços exclusivos assinantes
– Navegação do site sem publicidade
– Acesso a fóruns de especialistas para resolver problemas difíceis
– Buscas e páginas favoritas personalizadas
– Diretório de profissionais disponíveis para prestar consultoria paga
● Adesão de uma pequena parte dos usuários
● Pagamento pelo Paypal ou PagSeguro
● Receita recorrente →
![Page 15: PHP Classes - Desenvolvimento de sites de Web 2 0 em PHP para grandes audiências](https://reader031.fdocuments.net/reader031/viewer/2022020207/55610653d8b42a0e408b5b16/html5/thumbnails/15.jpg)
Riscos
Quem semeia e não segura pode colher amargura! (provérbio popular)
O que pode comprometer o projeto?
● Perda de informação por danos no servidor
● Perda de informação por invasão de crackers
● Número de acessos excessivos
● Ausência de simulação de problemas →
![Page 16: PHP Classes - Desenvolvimento de sites de Web 2 0 em PHP para grandes audiências](https://reader031.fdocuments.net/reader031/viewer/2022020207/55610653d8b42a0e408b5b16/html5/thumbnails/16.jpg)
Cópias de segurança
● Cópias de segurança diárias dos bancos de dados e arquivos de conteúdo
– mysqldump + tar
● Replicação das cópias para outros servidores
– gnupg ou truecrypt + rsync
– Amazon S3 + Jungle Disk →
![Page 17: PHP Classes - Desenvolvimento de sites de Web 2 0 em PHP para grandes audiências](https://reader031.fdocuments.net/reader031/viewer/2022020207/55610653d8b42a0e408b5b16/html5/thumbnails/17.jpg)
Auditoria de segurança
● Auditoria regular com ferramentas dedicadas
– nessus: testes de exploração de buracos de segurança conhecidos
● Desativação de serviços não usados e bloqueio das respectivas portas na firewall
● Eliminação de indícios do tipo e versão dos programas usados →
![Page 18: PHP Classes - Desenvolvimento de sites de Web 2 0 em PHP para grandes audiências](https://reader031.fdocuments.net/reader031/viewer/2022020207/55610653d8b42a0e408b5b16/html5/thumbnails/18.jpg)
Vulnerabilidades comunsComo evitar?
● XSS: Cross-site Scripting– Conteúdo não confiável é servido por domínio
distinto: safe.phpclasses.net
● SQL Injection– Validação com a classe de formulários
– “Escape” de valores com Metabase →
● CSRF: Cross-site Request Forgery– Plug-in “secure submit” da classe de formulários
![Page 19: PHP Classes - Desenvolvimento de sites de Web 2 0 em PHP para grandes audiências](https://reader031.fdocuments.net/reader031/viewer/2022020207/55610653d8b42a0e408b5b16/html5/thumbnails/19.jpg)
Limitação de acessos● Redirecionamento de usuários para espelhos
● Verificação CAPTCHA para parar robôs
● lighttpd: servidor para conteúdo estático
● Limitação dos processos do Apache
● mod_throttle: limitação de acessos simultâneos
● mod_fastcgi: balanceamento de carga usando mais computadores servidores
● Uso de filas para retardar tarefas pesadas →
![Page 20: PHP Classes - Desenvolvimento de sites de Web 2 0 em PHP para grandes audiências](https://reader031.fdocuments.net/reader031/viewer/2022020207/55610653d8b42a0e408b5b16/html5/thumbnails/20.jpg)
Curiosidades● Linhas de código: ~135.000 em PHP (4.6MB)● Cadastros: ~540.000 (~10.300 novos por mês)● Autores: ~1.800 contribuiram ~3.600 componentes● Consumo de banda: ~200GB por mês● Cache de conteúdo: ~184.000 arquivos (1.5GB)● Servidor: dedicado com Pentium 4 HT 3.2GHz 1GB● Sistema operacional: Linux SuSE 9.2● Discos: 18GB SCSI com controlador RAID● Base de dados: MySQL 4 em partição dedicada 2.7GB● Maior tabela: 5.9 milhões de registros● Servidor e-mail: qmail ~2 milhões de e-mails/mês →
![Page 21: PHP Classes - Desenvolvimento de sites de Web 2 0 em PHP para grandes audiências](https://reader031.fdocuments.net/reader031/viewer/2022020207/55610653d8b42a0e408b5b16/html5/thumbnails/21.jpg)
Futuro● Mais serviços pagos para assinantes
● Reclassificação de classes em sub-categorias
● Sincronização de classes a partir de repositórios CVS ou Subversion
● Canais PEAR
● Concurso de novo design para o site
● Divisão de lucros com os melhores autores
● O que mais os usuários sugerirem →
![Page 22: PHP Classes - Desenvolvimento de sites de Web 2 0 em PHP para grandes audiências](https://reader031.fdocuments.net/reader031/viewer/2022020207/55610653d8b42a0e408b5b16/html5/thumbnails/22.jpg)
Perguntas?
● Manuel Lemos
● Repositório PHPClasses
http://www.phpclasses.org/
![Page 23: PHP Classes - Desenvolvimento de sites de Web 2 0 em PHP para grandes audiências](https://reader031.fdocuments.net/reader031/viewer/2022020207/55610653d8b42a0e408b5b16/html5/thumbnails/23.jpg)
Conclusão
Lembrem-se sempre:
Cooperar é melhor que competir
Abracem a comunidade com vontade, que a comunidade vos abraçará muito mais
Obrigado pela atenção
![Page 24: PHP Classes - Desenvolvimento de sites de Web 2 0 em PHP para grandes audiências](https://reader031.fdocuments.net/reader031/viewer/2022020207/55610653d8b42a0e408b5b16/html5/thumbnails/24.jpg)
Referências● Classe File Cache
http://www.phpclasses.org/filecache
● Classe Forms generation and validationhttp://www.phpclasses.org/formsgeneration
● Metabasehttp://www.phpclasses.org/metabase
● Metastoragehttp://www.metastorage.net/
● Google AdSensehttps://www.google.com/adsense/
● Tribalfusionhttp://www.tribalfusion.com/
● Fastclickhttp://www.fastclick.com/
● Paypalhttps://www.paypal.com/
● PagSegurohttps://pagseguro.uol.com.br/
● Amazon S3http://aws.amazon.com/s3
● Jungle Diskhttp://www.jungledisk.com/
● Gnupghttp://www.gnupg.org/
● TrueCrypthttp://www.truecrypt.org/
● Rsynchttp://rsync.samba.org/
● Nessushttp://www.nessus.org/
● lighttpdhttp://www.lighttpd.net/
● Turck MMCachehttp://turck-mmcache.sourceforge.net/index_old.html
● mod_gziphttp://www.schroepl.net/projekte/mod_gzip/
● FastCGIhttp://www.fastcgi.com/