PHP para aplicações Web de grande porte

9.887 visualizações

Publicada em

Publicada em: Negócios
0 comentários
15 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
9.887
No SlideShare
0
A partir de incorporações
0
Número de incorporações
182
Ações
Compartilhamentos
0
Downloads
445
Comentários
0
Gostaram
15
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

PHP para aplicações Web de grande porte

  1. 1. PHP para aplicações Web de grande porte Felipe Ribeiro - http://feliperibeiro.com Maio de 2008 João Pessoa - PB
  2. 2. Quem é esse cara? Felipe Ribeiro Estudante de Ciência da Computação na UFCG Engenheiro de sistemas da startup americana Shoprizer.com Experiência em sistemas distribuídos e desenvolvimento Web há 6 anos http://feliperibeiro.com felipernb@gmail.com.br
  3. 3. Agenda Apresentando o PHP O que é uma aplicação de grande porte Outras tecnologias Vantagens e desvantagens do PHP Features e ferramentas para atender os requisitos O que vem por aí?
  4. 4. O que é PHP?
  5. 5. O que é PHP? PHP originalmente significava Personal Home Page; Hoje, assim como GNU, é um acrônimo recursivo que significa: “PHP Hypertext Preprocessor”; É uma linguagem dinâmica; Tomou o lugar do Perl no boom da Web; Uma linguagem de programação focada na Web.
  6. 6. Um pouco de história PHP nasceu em 1994
  7. 7. Foi criado por Rasmus Lerdorf
  8. 8. E tinha essa cara <!--getenv HTTP_USER_AGENT--> <!--ifsubstr $exec_result Mozilla--> Hey, you are using Netscape!<p> <!--endif--> <!--sql database select * from table where user='$username'--> <!--ifless $numentries 1--> Sorry, that record does not exist<p> <!--endif exit--> Welcome <!--$user-->!<p> You have <!--$index:0--> credits left in your account.<p> <!--include /text/footer.html-->
  9. 9. Depois virou PHP/FI <? $name = quot;bobquot;; $db = quot;dbquot;; $result = msql($db,quot;select * from table where firstname='$name'quot;); $num = msql_numrows($result); echo quot;$num records found!<p>quot;; $i=0; while($i<$num); echo msql_result($result,$i,quot;fullnamequot;); echo quot;<br>quot;; echo msql_result($result,$i,quot;addressquot;); echo quot;<br>quot;; $i++; endwhile; ?>
  10. 10. E hoje é mais ou menos assim... <?php class SimpleClass { private $attribute; public function foo($bar) { echo $this->attribute * $bar; } } class ExtendedClass extends SimpleClass { public function foo($bar) { try { do_something(); } catch(FooBarException $e) { die($e->getMessage()); } parent::foo($bar); } } $o = new ExtendedClass; $o->foo(); ?>
  11. 11. Como funciona? Fonte: Zend Technologies
  12. 12. PHP é popular! Fonte: Netcraft
  13. 13. Quem usa? Yahoo! Sourceforge Facebook Last.fm Flickr E mais de 20 milhões de sites! :) del.icio.us Digg Wikipedia
  14. 14. O que são aplicações de grande porte?
  15. 15. Aplicações de grande porte Grande volume de Componentes dados Ambiente heterogêneo Grande número de (integração com acessos diferentes linguagens de programação e SOs) Necessidade de alta disponibilidade e redundância (Hot swap, cluster failover, etc)
  16. 16. Os desafiantes
  17. 17. Java Bastante robusta e padrão de mercado, porém sua “burocracia” dificulta mudanças rápidas.
  18. 18. .NET Custos de licença, dependência da IDE, dependência de plataforma, código fechado.
  19. 19. Ruby e Python Trazem ótimos conceitos, mas ainda estão em fase de maturação.
  20. 20. Vantagens do PHP Simplicidade Escalabilidade Custo Comunidade Apache Deployment simples Independente de plataforma e fornecedor
  21. 21. Desvantagens do PHP Falta suporte a multi- threading. Infelizmente carrega um karma de quick’n’dirty por causa de alguns maus programadores. (Mas vamos virar esse jogo!)
  22. 22. Integração com outros sistemas Webservices SOAP SoapClient SoapServer REST libcurl XMLWriter XMLReader
  23. 23. Integração com outros sistemas Integração com outras linguagens de programação Java C/C++ e COM/.NET Perl
  24. 24. SGBDs Suporte nativo a vários SGBDs MySQL, PostgreSQL, Oracle, SQLite, etc... Camadas de abstração PDO MDB2
  25. 25. Testes de Unidade Os testes devem ser automatizados Pelo menos nas fases em que isso é possível Scripts de teste desenvolvidos ao longo do tempo aumentam o patrimônio da empresa e garantirão uma qualidade cada vez maior do software PHPUnit http://phpunit.de
  26. 26. Extensões PEAR (The PHP Extension and Application Repository) http://pear.php.net Repositório de classes escritas em PHP
  27. 27. Extensões PECL (The PHP Extension Comunity Library) http://pecl.php.net Extensões nativas, escritas em C.
  28. 28. Produtividade PHP por si só já é bastante produtivo, mas existem IDEs e Frameworks que melhoram ainda mais a produtividade.
  29. 29. IDEs (ou simples editores) Zend Studio ($$$) TextMate ($$$) Eclipse PDT Emacs Komodo Vim Delphi for PHP ($$$) Entre outros... gEdit KDevelop
  30. 30. Frameworks Frameworks ajudam na padronização de código e reutilização de componentes. Zend Framework Symfony Prado CakePHP Muitos outros...
  31. 31. Escalabilidade Muito Simples! Apache mod_proxy_balancer faz quase tudo que você precisa!
  32. 32. Performance PHP dificilmente é o gargalo 80-90% do tempo de carregamento de um site está no front-end Mas mesmo assim, podemos otimizar
  33. 33. Caching e Performance PHP tem um compilador JIT que gera um código intermedário chamado opcode que é então interpretado. Por default essa compilação ocorre em todas as execuções do script. Para otimização e caching desse opcode, existem algumas soluções: Pacote APC do PECL XCache Zend Platform ($$$)
  34. 34. E o suporte? Comunidade ativa Zend Grandes investidores Oracle Yahoo! IBM
  35. 35. O que vem por aí? PHP 5.3 e PHP 6 prometem novidades Namespaces Closures Unicode
  36. 36. Conclusões PHP nasceu para Web e por isso sai na frente. PHP é bom o suficiente para grande maioria das aplicações que rodam na Web. PHP é simples e barato. LAMP dá conta do recado!
  37. 37. Perguntas?
  38. 38. Obrigado! Felipe Ribeiro http://feliperibeiro.com felipernb@gmail.com
  39. 39. Referências PHP 5 Objects, Patterns, and Practice - Matt Zandstra - Editora Apress PHP Leads Web 2.0 - Andi Gutmans (White Paper) PHP 5: Open Source Scripting for the Heterogeneous Enterprise - Zend Technologies (White Paper) An overview on PHP - Zend Technologies (White Paper)

×