PHP Simples e Produtivo

5,885 views

Published on

Palestra apresentada na TDC - The Developers Conference, em São Paulo, em 2011.

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
5,885
On SlideShare
0
From Embeds
0
Number of Embeds
3,089
Actions
Shares
0
Downloads
129
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

PHP Simples e Produtivo

  1. 1. @fgsl Zend Framework PHP Simples e Produtivo    Flávio Gomes da Silva Lisboa ­ www.fgsl.eti.br 
  2. 2. @fgsl Livre distribuição Desde que citada a fonte    Flávio Gomes da Silva Lisboa ­ www.fgsl.eti.br 
  3. 3. @fgsl Quem sou eu? www.fgsl.eti.br   
  4. 4. @fgsl Do que vamos falar? Simplicidade + Produtividade   
  5. 5. @fgsl Simplicidade Mito:Só coisas complicadas tem qualidade   
  6. 6. @fgsl A princípio impressiona...A  prosopopeia  flácida  para  acalentar  bovinos inflou o volume de minha bolsa escrotal de modo que estava para derrubar, com a extremidade do membro  inferior,  o  suporte  sustentáculo  de  uma das unidades de acampamento.   
  7. 7. @fgsl Já ouviu isso? Não entendi nada do que ele  falou. Esse cara deve ser bom!   
  8. 8. @fgsl Mas era só isso... Aquela conversa pra boi dormir  estava me enchendo o saco e eu  queria chutar o pau da barraca.   
  9. 9. @fgsl Olha quem está falando...Qualquer  tolo  inteligente  pode  fazer  coisas grandes,  mais  complexas  e  mais  violentas.  É preciso  um  toque  de  gênio  –  e  um  pouco  de coragem – para se mover na direção oposta. Albert Einstein   
  10. 10. @fgsl Olha quem está falando...A maioria das ideias fundamentais da ciência são essencialmente  simples,  e  podem,  como  regra, ser  expressas  em  uma  linguagem  compressível para todos. Albert Einstein   
  11. 11. @fgsl Essência do PHPA  solução  mais  complexa  raramente  é  a  certa. (…)  enquanto  outras  soluções  que  nos  cercam parecem  ficar  maiores  e  mais  complexas, estamos  nos  esforçando  para  simplificar  e racionalizar o PHP (...). Rasmus Lerdorf   
  12. 12. @fgsl PHP é objetivo   
  13. 13. @fgsl PHP é eficaz   
  14. 14. @fgsl Produtividade O que é produtividade?   
  15. 15. @fgsl Não é isso, certamente...   
  16. 16. @fgsl Talvez isso...   
  17. 17. @fgsl Não, não, é mais que isso...   
  18. 18. @fgsl PHP é produtivo   
  19. 19. @fgsl Mas cuidado...   
  20. 20. @fgsl fazer rápido X fazer bem feito Rápido Bem feito Rápido Bem feito Rápido  e bem  feito   
  21. 21. @fgsl fazer rápido X fazer bem feito Arrumar o escapamento   
  22. 22. @fgsl fazer rápido X fazer bem feito Reaproveitar o gabinete   
  23. 23. @fgsl fazer rápido X fazer bem feito Adaptar o carro para rodar na Inglaterra   
  24. 24. @fgsl FatosFazer  algo  rápido  pode  gerar  complexidade, enquanto  fazer  algo  bem  feito  pode  gerar simplicidade.   
  25. 25. @fgsl FatosAlgo  criado  para  resolver  um  problema  pode  se tornar um problema.   
  26. 26. @fgsl FatosA  situação  crítica  é  quando  você  não  consegue mudar  algo  mal  feito  por  precisar  dele  para contornar um problema maior.   
  27. 27. @fgsl Fatos   
  28. 28. @fgsl Fatos CPOP: Copy & Paste Oriented Programming Dead Code CBI: Cross Bug Injection TDB: Total Destruction Button   
  29. 29. @fgsl O que devo fazer?   
  30. 30. @fgsl Recomendações Newton    Copernico Galileu Descartes
  31. 31. @fgsl Recomendações   
  32. 32. @fgsl Recomendações Utilize a experiência de especialistas. Repita projetos de sucesso feitos por outras  pessoas. Não reinvente a roda.                                      
  33. 33. @fgsl E você pergunta... COMO?   
  34. 34. @fgsl E eu respondo: Use padrões de  projetos e boas  práticas   
  35. 35. @fgsl E você pergunta... Mas os padrões são  apenas um modelo de  solução! Eu tenho que  implementá­los!   
  36. 36. @fgsl E eu respondo: Então use frameworks!   
  37. 37. @fgsl E eu respondo: Ou melhor, use Zend Framework!   
  38. 38. @fgsl QuestãoO que é Zend Framework?   
  39. 39. @fgsl É a Liga da Justiça   
  40. 40. @fgsl São os Vingadores!   
  41. 41. @fgsl Ou seja... É uma biblioteca de  componentes PHP com baixo  acoplamento que podem ser  utilizados de forma separada ou  em conjunto para construção ou  manutenção de projetos.   
  42. 42. @fgsl A volta ao mundo em ~70  componentes De A a Z, o que podemos fazer  com Zend Framework   
  43. 43. @fgsl Zend_Acl Lista de controle de acessos.  Trabalha com a abordagem  RBAC (Role Based Access  Control)   
  44. 44. @fgsl Zend_Amf AMF (Action Message Format).  Integração com com Adobe Flex.   
  45. 45. @fgsl Zend_Application Encapsula a inicialização e  processamento das requisições.   
  46. 46. @fgsl Zend_Auth Componente que faz  autenticação, independente do  motor, e mantém os dados em  armazenamento próprio.   
  47. 47. @fgsl Zend_Barcode   
  48. 48. @fgsl Zend_Cache   
  49. 49. @fgsl Zend_Captcha   
  50. 50. @fgsl Zend_Cloud Componente para abstração de  recursos de computação em  nuvem.   
  51. 51. @fgsl Zend_CodeGenerator ...   
  52. 52. @fgsl Zend_Config Lê e escreve nos formatos INI,  XML, YAML e JSON.   
  53. 53. @fgsl Zend_Console_Getopt Facilita a criação de interfaces  para linha de comando.   
  54. 54. @fgsl Zend_Controller Implementação dos padrões de  projeto Front Controller, Page  Controller, com URLs amigáveis  e roteamento personalizado.   
  55. 55. @fgsl Zend_Currency Implementa o padrão de projeto  Currency, para abstrair moedas.  i18n.   
  56. 56. @fgsl Zend_Date Abstração de data e hora. i18n.   
  57. 57. @fgsl Zend_Db Abstração de conexão com  banco de dados e mapeador  objeto­relacional.   
  58. 58. @fgsl Zend_Debug Componente para ajudar a  depurar aplicações.   
  59. 59. @fgsl Zend_Dojo Integração com o framework  Javascript Dojo Toolkit.   
  60. 60. @fgsl Zend_Dom Manipulação da árvore DOM.   
  61. 61. @fgsl Zend_Exception Exceção padrão.   
  62. 62. @fgsl Zend_Feed Leitor e escritor de RSS.   
  63. 63. @fgsl Zend_File Transferência de arquivos com  validadores e filtros.   
  64. 64. @fgsl Zend_Filter Filtro de entrada e saída de  dados.   
  65. 65. @fgsl Zend_Form Construção dinâmica de  formulários.   
  66. 66. @fgsl Zend_GDataIntegração com a API do Google.   
  67. 67. @fgsl Zend_Http Abstração de requisições e  respostas.   
  68. 68. @fgsl Zend_Infocard Utilizado por Zend_Auth, abstrai  cartões de identidade.   
  69. 69. @fgsl Zend_Json Conversor e servidor JSON.   
  70. 70. @fgsl Zend_Layout Parte do padrão Two Step View.   
  71. 71. @fgsl Zend_Ldap Integração com serviços LDAP.   
  72. 72. @fgsl Zend_Loader Autocarregador de classes.   
  73. 73. @fgsl Zend_Locale Componente para localização  (l10n).   
  74. 74. @fgsl Zend_Log Abstração de log.   
  75. 75. @fgsl Zend_Mail Abstração de e­mail.   
  76. 76. @fgsl Zend_Markup Abstração para leitura e geração  de documentos baseados em  linguagem de marcação.   
  77. 77. @fgsl Zend_Measure Abstração de medidas. i18n.   
  78. 78. @fgsl Zend_Memory Objetos para ambientes com  limitações de memória.   
  79. 79. @fgsl Zend_Mime Manipulador de mensagens  MIME (Multipurpose Internet Mail  Extensions), usado por  Zend_Mail.   
  80. 80. @fgsl Zend_Navigation Controlador da navegação do  usuário, gerencia árvores de  ponteiros para páginas Web.   
  81. 81. @fgsl Zend_Oauth Implementação da especificação  Oauth para autorização segura.   
  82. 82. @fgsl Zend_OpenId Encapsula OpenId para  autenticação.   
  83. 83. @fgsl Zend_Paginator Controle de paginação de dados.   
  84. 84. @fgsl Zend_Pdf Geração e carregamento de  arquivos PDF.   
  85. 85. @fgsl Zend_ProgressBar Geração de barra de progresso.   
  86. 86. @fgsl Zend_Queue Fábrica de clientes para filas.   
  87. 87. @fgsl Zend_Reflection Extensão da API de reflexão do  PHP.   
  88. 88. @fgsl Zend_Registry Implementação do padrão de  projeto Registry.   
  89. 89. @fgsl Zend_Rest Clientes e servidores REST.   
  90. 90. @fgsl Zend_Search_Lucene Mecanismo de busca baseado  no Apache Lucene.   
  91. 91. @fgsl Zend_Serializer Fábrica de formatos de  serialização.   
  92. 92. @fgsl Zend_Server Abstração para criação de  servidores (provedores de  serviços).   
  93. 93. @fgsl Zend_Service Abstração para serviços de  terceiros, possui diversas  implementações prontas.   
  94. 94. @fgsl Zend_Session Abstração da sessão. Controla  início, fim e cria namespaces.   
  95. 95. @fgsl Zend_Soap Servidor e cliente SOAP.   
  96. 96. @fgsl Zend_Tag Criação de listas de tags.   
  97. 97. @fgsl Zend_Test Extensão do PHPUnit para  aplicações Zend Framework.   
  98. 98. @fgsl Zend_TextClasses para criar artes e tabelas  baseadas em texto.   
  99. 99. @fgsl Zend_TimeSync Recupera data e hora de  servidores NTP (Network Time  Protocol) ou SNTP (Simple  NTP).   
  100. 100. @fgsl Zend_Tool Gerador de código e framework  para criação de geradores.   
  101. 101. @fgsl Zend_Translate Tradução de textos. i18n.   
  102. 102. @fgsl Zend_Uri Abstração de URI.   
  103. 103. @fgsl Zend_Validate Regras de validação de dados.   
  104. 104. @fgsl Zend_Version Versão do framework.   
  105. 105. @fgsl Zend_View Implementação da camada de  visão. Usa por padrão templates  com extensão .phtml.   
  106. 106. @fgsl Zend_Wildfire Wildfire é um projeto open source  para canais de comunicação  padronizados. O componente do  Zend permite enviar dados do  servidor para o Firebug.   
  107. 107. @fgsl Zend_XmlRpc Cliente e servidor de XML­RPC.   
  108. 108. @fgsl UFA!   
  109. 109. @fgsl Perguntas?flaviogomesdasilva@yahoo.com.brwww.fgsl.eti.br http://www.temporealeventos.com.br    
  110. 110. @fgsl Obrigado!flaviogomesdasilva@yahoo.com.brwww.fgsl.eti.br http://www.temporealeventos.com.br    
  111. 111. @fgsl Referências Holmes, Josh. The Lost Art of Simplicity.  PHP Conference 2010. http://www.joshholmes.com/blog/2009/04/29/thelostartofsimplicity/   

×