Your SlideShare is downloading. ×
0
PHP para aplicações Web  de grande porte
PHP para aplicações Web  de grande porte
PHP para aplicações Web  de grande porte
PHP para aplicações Web  de grande porte
PHP para aplicações Web  de grande porte
PHP para aplicações Web  de grande porte
PHP para aplicações Web  de grande porte
PHP para aplicações Web  de grande porte
PHP para aplicações Web  de grande porte
PHP para aplicações Web  de grande porte
PHP para aplicações Web  de grande porte
PHP para aplicações Web  de grande porte
PHP para aplicações Web  de grande porte
PHP para aplicações Web  de grande porte
PHP para aplicações Web  de grande porte
PHP para aplicações Web  de grande porte
PHP para aplicações Web  de grande porte
PHP para aplicações Web  de grande porte
PHP para aplicações Web  de grande porte
PHP para aplicações Web  de grande porte
PHP para aplicações Web  de grande porte
PHP para aplicações Web  de grande porte
PHP para aplicações Web  de grande porte
PHP para aplicações Web  de grande porte
PHP para aplicações Web  de grande porte
PHP para aplicações Web  de grande porte
PHP para aplicações Web  de grande porte
PHP para aplicações Web  de grande porte
PHP para aplicações Web  de grande porte
PHP para aplicações Web  de grande porte
PHP para aplicações Web  de grande porte
PHP para aplicações Web  de grande porte
PHP para aplicações Web  de grande porte
PHP para aplicações Web  de grande porte
PHP para aplicações Web  de grande porte
PHP para aplicações Web  de grande porte
PHP para aplicações Web  de grande porte
PHP para aplicações Web  de grande porte
PHP para aplicações Web  de grande porte
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

PHP para aplicações Web de grande porte

9,017

Published on

Published in: Business
0 Comments
14 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
9,017
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
406
Comments
0
Likes
14
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. PHP para aplicações Web de grande porte Felipe Ribeiro - http://feliperibeiro.com Maio de 2008 João Pessoa - PB
  • 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. 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. O que é PHP?
  • 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. Um pouco de história PHP nasceu em 1994
  • 7. Foi criado por Rasmus Lerdorf
  • 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. 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. 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. Como funciona? Fonte: Zend Technologies
  • 12. PHP é popular! Fonte: Netcraft
  • 13. Quem usa? Yahoo! Sourceforge Facebook Last.fm Flickr E mais de 20 milhões de sites! :) del.icio.us Digg Wikipedia
  • 14. O que são aplicações de grande porte?
  • 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. Os desafiantes
  • 17. Java Bastante robusta e padrão de mercado, porém sua “burocracia” dificulta mudanças rápidas.
  • 18. .NET Custos de licença, dependência da IDE, dependência de plataforma, código fechado.
  • 19. Ruby e Python Trazem ótimos conceitos, mas ainda estão em fase de maturação.
  • 20. Vantagens do PHP Simplicidade Escalabilidade Custo Comunidade Apache Deployment simples Independente de plataforma e fornecedor
  • 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. Integração com outros sistemas Webservices SOAP SoapClient SoapServer REST libcurl XMLWriter XMLReader
  • 23. Integração com outros sistemas Integração com outras linguagens de programação Java C/C++ e COM/.NET Perl
  • 24. SGBDs Suporte nativo a vários SGBDs MySQL, PostgreSQL, Oracle, SQLite, etc... Camadas de abstração PDO MDB2
  • 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. Extensões PEAR (The PHP Extension and Application Repository) http://pear.php.net Repositório de classes escritas em PHP
  • 27. Extensões PECL (The PHP Extension Comunity Library) http://pecl.php.net Extensões nativas, escritas em C.
  • 28. Produtividade PHP por si só já é bastante produtivo, mas existem IDEs e Frameworks que melhoram ainda mais a produtividade.
  • 29. IDEs (ou simples editores) Zend Studio ($$$) TextMate ($$$) Eclipse PDT Emacs Komodo Vim Delphi for PHP ($$$) Entre outros... gEdit KDevelop
  • 30. Frameworks Frameworks ajudam na padronização de código e reutilização de componentes. Zend Framework Symfony Prado CakePHP Muitos outros...
  • 31. Escalabilidade Muito Simples! Apache mod_proxy_balancer faz quase tudo que você precisa!
  • 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. 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. E o suporte? Comunidade ativa Zend Grandes investidores Oracle Yahoo! IBM
  • 35. O que vem por aí? PHP 5.3 e PHP 6 prometem novidades Namespaces Closures Unicode
  • 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. Perguntas?
  • 38. Obrigado! Felipe Ribeiro http://feliperibeiro.com felipernb@gmail.com
  • 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)

×